如何使用 AWS Config 的 AWS 受管規則「cloudformation-stack-drift-detection-check」來解決 CloudFormation 中的漂移偵測錯誤?

1 分的閱讀內容
0

我想使用 AWS Config 的 AWS 受管規則 cloudformation-stack-drift-detection-check 來解決 AWS CloudFormation中的漂移偵測錯誤。

簡短描述

即使堆疊漂移狀態在 CloudFormation 主控台中顯示為 IN_SYNC,您也可能會收到下列錯誤:

  • 「AWS CloudFormation 無法偵測到漂移,預設為 NON_COMPLIANT。請重新評估規則並再試一次。如果問題仍然存在,請聯絡 AWS CloudFormation 支援。」
  • 「您針對特定堆疊的堆疊漂移偵測操作已失敗。檢查您現有的 AWS CloudFormation 角色許可,並新增缺少的許可。」

根據您收到的錯誤,選擇下列其中一個選項:

  • 如果收到 NON-COMPLIANT 錯誤,請完成更新 AWS Config 規則 一節中的步驟。
  • 如果您收到許可錯誤,請完成設定正確許可 一節中的步驟。

**注意:**AWS 受管規則 cloudformation-stack-drift-detection-check 會檢查 CloudFormation 堆疊以使用 DetectStackDrift API 進行漂移偵測。此規則同時具備週期性和組態變更觸發條件類型。如果漂移偵測失敗,您會收到錯誤訊息。

解決方法

更新您的 AWS Config 規則

您可能會在 AWS Config 主控台中收到 NON_COMPLIANT 錯誤訊息,原因如下:

  • CloudFormation 堆疊中的資源不支援漂移偵測。您會收到針對 AWS Config 規則的 NON_COMPLIANT 資源錯誤 (以註釋提供)。例如,您會在 AWS CloudTrail 日誌中收到「ResourceType 不支援漂移偵測」錯誤。
  • 您的 AWS Config 規則取決於 DetectStackDrift 的可用性。您會收到限流或「超過費率」錯誤,因為 AWS Config 會在發生限流時將規則預設為 NON_COMPLIANT。

若要解決不支援漂移偵測而導致的錯誤:

忽略處於 NON_COMPLIANT 狀態的 CloudFormation 堆疊。在這種情況下,錯誤即為誤報。如需詳細資訊,請參閱評估您的資源

-或-

建立自訂 AWS Config 規則,其中包含可將您的堆疊排除在評估之外的佈建。如需 AWS Config 規則範例,請參閱 AWS Config 規則資料儲存器RDKlib

若要解決 DetectStackDrift 的可用性導致的錯誤:

  1. 再次評估您的 AWS Config 規則。

**注意:**例如,您可以為角色的 Amazon Resource Name (ARN) 附加 config.amazonaws.com 受信任許可和 ReadOnlyAccess(AWS Managed) 政策許可,該名稱在所需的規則參數 cloudformationRoleArn 中提供。如需詳細資訊,請參閱偵測漂移時的注意事項

  1. 在您的 CloudFormation 堆疊上執行漂移偵測

  2. 透過 AWS Config 規則執行評估。

設定正確許可

如果所需 cloudformationRoleArn 參數的 AWS Identity and Access Management (IAM) 角色沒有 DetectStackDrift API、DetectStackResourceDrift API 或其他必需的服務許可,您就會收到許可錯誤。

若要解決此錯誤,請為您的 IAM 角色編輯信任政策。您必須為 cloudformationRoleArn 附加 config.amazonaws.comReadOnlyAccess(AWS Managed) 許可

相關資訊

CloudFormation 研討會:漂移偵測實驗室


AWS 官方
AWS 官方已更新 3 年前