AWS リソースが準拠していない場合に AWS Config を使用して通知を受けるにはどうすればよいですか?

最終更新日: 2022 年 10 月 20 日

AWS リソースが準拠していない場合に通知をトリガーする Amazon EventBridge ルールを作成しましたが、レスポンスが JSON 形式です。カスタマイズされた通知を E メールで受信するにはどうすればよいですか?

簡単な説明

EventBridge ルール をカスタムイベントパターンと入力トランスフォーマーとともに使用して、AWS Config 評価ルール出力を NON_COMPLIANT と照合します。次に、レスポンスを Amazon Simple Notification Service (Amazon SNS) トピックにルーティングします。

解決方法

次の例では、ec2-security-group-attached-to-eni のマネージドルールが Amazon Elastic Compute Cloud (Amazon EC2) のセキュリティグループに対し、NON_COMPLIANT として AWS をレポートすると、SNS 通知が届きます。

注意: AWS Config リソースタイプルールを、特定の AWS サービスと AWS Config ルールに置き換えることができます。

1.    Amazon SNS トピックをまだ作成していない場合は、「Amazon SNS の開始方法」の指示に従ってください。

重要: Amazon SNS トピックは、AWS Config サービスと同じリージョンにある必要があります。

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

3.    [Create rule] (ルールの作成) を選択します。

4.    [Name] (名前) で、ルール名を入力します。必要に応じて、[Description] (説明) を入力します。

5.    [Rule type] (ルールタイプ) で、[Rule with an event pattern] (イベントパターンを含むルール) を選択します。その後、[Next] (次へ) を選択します。

6.    [Event source] (イベントソース) で、[AWS events or EventBridge partner events] (AWS イベントまたは EventBridge パートナーイベント) を選択します。

7.    [Event pattern] (イベントパターン) ペインで [Custom patterns (JSON editor)] (カスタムパターン (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"
      ]
    }
  }
}

8.    [次へ] を選択します。

9.    [Target types] (ターゲットタイプ) で、[AWS service] (AWS のサービス) を選択します。

10.    [Select a target] (ターゲットを選択) で、[SNS topic] (SNS トピック) を選択します。

11.    [Topic] (トピック) で、SNS トピックを選択します。

12.    [Additional settings] (追加設定) を展開します。その後、[Configure target input] (ターゲット入力の設定) で [Input Transformer] (入力トランスフォーマー) を選択します。

13.[Configure input transformer] (入力トランスフォーマーを設定) を選択します。[Input Path] (入力パス) テキストボックスの [Target input transformer] (ターゲット入力トランスフォーマー) で、次のサンプルパスをコピーして貼り付けます。

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

14.    [Template] (テンプレート) テキストボックスに、次のサンプルテンプレートをコピーして貼り付けます。ユースケースに応じて、時間ルールリソースタイプ、リソース ID、AWS アカウント ID、AWS リージョン、コンプライアンス、およびリソース情報を入力します。

"On <time> AWS Config rule <rule> evaluated the <resourceType> with Id <resourceId> in the account <awsAccountId> region <awsRegion> as <compliance> For more details open the AWS Config console at https://console.aws.amazon.com/config/home?region=<awsRegion>#/timeline/<resourceType>/<resourceId>/configuration"

15.    [Confirm] (確認) を選択します。その後、[Next] (次へ) を選択します。

16.    オプションで、[Add new tag] (新しいタグを追加) できます。その後、[Next] (次へ) を選択します。

17.    [Create rule] (ルールの作成) を選択します。

18.    イベントタイプがトリガーされると、ステップ 13 で入力されたカスタム項目が記載された、次のような SNS の E メール通知を受け取ります。

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