实施 AWS CloudFormation 的最低权限许可的策略 - AWS 规范性指导

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

实施 AWS CloudFormation 的最低权限许可的策略

Nima Fotouhi 和 Moumita Saha,Amazon Web Services(AWS)

2023 年 5 月文档历史记录

AWS CloudFormation 是一种基础设施即代码(IaC)服务,可帮助您通过预调配 AWS 资源来扩展云基础设施开发规模。它还可以帮助您在 AWS 账户和 AWS 区域的整个生命周期中管理这些资源。在 CloudFormation 中,您可以定义模板,这些模板充当一组资源的蓝图。然后,您可以通过创建和部署堆栈来预调配这些资源,堆栈是一组作为单个单元管理的相关资源。您还可以使用 CloudFormation 来部署堆栈集,这些堆栈集是您可以通过单次操作跨多个账户和 AWS 区域创建、更新和删除的堆栈组。本指南概述了如何为 AWS CloudFormation 和通过 CloudFormation 预调配的资源实施最低权限许可。

您可以通过执行以下操作之一来部署 CloudFormation 堆栈或堆栈集:

  • 通过 AWS Identity and Access Management(IAM)主体直接访问 AWS 环境并部署 CloudFormation 堆栈。

  • 将 CloudFormation 堆栈推送到部署管线中,然后通过管线启动堆栈部署。管线通过 IAM 主体访问 AWS 环境并部署堆栈。此方法是推荐的最佳实践。

对于任一方法,都需要权限才能部署 CloudFormation 堆栈。例如,假设一个用户计划使用 CloudFormation 来创建 Amazon Elastic Compute Cloud(Amazon EC2)实例。该实例需要 IAM 实例配置文件才能访问其他 AWS 服务。用于部署 CloudFormation 堆栈的 IAM 主体需要以下权限:

  • 访问 CloudFormation 的权限

  • 在 CloudFormation 中创建堆栈的权限

  • 在 Amazon EC2 中创建实例的权限

  • 创建所需的 IAM 实例配置文件的权限

什么是最低权限?

最低权限是授予执行任务所需的最低权限的安全最佳实践。最低权限原则是 AWS Well-Architected Framework 中安全性支柱的一部分。当您实施此最佳实践时,它可以帮助保护您的 AWS 环境免受权限升级风险,减少攻击面,提高数据安全性,并防止用户错误(例如错误配置或错误删除资源)。

要对您的 AWS 资源实施最低权限,您可以在 AWS Identity and Access Management(IAM)中配置策略,例如基于身份的策略。这些策略定义权限和指定访问条件。各组织可能从 AWS 托管策略开始,但随后他们通常会创建自定义策略,将权限范围限制为工作负载或使用案例所需的操作。

CloudFormation 服务的最低权限许可是一个重要的安全考虑因素。由于与 CloudFormation 交互的用户和开发者可以大规模快速创建、修改或删除资源,因此最低权限尤为重要。但是,CloudFormation 需要在 AWS 账户中创建、更新和修改资源所需的权限。您必须在操作 CloudFormation 所需的权限与最低权限原则之间取得平衡。

将最低权限原则应用于 CloudFormation 时,您需要考虑以下几点:

  • CloudFormation 服务的权限:哪些用户需要访问 CloudFormation,他们需要什么级别的访问权限,以及他们可以采取哪些操作来创建、更新或删除堆栈?

  • 预调配资源的权限:用户可以通过 CloudFormation 预调配哪些资源?

  • 已预调配资源的权限:如何为通过 CloudFormation 预调配的资源配置最低权限许可?

目标业务成果

通过遵循本指南中的最佳实践和建议,您可以:

  • 确定组织中哪些用户需要访问 CloudFormation,然后为这些用户配置最低权限许可。

  • 使用堆栈策略来帮助保护 CloudFormation 堆栈免受意外更新的影响。

  • 为 CloudFormation 用户和资源配置最低权限许可以帮助防止权限升级和混乱的代理问题。

  • 使用 AWS CloudFormation 预调配具有最低权限许可的 AWS 资源。这有助于您的组织保持更稳健的安全状况。

  • 主动减少调查和缓解安全事件所需的时间、精力和金钱。

目标受众

本指南适用于使用 CloudFormation 管理和预调配资源的云基础设施架构师、DevOps 工程师和站点可靠性工程师(SRE)。