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 请求或put-config-rule AWS CLI 命令中使用InputParameters属性定义参数。

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

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

函数在调用时必须传递给 AWS Config 的标PutEvaluations记。

eventLeftScope

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

executionRoleArn

分配给的 IAM 角色的 ARN。 AWS Config

configRuleArn

AWS Config 分配给规则的 ARN。

configRuleName

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

configRuleId

AWS Config 分配给规则的 ID。

accountId

拥有该规则的 AWS 账户的 ID。

version

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

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