為什麼我的 AWS Config 規則無法運作?

2 分的閱讀內容
0

我的 AWS Config 規則無法運作。如何對此問題進行疑難排解?

解決方法

許多問題都可能導致受管 AWS Config 規則無法運作,包括許可、資源範圍或組態變更項目。若要解決 AWS Config 規則無法運作的問題,請嘗試下列疑難排解步驟。

注意事項: 如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請確認您使用的是最新版本的 AWS CLI

一般 AWS Config 規則疑難排解

  1. 確認組態記錄器是否記錄規則所需的所有資源類型 (例如 AWS::EC2::Instance)。
  2. 開啟 AWS Config 主控台,然後從導覽窗格中選擇規則。如果合規欄位顯示沒有報告結果範圍內沒有資源,請參閱設定和啟用 AWS 受管規則的步驟 8。
  3. 如果未報告評估時間並指出評估失敗,請檢視 AWS CloudTrail 日誌中的 PutEvaluations API 呼叫,以查看報告的錯誤
  4. 開啟 AWS CloudTrail 主控台,然後從導覽窗格中選擇事件歷史記錄。若要篩選日誌,請從下拉式清單中選擇事件來源,然後在搜尋欄位中輸入 config.amazonaws.com。檢閱篩選日誌結果是否存在存取遭拒錯誤。
  5. 對於定期觸發 AWS Config 規則,請存取 CloudTrail 主控台事件歷史記錄儀表板,以驗證資源上的相關服務 API。
  6. 檢閱特定資源組態合規時間表。確認產生的組態項目,以反映使用組態變更型觸發器的 AWS Config 規則變更。
  7. 確認是否符合記錄器角色許可需求。這些憑證是用於使用 PutEvaluations API 描述資源配置和發佈合規。
  8. 執行下列 AWS CLI 命令。使用您的 AWS Config 規則名稱取代 ConfigRuleName,然後使用您的 AWS 區域名稱取代 RegionID。從輸出中,檢閱 LastErrorMessage 值。
aws configservice describe-config-rule-evaluation-status --config-rule-names ConfigRuleName --region RegionID

自訂 AWS Config 規則疑難排解

對於自訂 AWS Config 規則,除了前述的一般疑難排解步驟之外,請驗證以下各項:

「無法執行 Lambda 函數」錯誤訊息表示該 AWS Config 服務不具備叫用 AWS Lambda 函數的權限。若要解決此錯誤,請執行下列命令以授予所需權限。使用 Lambda 函數名稱取代 function_name,使用 AWS 區域取代 RegionID,並使用 AWS 帳戶 ID 取代 AWS-accountID

aws lambda add-permission --function-name function_name --region RegionID --statement-id allow_config --action lambda:InvokeFunction --principal config.amazonaws.com --source-account AWS-accountID

以下是 Lambda 函數的資源政策範例:

{
    "Version": "2012-10-17",
    "Id": "default",
    "Statement": [
        {
            "Sid": "allow_config",
            "Effect": "Allow",
            "Principal": {
                "Service": "config.amazonaws.com"
            },
            "Action": "lambda:InvokeFunction",
            "Resource": "lambda-function-arn",
            "Condition": {
                "StringEquals": {
                    "AWS:SourceAccount": "AWS-accountID"
                }
            }
        }
    ]
}

識別 PutEvaluations 事件的使用者名稱值是否與 Lambda 函數名稱相符。請檢閱 errorMessage 了解詳細資訊。

  • 如果 Lambda 函數用於執行程式碼的角色未獲得執行 config:PutEvaluations 的權限,請為該指定角色新增許可。
  • 如果許可正確,請檢閱 Lambda 函數程式碼是否存在任何引發的例外狀況。如需詳細資訊,請檢閱 Amazon CloudWatch 日誌群組 (/aws/lambda/FunctionName) 中與 Lambda 函數相關聯的日誌。在程式碼中新增 print 陳述式,以產生更多偵錯日誌。

相關資訊

為什麼無法建立或刪除組織設定規則?

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