

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

# CloudFormation 的安全最佳實務
<a name="security-best-practices"></a>

CloudFormation 提供許多安全功能，供您在開發和實作自己的安全政策時考慮。以下最佳實務為一般準則，並不代表完整的安全解決方案。這些最佳實務可能不適用或無法滿足您的環境需求，因此請將其視為實用建議就好，而不要當作是指示。

**Topics**
+ [使用 IAM 控制存取](#use-iam-to-control-access)
+ [請勿在您的範本中內嵌憑證](#creds)
+ [使用 AWS CloudTrail 記錄 CloudFormation 呼叫](#cloudtrail)

## 使用 IAM 控制存取
<a name="use-iam-to-control-access"></a>

IAM 是一項 AWS 服務，可用來在 中管理使用者及其許可 AWS。您可以使用 IAM 搭配 CloudFormation 來指定使用者可執行的 CloudFormation 動作，例如檢視堆疊範本、建立堆疊或刪除堆疊。此外，管理 CloudFormation 堆疊的任何人都需要這些堆疊中的資源許可。例如，如果使用者想要使用 CloudFormation 來啟動、更新或終止 Amazon EC2 執行個體，則必須具備呼叫相關 Amazon EC2 動作的許可。

在大多數情況下，使用者需要完整存取權，才能管理範本中的所有資源。CloudFormation 會呼叫來代替使用者建立、修改及刪除這些資源。若要區隔使用者與 CloudFormation 服務的許可，請使用服務角色。CloudFormation 使用服務角色的政策來呼叫，而不是使用者的政策。如需詳細資訊，請參閱[CloudFormation 服務角色](using-iam-servicerole.md)。

## 請勿在您的範本中內嵌憑證
<a name="creds"></a>

建議您在堆疊範本中使用*動態參考*，而不要在 CloudFormation 範本中嵌入敏感資訊。

動態參考提供精簡且強大的方式，讓您參考儲存在其他服務中的外部值，例如 AWS Systems Manager 參數存放區或 AWS Secrets Manager。當您使用動態參考時，在堆疊和變更集操作期間，CloudFormation 會在必要時擷取指定參考的值，並將值傳遞至適當的資源。不過，CloudFormation 絕不會存放實際參考值。如需詳細資訊，請參閱[使用動態參考取得存放在其他服務中的值](dynamic-references.md)。

[AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) 協助您安全地加密、儲存和擷取資料庫和其他服務的憑證。[AWS Systems Manager 參數存放區](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html)提供安全的階層式儲存，以管理組態資料。

如需定義範本參數的詳細資訊，請參閱[CloudFormation 範本 Parameters 語法](parameters-section-structure.md)。

## 使用 AWS CloudTrail 記錄 CloudFormation 呼叫
<a name="cloudtrail"></a>

AWS CloudTrail 會追蹤在您的 中進行 CloudFormation API 呼叫的任何人 AWS 帳戶。只要有人使用 CloudFormation API、CloudFormation 主控台、後端主控台或 CloudFormation AWS CLI 命令，就會記錄 API 呼叫。啟用記錄，然後指定 Amazon S3 儲存貯體來存放日誌。如此一來，如果您需要，即可稽核誰在您的帳戶中發出哪些 CloudFormation 呼叫。如需詳細資訊，請參閱[使用 記錄 CloudFormation API 呼叫 AWS CloudTrail](cfn-api-logging-cloudtrail.md)。