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 configurationItemconfigurationItemSummary (对于过大配置项) 的字符串。该配置项表示相关资源在 AWS Config 检测到更改时的状态。有关配置项的示例,请参阅 查看配置历史记录 中的 get-resource-config-history AWS CLI 命令生成的输出。

如果事件是针对定期评估而发布的,则值是一个包含 JSON 对象的字符串。该对象包含关于已触发的评估的信息。

对于每种类型的事件,函数必须通过 JSON 解析程序解析字符串,以便能够评估其内容,如下面的 Node.js 示例中所示:

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

函数会将其作为评估逻辑的一部分来处理的键/值对。在使用AWS Config控制台创建自定义 Lambda 规则时,您可以定义参数。您也可以使用 PutConfigRule AWS Config API 请求中的 InputParameters 属性或 put-config-rule AWS CLI 命令来定义参数。

参数的 JSON 代码包含在字符串中,因此,函数必须通过 JSON 解析程序解析字符串,以便能够评估其内容,如下面的 Node.js 示例中所示:

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

函数必须通过 PutEvaluations 调用传递给 AWS Config 的令牌。

eventLeftScope

表明要评估的 AWS 资源是否已从规则范围内删除的布尔值。如果值为 true,则该函数表示可通过传递 NOT_APPLICABLE 作为 ComplianceType 调用中的 PutEvaluations 属性值来忽略评估。

executionRoleArn

分配的 IAM 角色的 ARNAWS Config。

configRuleArn

AWS Config 分配给规则的 ARN。

configRuleName

您向导致 AWS Config 发布事件并调用函数的规则分配的名称。

configRuleId

AWS Config 分配给规则的 ID。

accountId

拥有规则的 AWS 账户的 ID。

version

AWS 分配的版本号。如果 AWS 向 AWS Config 事件添加属性,则版本号会递增。如果函数需要仅在匹配或超过特定版本的事件中的属性,则该函数可以检查此属性的值。

AWS Config 事件的当前版本为 1.0。