Registro em log das chamadas da API do AWS Directory Service Data usando AWS CloudTrail - AWS Directory Service

Registro em log das chamadas da API do AWS Directory Service Data usando AWS CloudTrail

O AWS Directory Service Data se integra ao AWS CloudTrail, um serviço que fornece um registro das ações realizadas por um usuário, perfil ou serviço da AWS no Directory Service Data. O CloudTrail captura todas as chamadas de API para o Directory Service Data como eventos. As chamadas capturadas incluem chamadas do console do Directory Service Data e chamadas de código para operações da API do Directory Service Data. Se você criar um rastreamento, poderá habilitar a entrega contínua de eventos do CloudTrail para um bucket do Amazon S3, incluindo eventos do Directory Service Data. Usando as informações coletadas pelo CloudTrail, você pode determinar a solicitação feita ao Directory Service Data, o endereço IP de onde a solicitação foi realizada, quem fez a solicitação, quando ela foi feita e detalhes adicionais.

Para saber mais sobre o CloudTrail, consulte o Guia do usuário do AWS CloudTrail.

Informações do Directory Service Data no CloudTrail

O CloudTrail é habilitado em sua Conta da AWS quando ela é criada. Quando ocorre atividade de evento compatível (eventos de gerenciamento) no Directory Service Data, ela é registrada em um evento do CloudTrail com outros eventos de serviços da AWS no Histórico de eventos. Você pode visualizar, pesquisar e baixar os eventos de gerenciamento dos últimos 90 dias na Conta da AWS. Para mais informações, consulte Como visualizar eventos com o histórico de eventos do CloudTrail. Não há cobrança pela visualização do Histórico de eventos.

Para obter um registro contínuo de eventos da sua Conta da AWS, incluindo aqueles do Directory Service Data, crie um rastreamento. Uma trilha permite que o CloudTrail entregue arquivos de log a um bucket do Amazon S3. Por padrão, quando você cria uma trilha no console, ela é aplicada a todas as Regiões da AWS. A trilha registra eventos de todas as regiões na partição da AWS e entrega os arquivos de log no bucket do Amazon S3 que você especifica. Além disso, é possível configurar outros AWS serviços para melhor analisar e agir de acordo com dados coletados do evento nos logs CloudTrail. Para obter mais informações, consulte:

Todas as ações do Directory Service Data são registradas pelo CloudTrail e estão documentadas na Referência de APIs do Directory Service Data. Por exemplo, as chamadas às ações AddGroupMember, DescribeUser e SearchGroups geram entradas nos arquivos de log do CloudTrail.

Cada entrada de log ou evento contém informações sobre quem gerou a solicitação. As informações de identidade ajudam a determinar:

  • Se a solicitação foi feita com credenciais de usuário-raiz ou usuário do AWS Identity and Access Management (IAM).

  • Se a solicitação foi feita com credenciais de segurança temporárias de um perfil ou de um usuário federado.

  • Se a solicitação foi feita por outro serviço da AWS.

Para obter mais informações, consulte Elemento userIdentity do CloudTrail.

Noções básicas das entradas do arquivo de log do Directory Service Data

Uma trilha é uma configuração que permite a entrega de eventos como arquivos de log a um bucket Amazon S3 especificado. Os arquivos de log do CloudTrail contêm uma ou mais entradas de log. Um evento representa uma única solicitação de qualquer fonte, e inclui informações sobre a ação solicitada, data e hora da ação, parâmetros da solicitação e assim por diante. Os arquivos de log do CloudTrail não são um rastreamento de pilha ordenada de chamadas de API pública, portanto, não são exibidos em uma ordem específica.

