在多區域、多帳戶組織中設定AWS CloudFormation 偏離偵測 - AWS 方案指引

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

在多區域、多帳戶組織中設定AWS CloudFormation 偏離偵測

由 Ram Kandaswamy 建立 (AWS)

環境:生產

技術:多帳戶策略;基礎設施;現代化

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

AWS 服務:Amazon SNS;AWSConfig;AWSLambda; AWS CloudFormation

Summary

Amazon Web Services (AWS) 的客戶經常在尋找一種有效的方法來偵測資源組態不相符,包括 AWS CloudFormation 堆疊偏離,並儘快修正。 AWS Control Tower 使用 時尤其如此。

此模式提供規範性解決方案,透過使用合併資源組態變更並對這些變更採取行動來產生結果,進而有效率地解決問題。此解決方案專為在多個 、多個 帳戶 AWS 區域或兩者的組合中建立多個 AWS CloudFormation 堆疊的情況而設計。解決方案的目標如下:

  • 簡化偏離偵測程序

  • 設定通知和提醒

  • 設定合併報告

先決條件和限制

先決條件

  • AWS Config 在所有必須監控的區域和帳戶中啟用

限制

  • 產生的報告僅支援逗號分隔值 (CSV) 和JSON輸出格式。

架構

下圖顯示使用多個帳戶 AWS Organizations 設定的設定。 AWS Config 規則會在帳戶之間進行通訊。 

工作流程包含下列步驟:

監控兩個 AWS Organizations 帳戶中堆疊的五個步驟程序。
  1. AWS Config 規則會偵測偏離。

  2. 在其他帳戶中發現的漂移偵測結果會傳送至 管理帳戶。

  3. Amazon CloudWatch 規則會呼叫 AWS Lambda 函數。

  4. Lambda 函數會查詢彙總結果的 AWS Config 規則。

  5. Lambda 函數會通知 Amazon Simple Notification Service (Amazon SNS),其會傳送偏離的電子郵件通知。

自動化和擴展

此處提供的解決方案可以同時擴展其他區域和帳戶。

工具

AWS 服務

AWS Config 提供 中 AWS 資源組態的詳細檢視 AWS 帳戶。這包含資源彼此之間的關係和之前的組態方式,所以您可以看到一段時間中組態和關係的變化。

Amazon CloudWatch 可協助您 AWS 即時監控 AWS 資源的指標,以及您在 上執行的應用程式。

AWS Lambda 是一項運算服務,可協助您執行程式碼,無需佈建或管理伺服器。它只會在需要時執行程式碼並自動擴展,因此您只需支付您使用的運算時間。

Amazon Simple Notification Service (Amazon SNS) 可協助您協調和管理發佈者和用戶端之間的訊息交換,包括 Web 伺服器和電子郵件地址。

史詩

任務描述所需的技能

建立彙總器。

  1. 登入 AWS Management Console 並在 https://console.aws.amazon.com/config 開啟 AWS Config 主控台。

  2. 在 管理帳戶中建立彙總器。

  3. 確保資料複寫已開啟,以便從來源帳戶 AWS Config 擷取資料。

  4. 選取所有適用的區域和帳戶。您可以根據 選取帳戶 AWS Organizations。我們建議採用此方法,因為組織中的新帳戶會自動成為彙總器的一部分。

雲端架構師

建立 AWS 受管規則。

新增cloudformation-stack-drift-detection-check AWS受管規則。規則需要一個參數值:cloudformationArn

輸入具有偵測堆疊偏離許可的 Amazon Resource Name (ARN) IAM角色。角色必須具有可 AWS Config 擔任角色的信任政策。

雲端架構師

建立彙總器的進階查詢區段。

若要從多個來源擷取漂移堆疊,請建立下列查詢:

SELECT resourceId, configuration.driftInformation.stackDriftStatus WHERE resourceType = 'AWS::CloudFormation::Stack'  AND configuration.driftInformation.stackDriftStatus IN ('DRIFTED')

雲端架構師、開發人員

自動化執行查詢並發佈。

  1. 使用連接的程式碼建立 Lambda 函數。Lambda 會將結果發佈至 Lambda 函數中作為環境變數提供SNS的主題。

  2. 若要接收提醒,請建立SNS主題的電子郵件訂閱。

雲端架構師、開發人員

建立 CloudWatch 規則。

建立排程型 CloudWatch 規則以呼叫負責警示的 Lambda 函數。

雲端架構師

相關資源

資源

其他資訊

考量

我們建議您使用以此模式呈現的解決方案,而不是使用涉及特定間隔API呼叫的自訂解決方案,以在每個 CloudFormation 堆疊或堆疊集上啟動偏離偵測。在特定內部使用API呼叫的自訂解決方案可能會導致大量的API呼叫並影響效能。由於API呼叫次數,可能會發生限流。如果僅根據排程識別資源變更,則另一個潛在問題是偵測延遲。

由於堆疊集是由堆疊組成,因此您可以使用此解決方案。堆疊執行個體詳細資訊也可作為 解決方案的一部分使用。

附件

若要存取與本文件相關聯的其他內容,請解壓縮下列檔案: attachment.zip