跳至內容

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

2 分的閱讀內容
0

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

解決方法

**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本

您管理的 AWS Config 規則可能因權限問題、資源範圍或組態變更項目而無法運作。請使用以下疑難排解步驟來解決這些問題。

檢閱您的組態記錄器

確認您的組態記錄器會記錄規則所需的所有資源類型,例如 AWS::EC2::Instance

更新規則的「合規」選項

在 AWS Config 主控台中,規則的 Compliance (合規) 選項可能會顯示 No results reported (未回報結果) 或 No resources in scope (範圍內沒有資源)。若要取得評估結果,您可能需要更新規則、變更範圍或新增資源。如需解決此問題的資訊,請參閱新增規則 (主控台)

檢閱您的評估

如果 AWS Config 未回報評估時間,並顯示 Evaluations failed (評估失敗),請在 AWS CloudTrail 日誌中檢閱 PutEvaluations API 呼叫是否有錯誤

檢閱您的事件歷史記錄

在 CloudTrail 中,您可以檢閱 AWS Config 事件的事件歷史記錄。將 Event source (事件來源) 篩選為 config.amazonaws.com,並在篩選後的日誌結果中搜尋「Access denied」錯誤。然後,檢閱錯誤以了解問題的詳細資訊。

您也可以檢閱定期評估觸發程序事件歷史記錄。若要解決這些問題,請確認資源可以存取相關服務 API。

檢閱您的組態項目

檢閱您的資源組態和合規時間表。確認資源的組態項目正確反映使用組態變更型觸發程序的 AWS Config 規則變更。

更新您的記錄器角色權限

確認記錄器角色具有正確的 AWS Identity and Access Management (IAM) 權限。這些權限使用 PutEvaluations API 來描述資源組態並發佈合規性。

檢閱您的規則評估狀態

若要檢視規則狀態,請執行以下 describe-config-rule-evaluation-status 命令,並檢閱 LastErrorMessage 值:

aws configservice describe-config-rule-evaluation-status --config-rule-names ConfigRuleName --region RegionID

**注意:**將 ConfigRuleName 替換為您的 AWS Config 規則名稱,並將 RegionID 替換為您的 AWS 區域。

對自訂 AWS Config 規則進行疑難排解

對於自訂 AWS Config 規則,AWS Config 必須具備正確權限,才能調用 AWS Lambda 函式。如果您沒有正確權限,則會收到以下錯誤訊息:

「Unable to execute lambda function」

以下是 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"
                }
            }
        }
    ]
}

若要尋找錯誤的詳細資訊,請檢閱日誌中 User name (使用者名稱) 值符合 Lambda 函式名稱的 PutEvaluations 事件。然後,檢閱 errorMessage 以了解詳細資訊。

如果您未授權 Lambda 函式服務角色執行 config:PutEvaluations,請執行以下 add-permission 命令:

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

**注意:**將 function_name 替換為您的 Lambda 函式名稱,將 RegionID 替換為您的區域,並將 AWS-accountID 替換為您的 AWS 帳戶 ID。

如果角色權限正確,請檢閱 Lambda 函式程式碼是否引發例外狀況。如需更多詳細資訊,請檢閱與 Lambda 函式相關聯之 /aws/lambda/FunctionName Amazon CloudWatch 日誌群組中的日誌。

**注意:**若要產生更多偵錯日誌,請在 Lambda 程式碼中新增 print 陳述式。

相關資訊

為什麼我無法在 AWS Config 中為 AWS Organizations 建立或刪除 Config 規則?

AWS 官方已更新 1 年前