

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

# 为以下各项实施最低权限策略 AWS CloudFormation
<a name="introduction"></a>

*Nima Fotouhi 和 Moumita Saha，Amazon Web Services（AWS）*

*2023 年 5 月*（[文档历史记录](doc-history.md)）

[AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)是一项基础设施即代码 (IaC) 服务，可通过配置 AWS 资源来帮助您扩展云基础架构的开发。它还可以帮助您在 AWS 账户 和的整个生命周期中管理这些资源 AWS 区域。在中 CloudFormation，您可以定义[模板](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-whatis-concepts.html#cfn-concepts-templates)，这些模板充当一组资源的蓝图。然后，您可以通过创建和部署[堆栈](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-whatis-concepts.html#w2ab1b5c15b9)来预调配这些资源，堆栈是一组作为单个单元管理的相关资源。您还可以使用 CloudFormation 部署[堆栈集](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html)，堆栈集是一组堆栈，您可以通过单个操作跨多个账户创建、更新和 AWS 区域 删除这些堆栈。本指南概述了如何为通过配置的资源实现最低权限 AWS CloudFormation 和资源。 CloudFormation

您可以通过执行以下任一操作来部署 CloudFormation 堆栈或堆栈集：
+ 通过 AWS Identity and Access Management (IAM) [委托](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html#intro-structure-principal)人直接访问 AWS 环境并部署 CloudFormation 堆栈。
+ 将 CloudFormation 堆栈推送到部署管道中，然后通过管道启动堆栈部署。管道通过 IAM 委托人访问 AWS 环境并部署堆栈。此方法是推荐的最佳实践。

对于这两种方法，部署 CloudFormation 堆栈都需要权限。例如，假设一个用户计划使用 CloudFormation 创建亚马逊弹性计算云 (Amazon EC2) 实例。该实例需要一个 IAM [实例配置文件](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html)才能访问其他实例 AWS 服务。用于部署 CloudFormation 堆栈的 IAM 委托人需要以下权限：
+ 访问权限 CloudFormation
+ 在中创建堆栈的权限 CloudFormation
+ 在 Amazon EC2 中创建实例的权限
+ 创建所需的 IAM 实例配置文件的权限

## 什么是最低权限？
<a name="what-is-least-privilege"></a>

[最低权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege)是授予执行任务所需的最低权限的安全最佳实践。最低权限原则是 Well-Architecte AWS d Framework 中[安全支柱](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/sec_permissions_least_privileges.html)的一部分。当您实施此最佳实践时，它可以帮助保护您的 AWS 环境免受权限升级风险，减少攻击面，提高数据安全性，并防止用户错误（例如错误配置或错误删除资源）。

要对您的 AWS 资源实施最低权限，您可以在 [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) 中配置策略，例如基于身份的策略。这些策略定义权限和指定访问条件。Organi AWS zations 可能从托管策略开始，但随后他们通常会创建自定义策略，将权限范围限制为工作负载或用例所需的操作。

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

在应用最小权限原则时 CloudFormation，需要考虑以下几点：
+ ** CloudFormation 服务权限** — 哪些用户需要访问权限 CloudFormation，他们需要什么级别的访问权限，以及他们可以采取哪些操作来创建、更新或删除堆栈？
+ **资源配置权限**-用户可以通过哪些资源进行预配 CloudFormation？
+ **已配置资源的权限-如何为**通过配置的资源配置最低权限权限？ CloudFormation

## 目标业务成果
<a name="targeted-business-outcomes"></a>

通过遵循本指南中的最佳实践和建议，您可以：
+ 确定组织中哪些用户需要访问权限 CloudFormation，然后为这些用户配置最低权限权限。
+ 使用堆栈策略来帮助保护 CloudFormation 堆栈免受意外更新的影响。
+ 为 CloudFormation 用户和资源配置最低权限以帮助防止权限升级和混乱的代理问题。
+  AWS CloudFormation 用于配置具有最低权限的 AWS 资源。这有助于您的组织保持更稳健的安全状况。
+ 主动减少调查和缓解安全事件所需的时间、精力和金钱。

## 目标受众
<a name="intended-audience"></a>

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