CloudFormation 的安全最佳实践 - AWS CloudFormation

CloudFormation 的安全最佳实践

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

使用 IAM 控制访问

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

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

请勿将凭证嵌入您的模板

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

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

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

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

使用 AWS CloudTrail 记录 CloudFormation 调用

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