He recibido una notificación ConfigurationItemChangeNotification de Amazon Simple Notification Service (Amazon SNS) y quiero saber qué significa.
Resolución
AWS Config crea un elemento de configuración cada vez que cambia la configuración de un recurso (por ejemplo, al crearlo, actualizarlo o eliminarlo). Para obtener una lista de los recursos compatibles con AWS Config, consulta Tipos de recursos compatibles para AWS Config. AWS Config usa Amazon SNS para enviar una notificación a medida que se producen los cambios. La carga de notificaciones de Amazon SNS incluye campos que ayudan a realizar un seguimiento de los cambios en los recursos en una región de AWS. Para obtener más información, consulta Ejemplo de notificaciones de cambio de elementos de configuración.
Para entender por qué recibes una notificación ConfigurationItemChangeNotification, revisa los detalles de configurationItemDiff. Los campos varían según el tipo de cambio y pueden formar diferentes combinaciones, como UPDATE-UPDATE, UPDATE-CREATE y DELETE-DELETE. A continuación se explican algunas de las combinaciones comunes.
UPDATE-CREATE y UPDATE-UPDATE
El ejemplo a continuación incluye cambios en las relaciones directas de los recursos y en las configuraciones de los recursos. Los detalles de configurationItemDiff muestran la siguiente información:
- Acción realizada: se adjuntó una política administrada presente en la cuenta a un rol de AWS Identity and Access Management (IAM).
- Operación básica realizada: La operación UPDATE actualiza el número de asociaciones del tipo de recurso AWS::IAM::Policy en una cuenta.
Las siguientes son las combinaciones de tipos de cambio que se pueden producir:
- Cambio de las relaciones directas de los recursos UPDATE-CREATE: has creado un nuevo elemento adjunto o asociación entre una política de IAM y un rol de IAM.
- Cambio de configuración de recursos UPDATE-UPDATE: el número de asociaciones de políticas de IAM aumentó de 2 a 3 cuando la política se asoció al rol de IAM.
Ejemplo de notificación configurationItemDiff UPDATE-CREATE y UPDATE-UPDATE:
{
"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
El ejemplo a continuación incluye cambios en las relaciones directas de los recursos. Los detalles de configurationItemDiff muestran la siguiente información:
- Acción realizada: has separado de un usuario de IAM una política administrada presente en la cuenta.
- Operación básica realizada: La operación UPDATE actualiza la política de permisos asociada al tipo de recurso AWS::IAM::User.
Se puede producir la siguiente combinación de tipos de cambio: cambio de las relaciones directas de los recursos UPDATE-DELETE. La operación elimina la asociación entre un usuario de IAM y una política de IAM en una cuenta.
Ejemplo de notificación configurationItemDiff UPDATE-DELETE:
{
"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
El ejemplo a continuación incluye cambios en las relaciones directas de los recursos y en las configuraciones de los recursos. Los detalles de configurationItemDiff muestran la siguiente información:
- Acción realizada: se ha eliminado un rol de IAM presente en una cuenta.
- Operación básica realizada: La operación DELETE ha eliminado un recurso del tipo de recurso AWS::IAM::Role.
Se puede producir la siguiente combinación de tipos de cambio: cambio de las relaciones directas de los recursos y cambio de la configuración de los recursos DELETE-DELETE. La eliminación del rol de IAM también elimina la asociación de la política de IAM con el rol de IAM.
Ejemplo de notificación configurationItemDiff DELETE-DELETE:
{
"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"
}
Información relacionada
Notifications that AWS Config sends to an Amazon SNS topic (Notificaciones que AWS Config envía a un tema de Amazon SNS)