Amazon CloudFormation 的安全最佳实践 - Amazon CloudFormation
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon CloudFormation 的安全最佳实践

Amazon CloudFormation 提供了在您开发和实施自己的安全策略时需要考虑的大量安全功能。以下最佳实践是一般指导原则,并不代表完整安全解决方案。这些最佳实践可能不适合您的环境或不满足您的环境要求,请将其视为有用的考虑因素而不是惯例。

使用 IAM 控制访问

IAM 是一项可用于管理 Amazon 中的用户及其权限的 Amazon 服务。您可以将 IAM 与 Amazon CloudFormation 结合使用来指定用户可以执行哪些 Amazon CloudFormation 操作,例如,查看堆栈模板、创建堆栈或删除堆栈。此外,管理 Amazon CloudFormation 堆栈的任何人都需要对这些堆栈中的资源具有权限。例如,如果用户想使用 Amazon CloudFormation 启动、更新或终止 Amazon EC2 实例,则他们必须拥有调用相关 Amazon EC2 操作的权限。

在大多数情况下,用户需要完全访问权限才能管理模板中的所有资源。Amazon CloudFormation 代表用户进行调用以创建、修改和删除这些资源。要在用户和 Amazon CloudFormation 服务之间拆分权限,请使用服务角色。Amazon CloudFormation 使用服务角色的策略进行调用,而不是使用用户的策略。有关更多信息,请参阅Amazon CloudFormation 服务角色

请勿将凭证嵌入您的模板

我们建议您在堆栈模板中使用动态引用,而不是在 Amazon CloudFormation 模板中嵌入敏感信息。

动态引用提供了一种简洁、功能强大的方法,用于引用在其他服务(例如 Amazon Systems Manager Parameter Store 或 Amazon Secrets Manager)中存储和管理的外部值。当您使用动态引用时,CloudFormation 会在堆栈和更改集合操作期间根据需要检索指定引用的值,并将值传递到相应的资源。但是,CloudFormation 从不存储实际引用值。有关更多信息,请参阅使用动态引用以指定模板值

Amazon Secrets Manager 帮助您安全地加密、存储和检索数据库和其他服务的凭证。Amazon Systems Manager Parameter Store 提供安全的分层存储,用于配置数据管理。

有关定义模板参数的信息,请参阅参数

使用 Amazon CloudTrail 记录 Amazon CloudFormation 调用

Amazon CloudTrail 跟踪在您的 Amazon 账户中发起 Amazon CloudFormation API 调用的任何人。当任何人使用 Amazon CloudFormation API、Amazon CloudFormation 控制台、后端控制台或 Amazon CloudFormation Amazon CLI 命令时,系统将会记录 API 调用。启用日志记录并指定用于存储日志的 Amazon S3 存储桶。这样一来,如果您需要,可以审核在您的账户中发起 Amazon CloudFormation 调用的人员。有关更多信息,请参阅使用 Amazon CloudFormation 记录 Amazon CloudTrail API 调用