AWS Config ルールのイベントの例 - AWS Config

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS Config ルールのイベントの例

ルールのトリガーが発生すると、AWS Config はイベントを発行してルールの AWS Lambda 関数を呼び出します。次に、AWS Lambda はイベントを関数のハンドラーに渡して関数を実行します。

設定変更でトリガーされる評価のイベントの例

AWS Config は、ルールのスコープ内にあるリソースで設定変更を検出すると、イベントを発行します。次のイベント例は、EC2 インスタンスの設定変更でルールがトリガーされたことを示しています。

{ "invokingEvent": "{\"configurationItem\":{\"configurationItemCaptureTime\":\"2016-02-17T01:36:34.043Z\",\"awsAccountId\":\"123456789012\",\"configurationItemStatus\":\"OK\",\"resourceId\":\"i-00000000\",\"ARN\":\"arn:aws:ec2:us-east-2:123456789012:instance/i-00000000\",\"awsRegion\":\"us-east-2\",\"availabilityZone\":\"us-east-2a\",\"resourceType\":\"AWS::EC2::Instance\",\"tags\":{\"Foo\":\"Bar\"},\"relationships\":[{\"resourceId\":\"eipalloc-00000000\",\"resourceType\":\"AWS::EC2::EIP\",\"name\":\"Is attached to ElasticIp\"}],\"configuration\":{\"foo\":\"bar\"}},\"messageType\":\"ConfigurationItemChangeNotification\"}", "ruleParameters": "{\"myParameterKey\":\"myParameterValue\"}", "resultToken": "myResultToken", "eventLeftScope": false, "executionRoleArn": "arn:aws:iam::123456789012:role/config-role", "configRuleArn": "arn:aws:config:us-east-2:123456789012:config-rule/config-rule-0123456", "configRuleName": "change-triggered-config-rule", "configRuleId": "config-rule-0123456", "accountId": "123456789012", "version": "1.0" }

サイズが大きすぎる設定変更でトリガーされる評価のイベントの例

一部のリソースの変更では、サイズが大きすぎる設定項目が生成されます。次のイベント例は、EC2 インスタンスに対するサイズの大きな設定変更でルールがトリガーされたことを示しています。

{ "invokingEvent": "{\"configurationItemSummary\": {\"changeType\": \"UPDATE\",\"configurationItemVersion\": \"1.2\",\"configurationItemCaptureTime\":\"2016-10-06T16:46:16.261Z\",\"configurationStateId\": 0,\"awsAccountId\":\"123456789012\",\"configurationItemStatus\": \"OK\",\"resourceType\": \"AWS::EC2::Instance\",\"resourceId\":\"i-00000000\",\"resourceName\":null,\"ARN\":\"arn:aws:ec2:us-west-2:123456789012:instance/i-00000000\",\"awsRegion\": \"us-west-2\",\"availabilityZone\":\"us-west-2a\",\"configurationStateMd5Hash\":\"8f1ee69b287895a0f8bc5753eca68e96\",\"resourceCreationTime\":\"2016-10-06T16:46:10.489Z\"},\"messageType\":\"OversizedConfigurationItemChangeNotification\"}", "ruleParameters": "{\"myParameterKey\":\"myParameterValue\"}", "resultToken": "myResultToken", "eventLeftScope": false, "executionRoleArn": "arn:aws:iam::123456789012:role/config-role", "configRuleArn": "arn:aws:config:us-east-2:123456789012:config-rule/config-rule-ec2-managed-instance-inventory", "configRuleName": "change-triggered-config-rule", "configRuleId": "config-rule-0123456", "accountId": "123456789012", "version": "1.0" }

定期的な間隔でトリガーされる評価のイベントの例

AWS Config は、指定された間隔 (24 時間ごとなど) でリソースを評価するときにイベントを発行します。次のイベント例は、定期的な間隔でルールがトリガーされたことを示しています。

{ "invokingEvent": "{\"awsAccountId\":\"123456789012\",\"notificationCreationTime\":\"2016-07-13T21:50:00.373Z\",\"messageType\":\"ScheduledNotification\",\"recordVersion\":\"1.0\"}", "ruleParameters": "{\"myParameterKey\":\"myParameterValue\"}", "resultToken": "myResultToken", "eventLeftScope": false, "executionRoleArn": "arn:aws:iam::123456789012:role/config-role", "configRuleArn": "arn:aws:config:us-east-2:123456789012:config-rule/config-rule-0123456", "configRuleName": "periodic-config-rule", "configRuleId": "config-rule-6543210", "accountId": "123456789012", "version": "1.0" }

イベントの属性

AWS Config イベントの JSON オブジェクトには、以下の属性が含まれています。

invokingEvent

ルールの評価をトリガーするイベント。リソースの設定変更に応じてイベントが発行される場合、この属性の値は JSON configurationItem または configurationItemSummary (サイズが大きすぎる設定項目の場合) です。設定項目は、AWS Config で変更を検出した時点のリソースの状態を示します。設定項目の例については、「設定履歴の表示」の get-resource-config-history AWS CLI コマンドで生成される出力を参照してください。

定期的な評価のためにイベントが発行される場合、値は JSON オブジェクトを含む文字列です。オブジェクトには、トリガーされた評価に関する情報が含まれています。

それぞれのタイプのイベントで、次の Node.js 例を示すように、関数は JSON パーサーで文字列を解析して文字列の内容を評価する必要があります。

var invokingEvent = JSON.parse(event.invokingEvent);
ruleParameters

評価ロジックの一部として関数が処理するキー/値ペア。AWS Config コンソールを使用してカスタム Lambda ルールを作成するときにパラメータを定義します。PutConfigRule AWS Config API リクエストまたは put-config-rule AWS CLI コマンドの InputParameters 属性でも、パラメータを定義できます。

パラメータの JSON コードが文字列に含まれているため、次の Node.js 例で示すように、関数は文字列を JSON パーサーで解析して文字列の内容を評価する必要があります。

var ruleParameters = JSON.parse(event.ruleParameters);
resultToken

PutEvaluations 呼び出しで関数から AWS Config に渡すトークン。

eventLeftScope

評価対象の AWS リソースがルールのスコープから削除されているかどうかを示すブール値。値が true の場合、関数は、NOT_APPLICABLE 呼び出しの ComplianceType 属性の値として PutEvaluations を渡すことで、評価を無視できることを示します。

executionRoleArn

AWS Config に割り当てられる IAM ロールの ARN。

configRuleArn

AWS Config がルールに割り当てた ARN。

configRuleName

AWS Config がイベントを発行して関数を呼び出す原因となったルールに割り当てた名前。

configRuleId

AWS Config がルールに割り当てた ID。

accountId

ルールを所有する AWS アカウントの ID。

version

AWS によって割り当てられたバージョン番号。AWS が AWS Config イベントに属性を追加すると、バージョンはインクリメントされます。関数に必要な属性が特定のバージョン以上のイベントにのみある場合、その関数はこの属性の値を確認できます。

AWS Config イベントの現行バージョンは 1.0 です。