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 のリソースタイプとルールを置き換えます。
次の手順を実行します。
-
Amazon SNS トピックを作成します。既存の Amazon SNS トピックがある場合は、次のステップに進んでください。
重要: Amazon SNS トピックは、AWS Config サービスと同じ AWS リージョンにある必要があります。
-
EventBridge コンソールを開きます。
-
[EventBridge ルール] を選択し、[ルールを作成] を選択します。
-
[ルール詳細の定義] 画面の [ルール詳細] で、次の情報を入力します。
[名前] に、ルール名を入力します。
(オプション) [説明] に、ルールの説明を入力します。
[ルールタイプ] には、[イベントパターン付きルール] を選択します。その後、[次へ] を選択します。
-
[イベントソース] で、[AWS イベントまたは EventBridge パートナーイベント] を選択します。
-
[作成方法] で、[カスタムパターン (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"
]
}
}
}
-
[次へ] を選択します。
-
[ターゲットの選択] 画面で、次の情報を入力します。
[ターゲットタイプ] には、[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 リージョン、コンプライアンス、ならびにユースケースの必要に応じたリソース情報に置き換えます。
[確認] を選択します。
-
[次へ] を選択します。その後、[次へ] を選択します。
-
[ルールの作成] を選択します。
イベントタイプがトリガーされると、カスタムフィールドが入力された 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 ルールを設定する方法を教えてください