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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AWS CloudFormation 的安全最佳实践

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

使用 IAM 控制访问

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

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

请勿将凭证嵌入您的模板

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

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

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

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

使用 AWS CloudTrail 记录 AWS CloudFormation 调用

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