O exemplo a seguir mostra uma entrada de log do CloudTrail que demonstra a ação CreateUser.

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "1234567890abcdef0:admin-role", "arn": "arn:aws:sts::111222333444:assumed-role/AdAdmin/admin-role", "accountId": "111222333444", "accessKeyId": "021345abcdef6789", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "1234567890abcdef0", "arn": "arn:aws:iam::111222333444:role/AdAdmin", "accountId": "111222333444", "userName": "AdAdmin" }, "attributes": { "creationDate": "2023-05-30T18:22:38Z", "mfaAuthenticated": "false" } } }, "eventTime": "2023-05-30T19:17:03Z", "eventSource": "ds.amazonaws.com", "eventName": "CreateUser", "awsRegion": "ap-northeast-2", "sourceIPAddress": ": 10.24.34.0", "userAgent": "aws-cli/2.9.20 Python/3.11.1 Darwin/21.6.0 source/x86_64 prompt/off command/ds-data.create-user", "requestParameters": { "directoryId": "d-1234567890", "sAMAccountName": "johnsmith", "clientToken": "example_token" "emailAddress": "HIDDEN_DUE_TO_SECURITY_REASONS", "givenName": "HIDDEN_DUE_TO_SECURITY_REASONS", "surname": "HIDDEN_DUE_TO_SECURITY_REASONS", "otherAttributes": { "physicalDeliveryOfficeName": { "s": "HIDDEN_DUE_TO_SECURITY_REASONS" }, "telephoneNumber": { "s": "HIDDEN_DUE_TO_SECURITY_REASONS" }, "streetAddress": { "s": "HIDDEN_DUE_TO_SECURITY_REASONS" }, "displayName": { "s": "HIDDEN_DUE_TO_SECURITY_REASONS" }, "homePhone": { "s": "HIDDEN_DUE_TO_SECURITY_REASONS" }, "postalCode": { "s": "HIDDEN_DUE_TO_SECURITY_REASONS" }, "description": { "s": "HIDDEN_DUE_TO_SECURITY_REASONS" } }, "clientToken": "createUserToken4" }, "responseElements": { "directoryId": "d-1234567890", "sID": "S-1-5-21-1234567890-123456789-123456789-1234", "sAMAccountName": "johnsmith" }, "additionalEventData": { "SID": "S-1-5-21-1234567890-123456789-123456789-1234" }, "requestID": "4567ab89-c12d-3333-2222-1e0012f34a7c", "eventID": "1234567b-f0a0-12ab-3c45-d678900d1255", "readOnly": false, "resources": [ { "accountId": "111222333444", "type": "AWS::DirectoryService::MicrosoftAD", "ARN": "arn:aws:ds:ap-northeast-2:111222333444:directory/d-1234567890" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111222333444", "eventCategory": "Management", "tlsDetails": { "tlsVersion": "TLSv1.3", "cipherSuite": "TLS_AES_128_GCM_SHA256", "clientProvidedHostHeader": "ds-data.ap-northeast-2.amazonaws.com" } },

O exemplo a seguir mostra uma entrada de log do CloudTrail que demonstra a ação ListUsers.

As ações que não criam nem modificam um objeto retornam uma resposta nula.

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "1234567890abcdef0:admin-role", "arn": "arn:aws:sts::111222333444:assumed-role/AdAdmin/admin-role", "accountId": "111222333444", "accessKeyId": "021345abcdef6789", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "1234567890abcdef0", "arn": "arn:aws:iam::111222333444:role/AdAdmin", "accountId": "111222333444", "userName": "AdAdmin" }, "attributes": { "creationDate": "2023-05-30T18:22:38Z", "mfaAuthenticated": "false" } } }, "eventTime": "2023-05-30T18:22:52Z", "eventSource": "ds.amazonaws.com", "eventName": "ListUsers", "awsRegion": "ap-northeast-2", "sourceIPAddress": "10.24.34.0", "userAgent": "aws-cli/2.9.20 Python/3.11.1 Darwin/21.6.0 source/x86_64 prompt/off command/ds-data.list-users", "requestParameters": { "directoryId": "d-1234567890", "maxResults": 1 }, "responseElements": null, "requestID": "4567ab89-c12d-3333-2222-1e0012f34a7c", "eventID": "1234567b-f0a0-12ab-3c45-d678900d1244", "readOnly": true, "resources": [ { "accountId": "111222333444", "type": "AWS::DirectoryService::MicrosoftAD", "ARN": "arn:aws:ds:ap-northeast-2:111222333444:directory/d-1234567890" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111222333444", "eventCategory": "Management", "tlsDetails": { "tlsVersion": "TLSv1.3", "cipherSuite": "TLS_AES_128_GCM_SHA256", "clientProvidedHostHeader": "ds-data.ap-northeast-2.amazonaws.com" } }

O exemplo a seguir mostra uma entrada de log do CloudTrail que demonstra a ação ListGroups.

nota

O elemento NextToken é removido de todas as entradas de log.

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "1234567890abcdef0:admin-role", "arn": "arn:aws:sts::111222333444:assumed-role/AdAdmin/admin-role", "accountId": "111222333444", "accessKeyId": "021345abcdef6789", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "1234567890abcdef0", "arn": "arn:aws:iam::111222333444:role/AdAdmin", "accountId": "111222333444", "userName": "AdAdmin" }, "attributes": { "creationDate": "2023-05-30T18:22:38Z", "mfaAuthenticated": "false" } } }, "eventTime": "2023-05-30T18:29:15Z", "eventSource": "ds.amazonaws.com", "eventName": "ListGroups", "awsRegion": "ap-northeast-2", "sourceIPAddress": "10.24.34.0", "userAgent": "aws-cli/2.9.20 Python/3.11.1 Darwin/21.6.0 source/x86_64 prompt/off command/ds-data.list-groups", "requestParameters": { "directoryId": "d-1234567890", "nextToken": "REDACTED", "maxResults": 1 }, "responseElements": null, "requestID": "4567ab89-c12d-3333-2222-1e0012f34a7c", "eventID": "1234567b-f0a0-12ab-3c45-d678900d1255", "readOnly": true, "resources": [ { "accountId": "111222333444", "type": "AWS::DirectoryService::MicrosoftAD", "ARN": "arn:aws:ds:ap-northeast-2:111222333444:directory/d-1234567890" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111222333444", "eventCategory": "Management", "tlsDetails": { "tlsVersion": "TLSv1.3", "cipherSuite": "TLS_AES_128_GCM_SHA256", "clientProvidedHostHeader": "ds-data.ap-northeast-2.amazonaws.com" } }

Entradas de log para erros de exceção

O exemplo a seguir mostra uma entrada de log do CloudTrail para um erro de Acesso Negado. Para obter ajuda com esse erro, consulte Solução de problemas de mensagens de erro de acesso negado no Guia do usuário do IAM.

nota

O log de acesso negado não mostra os parâmetros da solicitação.

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "1234567890abcdef0:admin-role", "arn": "arn:aws:sts::111222333444:assumed-role/AdAdmin/admin-role", "accountId": "111222333444", "accessKeyId": "021345abcdef6789", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "1234567890abcdef0", "arn": "arn:aws:iam::111222333444:role/AdAdmin", "accountId": "111222333444", "userName": "AdAdmin" }, "attributes": { "creationDate": "2023-05-31T23:25:49Z", "mfaAuthenticated": "false" } } }, "eventTime": "2023-05-31T23:38:18Z", "eventSource": "ds.amazonaws.com", "eventName": "CreateUser", "awsRegion": "ap-northeast-2", "sourceIPAddress": "10.24.34.0", "userAgent": "aws-cli/2.9.20 Python/3.11.1 Darwin/21.6.0 source/x86_64 prompt/off command/ds-data.create-user", "errorCode": "AccessDenied", "errorMessage": "User: arn:aws:sts::111222333444:assumed-role/AdAdmin/admin-role is not authorized to perform: ds-data:CreateUser on resource: arn:aws:ds:ap-northeast-2:111222333444:directory/d-1234567890 because no identity-based policy allows the ds-data:CreateUser action", "requestParameters": null, "responseElements": null, "requestID": "4567ab89-c12d-3333-2222-1e0012f34a7c", "eventID": "1234567b-f0a0-12ab-3c45-d678900d1255", "readOnly": false, "resources": [ { "accountId": "111222333444", "type": "AWS::DirectoryService::MicrosoftAD", "ARN": "arn:aws:ds:ap-northeast-2:111222333444:directory/d-1234567890" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111222333444", "eventCategory": "Management", "tlsDetails": { "tlsVersion": "TLSv1.3", "cipherSuite": "TLS_AES_128_GCM_SHA256", "clientProvidedHostHeader": "ds-data.ap-northeast-2.amazonaws.com" } }

O exemplo a seguir mostra uma entrada de log do CloudTrail para o erro Resource Not Found.

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "1234567890abcdef0:admin-role", "arn": "arn:aws:sts::111222333444:assumed-role/AdAdmin/admin-role", "accountId": "111222333444", "accessKeyId": "021345abcdef6789", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "1234567890abcdef0", "arn": "arn:aws:iam::111222333444:role/AdAdmin", "accountId": "111222333444", "userName": "AdAdmin" }, "attributes": { "creationDate": "2023-05-30T20:41:50Z", "mfaAuthenticated": "false" } } }, "eventTime": "2023-05-30T21:10:16Z", "eventSource": "ds.amazonaws.com", "eventName": "DescribeUser", "awsRegion": "ap-northeast-2", "sourceIPAddress": "10.24.34.0", "userAgent": "aws-cli/2.9.20 Python/3.11.1 Darwin/21.6.0 source/x86_64 prompt/off command/ds-data.describe-user", "errorCode": "ResourceNotFoundException", "errorMessage": "User not found in directory d-1234567890.", "requestParameters": { "directoryId": "d-1234567890", "sAMAccountName": "nonExistingUser", "otherAttributes": [ "co", "givenName", "sn", "telephoneNumber" ] }, "responseElements": null, "requestID": "4567ab89-c12d-3333-2222-1e0012f34a7c", "eventID": "1234567b-f0a0-12ab-3c45-d678900d1255", "readOnly": true, "resources": [ { "accountId": "111222333444", "type": "AWS::DirectoryService::MicrosoftAD", "ARN": "arn:aws:ds:ap-northeast-2:111222333444:directory/d-1234567890" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111222333444" "eventCategory": "Management", "tlsDetails": { "tlsVersion": "TLSv1.3", "cipherSuite": "TLS_AES_128_GCM_SHA256", "clientProvidedHostHeader": "ds-data.ap-northeast-2.amazonaws.com" } }