AWS Config ルールが機能しません。その理由は?

最終更新日: 2021 年 7 月 20 日

AWS Config ルールが機能していません。この問題を解決するには、どうすればよいですか?

解決方法

アクセス許可、リソーススコープ、設定変更項目など、さまざまな問題により、管理された AWS Config ルールが機能しなくなる可能性があります。機能しない AWS Config ルールを解決するには、以下のトラブルシューティング手順を試してください。

: AWS コマンドラインインターフェイス (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. 特定のリソース configuration( 構成 ) とコンプライアンス のタイムラインを確認します。設定変更ベースのトリガーを使用して、AWS Config ルールの変更を反映するために生成された設定項目を確認します。
  7. レコーダーロールの権限要件が満たされていることを確認します。これらの認証情報は、 PutEvaluations API を使用してリソース構成と公開コンプライアンスを記述するために使用されます。
  8. 以下の AWS CLI コマンドを実行します。ConfigRuleName を AWS Config rule name に置き換え、 RegionID を AWS リージョンに置き換えます。出力から、LastErrorMessage 値を確認します。
aws configservice describe-config-rule-evaluation-status --config-rule-names ConfigRuleName --region RegionID

カスタム AWS Config ルールのトラブルシューティング

カスタム AWS Config ルールの場合は、上記の一般的なトラブルシューティング手順に加えて、次のことを確認します。

「lambda 関数を実行できません」というエラーメッセージは、AWS Config サービスに AWS Lambda 関数を呼びだすアクセス許可がないことを示します。このエラーを解決するには、次のコマンドを実行して、必要なアクセス許可を付与します。function_name を Lambda 関数名、RegionID を AWS リージョンに、AWS アカウント ID に置き換えます。

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"
                }
            }
        }
    ]
}

Lambda 関数名と一致するユーザー名の値を持つ PutEvaluations イベントを特定します。詳細については、 errorMessage を参照してください。

  • コードの実行に Lambda 関数が使用するロールが config: PutEvaluations を実行する権限がない場合は、指定されたロールにアクセス許可を追加します。
  • アクセス許可が正しい場合は、Lambda 関数コードで発生する例外を確認します。詳細については、Lambda 関数に関連付けられた Amazon CloudWatch ロググループ (/aws/lambda/FunctionName) のログを確認してください。さらにデバッグログを生成するには、コードに print ステートメントを追加します。

この記事は役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?