Como entendo o campo ConfigurationItemDiff nas notificações de notificação ConfigurationItemChangeNotification do Amazon SNS?

4 minuto de leitura
0

Recebi uma notificação ConfigurationItemChangeNotification do Amazon Simple Notification Service (Amazon SNS). Por que recebi essa notificação e como interpreto as informações no campo ConfigurationItemDiff?

Resolução

O AWS Config cria um item de configuração sempre que a configuração de um recurso muda (criar/atualizar/excluir). Para uma lista dos recursos compatíveis com o AWS Config, consulte Supported resource types (Tipos de recursos compatíveis). O AWS Config usa o Amazon SNS para entregar uma notificação à medida que as mudanças ocorrem. A carga de notificação do Amazon SNS inclui campos para ajudar você a rastrear as alterações de recursos em uma determinada região da AWS. Para mais informações, consulte Example configuration item change notifications (Exemplo de notificações de alteração de item de configuração).

Para entender por que você recebe uma notificação ConfigurationItemChangeNotification, revise os detalhes de ConfigurationItemDiff. Os campos variam de acordo com o tipo de alteração e podem formar combinações diferentes, como UPDATE-UPDATE, UPDATE-CREATE e DELETE-DELETE. A seguir estão as explicações de algumas combinações comuns.

UPDATE-CREATE e UPDATE-UPDATE

O exemplo a seguir inclui alterações nas relações diretas e nas configurações de recursos. Os detalhes de ConfigurationItemDiff revelam as seguintes informações:

Ação executada: uma política gerenciada presente na conta foi anexada a uma função do AWS Identity and Access Management (IAM).

Operação básica executada: UPDATE (atualização do número de associações do tipo de recurso AWS::IAM::Policy em uma conta).

Alterar combinações de tipos:

  1. alteração direta do relacionamento de recursos UPDATE-CREATE. Um novo anexo ou associação foi criado entre uma política do IAM e um perfil do IAM.
  2. Alteração da configuração do recurso UPDATE-UPDATE. O número de associações de políticas do IAM aumentou de 2 para 3 quando a política foi anexada ao perfil do IAM.

Exemplo de notificação UPDATE-CREATE e UPDATE-UPDATE de 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

O exemplo a seguir inclui mudanças nas relações diretas do recurso. Os detalhes de ConfigurationItemDiff revelam as seguintes informações:

Ação executada: Uma política gerenciada presente na conta foi separada de um usuário do IAM.

Operação básica executada: UPDATE (atualização da política de permissões associada ao tipo de recurso AWS::IAM::User).

Alterar combinação de tipo: Alteração direta do relacionamento de recursos UPDATE-DELETE. A associação entre um usuário do IAM e uma política do IAM em uma conta foi excluída.

Exemplo de notificação UPDATE-DELETE de 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

O exemplo a seguir inclui alterações nas relações diretas e nas configurações de recursos. Os detalhes de ConfigurationItemDiff revelam as seguintes informações:

Ação executada: Uma função do IAM presente em uma conta foi excluída.

Operação básica executada: DELETE (um recurso do tipo AWS::IAM::Role foi excluído).

Alterar combinação de tipo: alteração do relacionamento direto do recurso e alteração da configuração do recurso DELETE-DELETE. A exclusão da função do IAM também excluiu a associação da política do IAM à função do IAM.

Exemplo de notificação DELETE-DELETE de 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"
  }

Informações relacionadas

Notificações que o AWS Config envia para um tópico do Amazon SNS

AWS OFICIAL
AWS OFICIALAtualizada há 3 anos