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"
}