AWS Config を使用して、AWS リソースが準拠していない場合に通知を受け取る方法を教えてください。

所要時間2分
0

AWS リソースが準拠していない場合に、カスタムメール通知を送信する Amazon EventBridge ルールを作成したいと考えています。

簡単な説明

NON_COMPLIANT となっている AWS Config 評価ルール出力を照合するには、最初に、カスタムイベントパターンと入力トランスフォーマーを含む EventBridge ルールを作成します。次に、EventBridge からの応答を Amazon Simple Notification Service (Amazon SNS) トピックにルーティングします。

解決策

次の例では、ec2-security-group-attached-to-eni マネージドルールが AWS リソースを NON_COMPLIANT と報告したときに、SNS 通知が届きます。非準拠リソースは Amazon Elastic Compute Cloud (Amazon EC2) セキュリティグループです。

注: お使いの特定の AWS サービスと AWS Config ルールで、AWS Config のリソースタイプルールを置き換えます。

次の手順を実行します。

  1. Amazon SNS トピックを作成します。既存の Amazon SNS トピックがある場合は、次のステップに進んでください。
    重要: Amazon SNS トピックは、AWS Config サービスと同じ AWS リージョンにある必要があります。

  2. EventBridge コンソールを開きます。

  3. [EventBridge ルール] を選択し、[ルールを作成] を選択します。

  4. [ルール詳細の定義] 画面の [ルール詳細] で、次の情報を入力します。
    [名前] に、ルール名を入力します。
    (オプション) [説明] に、ルールの説明を入力します。
    [ルールタイプ] には、[イベントパターン付きルール] を選択します。その後、[次へ] を選択します。

  5. [イベントソース] で、[AWS イベントまたは EventBridge パートナーイベント] を選択します。

  6. [作成方法] で、[カスタムパターン (JSON エディタ)] を選択し、次のイベントパターンの例を入力します。

    {
      "source": [
        "aws.config"
      ],
      "detail-type": [
        "Config Rules Compliance Change"
      ],
      "detail": {
        "messageType": [
          "ComplianceChangeNotification"
        ],
        "configRuleName": [
          "ec2-security-group-attached-to-eni"
        ],
        "resourceType": [
          "AWS::EC2::SecurityGroup"
        ],
        "newEvaluationResult": {
          "complianceType": [
            "NON_COMPLIANT"
          ]
        }
      }
    }
  7. [次へ] を選択します。

  8. [ターゲットの選択] 画面で、次の情報を入力します。
    [ターゲットタイプ] には、[AWS サービス] を選択します。
    [ターゲットを選択] で、[SNS トピック] を選択します。
    [トピック] で、SNS トピックを選択します。
    [その他の設定][ターゲット入力の構成] で、[入力トランスフォーマー] を選択します。
    [入力トランスフォーマーを設定] を選択します。
    [ターゲット入力トランスフォーマー][入力パス] テキストボックスに、次のパスの例を入力します。

    {
      "awsRegion": "$.detail.awsRegion",
      "resourceId": "$.detail.resourceId",
      "awsAccountId": "$.detail.awsAccountId",
      "compliance": "$.detail.newEvaluationResult.complianceType",
      "rule": "$.detail.configRuleName",
      "time": "$.detail.newEvaluationResult.resultRecordedTime",
      "resourceType": "$.detail.resourceType"
    }

    [テンプレート] に、次のテンプレート例を入力します。

    "On yourTime AWS Config rule yourRule evaluated the yourResourceType with Id yourResourceId in the account yourAWSAccountId Region yourAwsRegion as yourCompliance. For more details open the AWS Config console at https://console.aws.amazon.com/config/home?region=yourAwsRegion#/timeline/yourResourceType/yourResourceId]/configuration"

    注: 上記の例では、**yourTime、yourRule、yourResourceType、yourResourceId、yourAWSAccountId、 yourAWSRegion、**yourCompliance を実際の時間、リソースタイプ、リソース ID、AWS アカウント ID、AWS リージョン、コンプライアンス、ならびにユースケースの必要に応じたリソース情報に置き換えます。
    [確認] を選択します。

  9. [次へ] を選択します。その後、[次へ] を選択します。

  10. [ルールの作成] を選択します。

イベントタイプがトリガーされると、カスタムフィールドが入力された SNS メール通知が届きます。

例:

"On ExampleTime AWS Config rule ExampleRuleName evaluated the ExampleResourceType with Id ExampleResource_ID in the account ExampleAccount_ID in Region ExampleRegion as ExampleComplianceType. For more details open the AWS Config console at https://console.aws.amazon.com/config/home?region=ExampleRegion#/timeline/ExampleResourceType/ExampleResource_ID/configuration"

関連情報

Amazon Route 53 ホストゾーンのレコードが変更されたときに通知を受け取る方法を教えてください

AWS Config サービスを使用して、AWS アカウントでリソースが作成されたときに通知を受け取る方法を教えてください

特定の AWS サービスイベントタイプに関するカスタム SNS 通知を送信するように GuardDuty の EventBridge ルールを設定する方法を教えてください

AWS公式
AWS公式更新しました 3ヶ月前