如何理解 Amazon SNS ConfigurationItemChangeNotification 通知中的 configurationItemDiff 字段?

2 分钟阅读
0

我收到了 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 的关联数量)。

更改类型组合

  1. 资源直接关系更改 UPDATE-CREATE。在 IAM 策略和 IAM 角色之间创建了新的附加或关联。
  2. 资源配置更改 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"
  }

相关信息

AWS Config 发送到 Amazon SNS 主题的通知

AWS 官方
AWS 官方已更新 3 年前