如何理解 Amazon SNS ConfigurationItemChangeNotification 通知中的 configurationItemDiff 字段?
上次更新日期:2021 年 4 月 29 日
我收到了 ConfigurationItemChangeNotification Amazon Simple Notification Service (Amazon SNS) 通知。我为什么会收到此通知,我该如何解释 configurationItemDiff 字段中的信息?
解决方法
每当资源配置发生变化(创建/更新/删除)时,AWS Config 都会创建一个配置项目。有关 AWS Config 支持的资源的列表,请参阅支持的资源类型。AWS Config 使用 Amazon SNS 在更改发生时发送通知。Amazon SNS 通知有效负载包含可帮助您跟踪给定 AWS 区域中的资源变化的字段。有关更多信息,请参阅配置项更改通知示例。
要了解您为什么会收到 ConfigurationItemChangeNotification 通知,请查看 configurationItemDiff 详细信息。这些字段根据更改类型而不同,可以形成不同的组合,例如 UPDATE-UPDATE、UPDATE-CREATE 和 DELETE-DELETE。以下是对一些常见组合的解释。
UPDATE-CREATE 和 UPDATE-UPDATE
以下示例包括资源直接关系和资源配置的更改。configurationItemDiff 详细信息显示了以下信息:
执行的操作:账户中的托管策略已附加到 AWS Identity and Access Management (IAM) 角色。
执行的基本操作:UPDATE(更新某个账户中资源类型 AWS::IAM::Policy 的关联数量)。
更改类型组合:
- 资源直接关系更改 UPDATE-CREATE。在 IAM 策略和 IAM 角色之间创建了新的附加或关联。
- 资源配置更改 UPDATE-UPDATE。当策略附加到 IAM 角色时,IAM 策略关联数量从 2 个增加到 3 个。
UPDATE-CREATE 和 UPDATE-UPDATE configurationItemDiff 通知示例:
{
"configurationItemDiff": {
"changedProperties": {
"Relationships.0": {
"previousValue": null,
"updatedValue": {
"resourceId": "AROA6D3M4S53*********",
"resourceName": "Test1",
"resourceType": "AWS::IAM::Role",
"name": "Is attached to Role"
},
"changeType": "CREATE" >>>>>>>>>>>>>>>>>>>> 1
},
"Configuration.AttachmentCount": {
"previousValue": 2,
"updatedValue": 3,
"changeType": "UPDATE" >>>>>>>>>>>>>>>>>>>> 2
}
},
"changeType": "UPDATE"
}
}
UPDATE-DELETE
以下示例包括资源直接关系的更改。configurationItemDiff 详细信息显示了以下信息:
执行的操作:账户中的托管策略已与 IAM 用户分离。
执行的基本操作:UPDATE(更新与资源类型 AWS::IAM::User 关联的权限策略)。
更改类型组合:资源直接关系更改 UPDATE-DELETE。IAM 用户与账户中的 IAM 策略之间的关联已被删除。
UPDATE-DELETE configurationItemDiff 通知示例:
{
"configurationItemDiff": {
"changedProperties": {
"Configuration.UserPolicyList.0": {
"previousValue": {
"policyName": "Test2",
"policyDocument": "{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "ec2:RunInstances",
"Resource": "arn:aws:ec2:*:*:instance/*",
"Condition": {
"StringLike": {
"aws:RequestTag/VPCId": "*"
}
}
}
]
}"
},
"updatedValue": null,
"changeType": "DELETE" >>>>>>>>>>>>>>>>>>>> 3
}
},
"changeType": "UPDATE"
}
}
DELETE-DELETE
以下示例包括资源直接关系和资源配置的更改。configurationItemDiff 详细信息显示了以下信息:
执行的操作:账户中的 IAM 角色已删除。
执行的基本操作:DELETE(资源类型 AWS::IAM::Role 的一种资源已删除)。
更改类型组合:资源直接关系更改和资源配置更改 DELETE-DELETE。删除 IAM 角色也会删除 IAM 策略与 IAM 角色的关联。
DELETE-DELETE configurationItemDiff 通知示例:
{
"configurationItemDiff": {
"changedProperties": {
"Relationships.0": {
"previousValue": {
"resourceId": "ANPAIJ5MXUKK*********",
"resourceName": "AWSCloudTrailAccessPolicy",
"resourceType": "AWS::IAM::Policy",
"name": "Is attached to CustomerManagedPolicy"
},
"updatedValue": null,
"changeType": "DELETE"
},
"Configuration": {
"previousValue": {
"path": "/",
"roleName": "CloudTrailRole",
"roleId": "AROAJITJ6YGM*********",
"arn": "arn:aws:iam::123456789012:role/CloudTrailRole",
"createDate": "2017-12-06T10:27:51.000Z",
"assumeRolePolicyDocument": "{"Version":"2012-10-17","Statement":[{"Sid":"","Effect":"Allow","Principal":{"AWS":"arn:aws:iam::123456789012:root"},"Action":"sts:AssumeRole","Condition":{"StringEquals":{"sts:ExternalId":"123456"}}}]}",
"instanceProfileList": [],
"rolePolicyList": [],
"attachedManagedPolicies": [
{
"policyName": "AWSCloudTrailAccessPolicy",
"policyArn": "arn:aws:iam::123456789012:policy/AWSCloudTrailAccessPolicy"
}
],
"permissionsBoundary": null,
"tags": [],
"roleLastUsed": null
},
"updatedValue": null,
"changeType": "DELETE"
}
},
"changeType": "DELETE"
}