

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 為 實作最低權限許可的政策 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 區域 的堆疊群組。本指南概述如何實作透過 CloudFormation 佈建之 AWS 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 Elastic Compute Cloud (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)是授予執行任務所需的最低許可的安全最佳實務。最低權限原則是 AWS Well-Architected 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) 中的身分型政策。這些政策定義許可並指定存取條件。組織可以從 AWS 受管政策開始，但通常會建立自訂政策，將許可範圍限制為僅工作負載或使用案例所需的動作。

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>

本指南適用於使用 CloudFormation 管理和佈建資源的雲端基礎設施架構師、DevOps 工程師和網站可靠性工程師 (SREs)。