CloudFormation 的安全最佳實務
CloudFormation在您開發和實作自己的安全政策時,可考慮使用 提供的多種安全功能。以下最佳實務為一般準則,並不代表完整的安全解決方案。這些最佳實務可能不適用或無法滿足您的環境需求,因此請將其視為實用建議就好,而不要當作是指示。
使用 IAM 控制存取
IAM 是一種 AWS 服務,可讓您用來在 AWS 中管理使用者及其許可。您可以使用 IAM 搭配 CloudFormation 來指定使用者可執行的 CloudFormation 動作,例如檢視堆疊範本、建立堆疊或刪除堆疊。此外,管理 CloudFormation 堆疊的任何人都需要這些堆疊中的資源許可。例如,如果使用者想要使用 CloudFormation 來啟動、更新或終止 Amazon EC2 執行個體,則必須具備呼叫相關 Amazon EC2 動作的許可。
在大多數情況下,使用者需要完整存取權,才能管理範本中的所有資源。CloudFormation 會呼叫來代替使用者建立、修改及刪除這些資源。若要區隔使用者與 CloudFormation 服務的許可,請使用服務角色。CloudFormation 使用服務角色的政策來呼叫,而不是使用者的政策。如需更多詳細資訊,請參閱 CloudFormation 服務角色。
請勿在您的範本中內嵌憑證
建議您在堆疊範本中使用動態參考,而不要在 CloudFormation 範本中嵌入敏感資訊。
動態參考提供簡潔、強大的方式,讓您參考在其他服務 (例如 AWS Systems Manager 參數存放區或 AWS Secrets Manager) 中存放和管理的外部值。當您使用動態參考時,在堆疊和變更集操作期間,CloudFormation 會在必要時擷取指定參考的值,並將值傳遞至適當的資源。不過,CloudFormation 絕不會存放實際參考值。如需更多詳細資訊,請參閱 使用動態參考取得存放在其他服務中的值。
AWS Secrets Manager 協助您安全地加密、儲存和擷取資料庫和其他服務的憑證。AWS Systems Manager 參數存放區提供安全的階層式儲存,以管理組態資料。
如需定義範本參數的詳細資訊,請參閱CloudFormation 範本 Parameters 語法。
使用 AWS CloudTrail 來記錄 CloudFormation 呼叫
AWS CloudTrail 會追蹤在您的 AWS 帳戶 中進行 CloudFormation API 呼叫的任何人。每當有人使用 CloudFormation API、CloudFormation 主控台、後端主控台或 CloudFormation AWS CLI 命令時,都會記錄 API 呼叫。啟用記錄,然後指定 Amazon S3 儲存貯體來存放日誌。如此一來,如果您需要,即可稽核誰在您的帳戶中發出哪些 CloudFormation 呼叫。如需更多詳細資訊,請參閱 使用 CloudFormation 記錄 AWS CloudTrail API 呼叫。