確保 AWS CloudFormation 堆疊是從授權的 S3 儲存貯體啟動 - AWS Prescriptive Guidance

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

確保 AWS CloudFormation 堆疊是從授權的 S3 儲存貯體啟動

由香提尼潘美薩 (AWS) 創建

環境:生產

技術:安全、身份、合規

工作負載:所有其他工作負載

AWS 服務:Amazon SNS; AWS CloudFormation; Amazon CloudWatch; AWS Lambda; Amazon S3

Summary

您可以使用 AWS CloudFormation 範本以程式設計方式設定 Amazon Web Services (AWS) 資源,讓您花較少的時間管理這些資源,並且有更多時間專注在 AWS 中執行的應用程式上。此模式可讓您檢查 AWS CloudFormation 堆疊是否只從儲存在特定 Amazon Simple Storage Service (Amazon Simple Storage Service) 儲存貯體中的範本建立。如果您有安全性或符合性需求,而且要求使用儲存在允許清單中的 S3 儲存貯體中的範本,則此檢查非常有用。

此安全控制可監控 AWS CloudFormationCreateStackUpdateStackAPI 呼叫,並叫用 AWS Lambda 函數,以檢查呼叫中使用的範本是否來自授權的 S3 儲存貯體。如果範本來自未授權儲存貯體,則 Lambda 函數會觸發 Amazon Simple Notification Service (Amazon SNS) 電子郵件通知給使用者,其中包含相關資訊。

先決條件和限制

先決條件

  • 您要接收違規通知的作用中電子郵件位址

  • 上傳提供的 Lambda 代碼的 S3 儲存貯體

  • 授權的 S3 儲存貯體名稱清單

限制

  • UpdateStack在未經授權的 S3 儲存貯體中使用現有範本的 API 呼叫不會產生額外的違規,因為 Amazon EventBridge 事件中無法使用 S3 儲存貯體的 URL。我們建議您從未經授權的 S3 儲存貯體中刪除現有的範本,在您收到原始CreateStack違規通知。

  • 此安全控制不會監控下列 AWS CloudFormation 事件,因為它們會在範本最初部署後處理更新:CreateChangeSetCreateStackSetUpdateStackSet

  • 您必須在要監控的每個 AWS 區域中部署此安全控制。

Architecture

目標技術堆疊

  • AWS Lambda

  • Amazon SNS

  • Amazon EventBridge 規則

目標架構

自動化與擴充

如果您使用AWS Organizations,您可以使用AWS CloudFormation StackSets,在您要監控的多個帳戶中部署此範本。

Tools

  • AWS CloudFormation— 協助您使用基礎設施即程式碼模型建立 AWS 資源的模型和設定。

  • Amazon EventBridge— 從自己的應用程式、軟體即服務 (SaaS) 應用程式和 AWS 服務提供即時資料串流,然後將該資料路由到 AWS Lambda 等目標。

  • AWS Lambda— 讓您執行程式碼,無需佈建或管理伺服器。

  • Amazon SNS— 提供從發佈者傳遞至訂閱者的訊息。訂閱者會收到發佈到所訂閱主題的所有訊息,且某一主題的所有訂閱者均會收到相同訊息。

  • Amazon S3— 讓您存放與擷取任何數量的資料,這些操作隨時可從 Web 上的任何位置執行。

Epics

任務描述所需的技能
將 Lambda 程式碼上傳到 Amazon S3。

將包含「附件」一節中提供的 Lambda 程式碼的 .zip 檔案上傳至新的或現有的 S3 儲存貯體。此儲存貯體應與您要評估的資源位於相同的 AWS 區域。

雲端架構師
部署 AWS CloudFormation 範本。

在與 S3 儲存貯體相同的區域中開啟 AWS CloudFormation 主控台,然後部署「附件」部分中提供的範本。提供參數的值;這些值會在 < 其他資訊 > 一節中說明。

雲端架構師
任務描述所需的技能
確認訂閱 Amazon SNS 主題。

成功部署 AWS CloudFormation 範本後,會將訂閱電子郵件傳送到您提供的電子郵件地址。您必須確認此電子郵件訂閱才能開始接收通知。

雲端架構師

其他資訊

當您部署此模式提供的 AWS CloudFormation 範本時,系統會提示您輸入下列資訊:

  • S3 儲存貯體:指定您上傳附加 Lambda 程式碼的儲存貯體 (.zip 檔案)。您可以建立新的儲存貯體,或指定現有的儲存貯體。

  • S3 金鑰:在 S3 儲存貯體中指定 Lambda .zip 檔案的位置 (例如:filename.zip 或控制項/filename.zip)。不可使用結尾斜線標記。

  • 通知電子郵件:提供應傳送違規通知的作用中電子郵件地址。

  • Lambda 日誌記錄層級:指定 Lambda 函數的記錄層級。使用Info記錄有關進度的詳細信息,錯誤以查看仍然允許部署繼續的錯誤事件,以及警告針對潛在有害的狀況。 

  • 已授權儲存貯體:提供以逗號分隔的已授權 S3 儲存貯體清單。

Attachments

attachment.zip