Registrar em log as chamadas de API do IAM e do AWS STS com o AWS CloudTrail - AWS Identity and Access Management

Se fornecermos uma tradução da versão em inglês do guia, a versão em inglês prevalecerá caso haja qualquer conflito entre as versões. A tradução é fornecida com o uso de tradução por máquina.

Registrar em log as chamadas de API do IAM e do AWS STS com o AWS CloudTrail

IAM e AWS STS são integrados ao AWS CloudTrail, um serviço que fornece um registro de ações realizadas por um usuário ou função do IAM. O CloudTrail captura todas as chamadas de API do IAM e do AWS STS como eventos, incluindo as chamadas do console e as chamadas de API. Se você criar uma trilha, poderá habilitar a entrega contínua de eventos do CloudTrail para um bucket do Amazon S3. Se não configurar uma trilha, você ainda poderá visualizar os eventos mais recentes no console do CloudTrail em Event history. Você pode usar o CloudTrail para obter informações sobre a solicitação que foi feita para IAM ou AWS STS. Por exemplo, você pode visualizar o endereço IP de origem do qual a solicitação foi feita, quem fez a solicitação, quando ela foi feita e detalhes adicionais.

Para saber mais sobre o CloudTrail, consulte o AWS CloudTrail User Guide.

Informações sobre o IAM e o AWS STS no CloudTrail

O CloudTrail está habilitado na sua conta da AWS ao criá-la. Quando uma atividade ocorrer no IAM ou no AWS STS, ela será registrada em um evento do CloudTrail com outros eventos de serviços da AWS no Histórico de eventos. Você pode visualizar, pesquisar e fazer download de eventos recentes em sua conta da AWS. Para obter mais informações, consulte Visualizar eventos com o histórico de eventos do CloudTrail.

Para obter um registro contínuo de eventos em sua conta da AWS, incluindo eventos para IAM e AWS STS, crie uma trilha. Uma trilha permite CloudTrail para fornecer 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 . A trilha registra eventos de todas as regiões na partição da AWS e fornece os arquivos de log para o bucket do Amazon S3 que você especificar. Além disso, é possível configurar outros serviços da AWS para analisar mais profundamente e agir sobre os dados de evento coletados nos logs do CloudTrail. Para obter mais informações, consulte .

Todas as ações de IAM e AWS STS são registradas em log pelo CloudTrail e estão documentadas no IAM API Reference e no AWS Security Token Service API Reference.

Iniciar sessão IAM e AWS STS Pedidos API

O CloudTrail registra em log todas as solicitações de SPI (feitas com credenciais) para operações de API do IAM e do AWS STS. O CloudTrail também registra em log as solicitações não autenticadas para as ações do AWS STS, AssumeRoleWithSAML e AssumeRoleWithWebIdentity, e registra em log as informações fornecidas pelo provedor de identidade. Você pode usar essas informações para mapear chamadas feitas por um usuário federado com uma função assumida de volta para o chamador federado externo de origem. No caso de AssumeRole, você pode mapear as chamadas de retorno feitas ao serviço AWS de origem ou à conta do usuário de origem. A seção userIdentity dos dados JSON na entrada de log do CloudTrail contém as informações de que você precisa para mapear a solicitação AssumeRole* com um determinado usuário federado. Para obter mais informações, consulte o Elemento userIdentity do CloudTrail no AWS CloudTrail User Guide.

Por exemplo, as chamadas para o IAM, CreateUser, DeleteRole, ListGroups e outras operações de API são todas registradas em log pelo CloudTrail.

Exemplos desse tipo de entrada de log são apresentados mais adiante neste tópico.

Importante

Se ativar os endpoints do AWS STS em regiões diferentes do endpoint global padrão, você também deverá ativar o registro em log do CloudTrail nessas regiões. Isso é necessário para registrar em log todas as chamadas de API do AWS STS que são feitas nessas regiões. Para obter mais informações, consulte Como ativar o CloudTrail em regiões adicionais no AWS CloudTrail User Guide.

Registar pedidos de API para outros AWS serviços

Solicitações autenticadas a outras operações de API de produtos da AWS são registradas em log pelo CloudTrail, e essas entradas de log contêm informações sobre quem gerou a solicitação.

Por exemplo, suponha que você tenha feito uma solicitação para listar instâncias do Amazon EC2 ou para criar um grupo de implantação do CodeDeploy. Há detalhes sobre a pessoa ou o serviço que fez a solicitação na entrada de log da solicitação. Essas informações ajudam a determinar se a solicitação foi feita pelo Usuário raiz da conta da AWS, por um usuário do IAM, uma função ou outro serviço da AWS.

Para obter mais detalhes sobre as informações da identidade do usuário nas entradas de log do CloudTrail, consulte Elemento userIdentity no AWS CloudTrail User Guide.

Registar eventos de início de sessão regionais

Se habilitar o CloudTrail para registrar eventos de login nos logs, você precisará estar ciente de como o CloudTrail escolhe onde registrar os eventos em log.

  • Se os usuários fizerem login diretamente em um console, eles serão redirecionados para um endpoint de login global ou regional. O endpoint depende se o console de serviço selecionado oferece suporte a regiões. Por exemplo, a página inicial do console principal oferece suporte a regiões. Se você fizer login em https://alias.signin.aws.amazon.com/console, será redirecionado para um endpoint de login regional, como https://us-east-2.signin.aws.amazon.com. Esse redirecionamento cria uma entrada de log no CloudTrail regional no log da região do usuário:

    Por outro lado, o console do Amazon S3 não oferece suporte a regiões e, portanto, se fizer login em https://alias.signin.aws.amazon.com/console/s3, a AWS redirecionará você para o endpoint de login global em https://signin.aws.amazon.com. Esse redirecionamento cria uma entrada de log global no CloudTrail.

  • Você pode solicitar manualmente um determinado endpoint de login regional fazendo login na página inicial do console compatível com a região usando uma sintaxe de URL como https://alias.signin.aws.amazon.com/console?region=ap-southeast-1. Nesse caso, a AWS redirecionará você para o endpoint de login regional ap-southeast-1, e isso resultará em um evento de log do CloudTrail regional.

Se o login é considerado um evento regional ou global depende do console no qual o usuário está fazendo login e como ele forma o URL de login.

  • O console de serviço é regionalizado? Se a resposta for sim, a solicitação de login será redirecionada automaticamente para um endpoint de login regional, e o evento será registrado no log do CloudTrail dessa região. Por exemplo, se iniciar sessão em https://alias.signin.aws.amazon.com/consola, que é Regionalizada, é redirecionada para um ponto final de início de sessão na sua região, como https://us-east-2.signin.aws.amazon.com. O evento será registrado no log da região.

    No entanto, alguns serviços ainda não são regionalizados. Por exemplo, o serviço Amazon S3 não está regionalizado no momento. Se iniciar sessão em https://alias.signin.aws.amazon.com/consola/s3, é redirecionado para o parâmetro de início de sessão global em https://signin.aws.amazon.com. Esse redirecionamento cria um evento no log global.

  • Também pode solicitar manualmente um parâmetro de avaliação regional específico ao utilizar um URL como https://alias.signin.aws.amazon.com/console?região=ap-sudeste-1. Esse URL redirecionará você para o endpoint de login regional ap-southeast-1. Esse redirecionamento resulta em um evento no log regional.

Evitar entradas de registo regionais duplicadas

O CloudTrail cria trilhas separadas em cada região. Essas trilhas incluem informações sobre eventos que ocorrem nessas regiões, além de eventos globais e eventos que não são específicos da região. Os exemplos incluem chamadas de API do IAM, chamadas do AWS STS para o endpoint global e eventos de login da AWS. Por exemplo, suponha que você tenha duas trilhas, cada uma em uma região diferente. Se você criar um novo usuário do IAM, o evento CreateUser será adicionado aos arquivos de log nas duas regiões, criando uma entrada de log duplicada.

O AWS Security Token Service (STS) é um serviço global com um único endpoint global em https://sts.amazonaws.com. As chamadas para esse endpoint são registradas como chamadas para um serviço global. No entanto, como esse endpoint está fisicamente localizado na região Leste dos EUA (Norte da Virgínia), seus logs indicam us-east-1 como a região do evento. O CloudTrail não grava esses logs na região Leste dos EUA (Ohio), a menos que você opte por incluir os logs do serviço global nessa região. O AWS STS também permite chamadas para endpoints regionais, como sts.eu-central-1.amazonaws.com. O CloudTrail grava chamadas para todos os endpoints regionais em suas respectivas regiões. Por exemplo, as chamadas para sts.us-east-2.amazonaws.com são publicadas na região Leste dos EUA (Ohio). As chamadas para sts.eu-central-1.amazonaws.com são publicadas nos logs da região Europa (Frankfurt).

Para obter mais informações sobre várias regiões e o AWS STS, consulte Gerenciar o AWS STS em uma região da AWS.

A tabela a seguir lista as regiões e como o CloudTrail registra as solicitações do AWS STS em cada região. A coluna "Local" indica em quais logs o CloudTrail faz gravações. "Global" significa que o evento é registrado em qualquer região para a qual você optar por incluir logs de serviço global. "Região" significa que o evento é registrado apenas na região onde o endpoint está localizado. A última coluna indica como a região da solicitação é identificada na entrada de log.

Nome da região Identidade da região no log do CloudTrail Endpoint Local dos logs do CloudTrail
n/d - global , us-east-1 sts.amazonaws.com Global*
Leste dos EUA (Ohio) us-east-2 sts.us-east-2.amazonaws.com Região
Leste dos EUA (Norte da Virgínia) , us-east-1 sts.us-east-1.amazonaws.com Região
Oeste dos EUA (Norte da Califórnia) .us-west-1. sts.us-west-1.amazonaws.com Região
Oeste dos EUA (Oregon) , us-west-2 sts.us-west-2.amazonaws.com Região
Canadá (Central) .ca-central-1. sts.ca-central-1.amazonaws.com Região
Europa (Frankfurt) , eu-central-1 sts.eu-central-1.amazonaws.com Região
Europa (Irlanda) , eu-west-1 sts.eu-west-1.amazonaws.com Região
Europa (Londres) , eu-west-2 sts.eu-west-2.amazonaws.com Região
Ásia-Pacífico (Tóquio) , ap-northeast-1 sts.ap-northeast-1.amazonaws.com Região
Ásia-Pacífico (Seul) .ap-northeast-2. sts.ap-northeast-2.amazonaws.com Região
Ásia Pacífico (Mumbai) ap-south-1 sts.ap-south-1.amazonaws.com Região
Ásia-Pacífico (Cingapura) , ap-southeast-1 sts.ap-southeast-1.amazonaws.com Região
Ásia-Pacífico (Sydney) , ap-southeast-2 sts.ap-southeast-2.amazonaws.com Região
América do Sul (São Paulo) sa-east-1 sts.sa-east-1.amazonaws.com Região

Quando você configurar o CloudTrail para agregar informações de trilhas de várias regiões em sua conta em um único bucket do Amazon S3, os eventos do IAM serão duplicados nos logs. Em outras palavras, a trilha para cada região grava o mesmo evento do IAM no log agregado. Para evitar essa duplicação, você pode incluir eventos globais seletivamente. Uma abordagem típica é habilitar eventos globais em uma trilha. Depois disso, desabilite eventos globais em todas as outras trilhas que gravam no mesmo bucket do Amazon S3. Dessa forma, apenas um conjunto de eventos global é gravado.

Para obter mais informações, consulte Agregação de logs no AWS CloudTrail User Guide.

Registar eventos de início de sessão de utilizador

O CloudTrail registra em log eventos de login no Console de gerenciamento da AWS, nos fóruns de discussão da AWS e no AWS Marketplace. O CloudTrail registra em log tentativas de login bem-sucedidas e malsucedidas para usuários federados e usuários do IAM.

Para Usuário raiz da conta da AWSs, somente eventos de login bem-sucedidos são registrados. Os eventos de login pelo usuário raiz que não forem bem-sucedidos não serão registrados pelo CloudTrail.

Como melhor prática de segurança, a AWS não registra o texto do nome do usuário do IAM inserido quando a falha no login é causada por um nome de usuário incorreto. O texto do nome de utilizador é ocultado pelo valor HIDDEN_DUE_TO_SECURITY_REASONS. Para um exemplo disto, consulte Exemplo de evento de falha de início de sessão causado por nome de utilizador incorreto, mais adiante neste tópico. O texto do nome do usuário é obscurecido porque essas falhas talvez foram causadas por erros do usuário. Registrar em log esses erros pode expor informações confidenciais. Por exemplo, .

  • Você digita acidentalmente sua senha na caixa de nome do usuário.

  • Você clica no link da página de login de uma conta da AWS, mas digita o número de outra conta.

  • Você se esquece da conta na qual está fazendo login e acidentalmente digita o nome da sua conta de e-mail pessoal, o identificador de login de seu banco ou algum outro ID privado.

Registar eventos de início de sessão para credenciais temporárias

Quando um principal solicita credenciais temporárias, o tipo de principal determina como o CloudTrail registra o evento. Isso pode ser complicado quando um principal assume uma função em outra conta. Há várias chamadas de API para executar operações relacionadas a operações entre contas da função. Primeiro, o principal chama uma API do AWS STS para recuperar as credenciais temporárias. Essa operação é registrada em log na conta da chamada e na conta onde a operação do AWS STS é realizada. Depois disso, o principal usa a função para executar outras chamadas de API na conta da função assumida.

Você pode usar a chave de condição aws:RoleSessionName para exigir que os usuários forneçam um nome de sessão específico quando assumirem uma função. Por exemplo, você pode exigir que os usuários do IAM especifiquem o próprio nome de usuário como nome de sessão. Isso torna mais fácil para os administradores que estão revisando logs do AWS CloudTrail saber quem executou uma ação. ** Para obter mais informações, consulte aws:RoleSessionName.

A tabela a seguir mostra como o CloudTrail registra informações diferentes para cada uma das chamadas de API que geram credenciais temporárias.

Tipo principal API DO STS Identidade do utilizador em CloudTrail registo para conta do chamador Identidade do utilizador em CloudTrail registe-se na conta da função assumida Identidade do utilizador em CloudTrail registar as visitas API subsequentes da função
Credenciais da Usuário raiz da conta da AWS. GetSessionToken Identidade do usuário raiz A conta do proprietário da função é a mesma que a conta de chamada Identidade do usuário raiz
Usuário do IAM GetSessionToken Identidade do usuário do IAM A conta do proprietário da função é a mesma que a conta de chamada Identidade do usuário do IAM
Usuário do IAM GetFederationToken Identidade do usuário do IAM A conta do proprietário da função é a mesma que a conta de chamada Identidade do usuário do IAM
Usuário do IAM AssumeRole Identidade do usuário do IAM Número da conta e ID principal (se for um usuário) ou serviço principal da AWS Somente identidade da função (nenhum usuário)
Usuário autenticado externamente AssumeRoleWithSAML n/a Identidade do usuário do SAML Somente identidade da função (nenhum usuário)
Usuário autenticado externamente AssumeRoleWithWebIdentity n/a Identidade do usuário da web/OIDC Somente identidade da função (nenhum usuário)

Exemplo IAM Eventos API em CloudTrail log

Os arquivos de log do CloudTrail contêm eventos que são formatados com JSON. Um evento de API representa uma única solicitação de API e inclui informações sobre o principal, a ação solicitada, quaisquer parâmetros e a data e hora da ação.

Exemplo IAM Evento API em CloudTrail ficheiro de registo

O exemplo a seguir mostra uma entrada de log do CloudTrail para uma solicitação pela ação IAM do GetUserPolicy.

{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::444455556666:user/JaneDoe", "accountId": "444455556666", "accessKeyId": "AKIAI44QH8DHBEXAMPLE", "userName": "JameDoe", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2014-07-15T21:39:40Z" } }, "invokedBy": "signin.amazonaws.com" }, "eventTime": "2014-07-15T21:40:14Z", "eventSource": "iam.amazonaws.com", "eventName": "GetUserPolicy", "awsRegion": "us-east-2", "sourceIPAddress": "signin.amazonaws.com", "userAgent": "signin.amazonaws.com", "requestParameters": { "userName": "JaneDoe", "policyName": "ReadOnlyAccess-JaneDoe-201407151307" }, "responseElements": null, "requestID": "9EXAMPLE-0c68-11e4-a24e-d5e16EXAMPLE", "eventID": "cEXAMPLE-127e-4632-980d-505a4EXAMPLE" }

A partir dessas informações de evento, você pode determinar se a solicitação foi feita para obter uma política de usuário denominada ReadOnlyAccess-JaneDoe-201407151307 para o usuário JaneDoe, como especificado no elemento requestParameters. Também é possível ver que a solicitação foi feita por uma usuária do IAM chamada JaneDoe em 15 de julho de 2014, às 21h40 (UTC). Nesse caso, a solicitação foi originada no Console de gerenciamento da AWS, como você pode observar no elemento userAgent.

Exemplo AWS STS Eventos API em CloudTrail log

Os arquivos de log do CloudTrail contêm eventos que são formatados com JSON. Um evento de API representa uma única solicitação de API e inclui informações sobre o principal, a ação solicitada, quaisquer parâmetros e a data e hora da ação.

Exemplo de conta cruzada AWS STS Eventos API em CloudTrail ficheiros de registo

O usuário do IAM chamado JohnDoe na conta 777788889999 chama a ação do AWS STS AssumeRole para assumir a função EC2-dev na conta 111122223333.

{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "AIDAQRSTUVWXYZEXAMPLE", "arn": "arn:aws:iam::777788889999:user/JohnDoe", "accountId": "777788889999", "accessKeyId": "AKIAQRSTUVWXYZEXAMPLE", "userName": "JohnDoe" }, "eventTime": "2014-07-18T15:07:39Z", "eventSource": "sts.amazonaws.com", "eventName": "AssumeRole", "awsRegion": "us-east-2", "sourceIPAddress": "192.0.2.101", "userAgent": "aws-cli/1.11.10 Python/2.7.8 Linux/3.2.45-0.6.wd.865.49.315.metal1.x86_64 botocore/1.4.67", "requestParameters": { "roleArn": "arn:aws:iam::111122223333:role/EC2-dev", "roleSessionName": "JohnDoe-EC2-dev" "serialNumber": "arn:aws:iam::777788889999:mfa" }, "responseElements": { "credentials": { "sessionToken": "<encoded session token blob>", "accessKeyId": "AKIAQRSTUVWXYZEXAMPLE", "expiration": "Jul 18, 2014 4:07:39 PM" }, "assumedRoleUser": { "assumedRoleId": "AIDAQRSTUVWXYZEXAMPLE:JohnDoe-EC2-dev", "arn": "arn:aws:sts::111122223333:assumed-role/EC2-dev/JohnDoe-EC2-dev" } }, "resources": [ { "ARN": "arn:aws:iam::111122223333:role/EC2-dev", "accountId": "111122223333", "type": "AWS::IAM::Role" } ], "requestID": "4EXAMPLE-0e8d-11e4-96e4-e55c0EXAMPLE", "sharedEventID": "bEXAMPLE-efea-4a70-b951-19a88EXAMPLE", "eventID": "dEXAMPLE-ac7f-466c-a608-4ac8dEXAMPLE" "eventType": "AwsApiCall", "recipientAccountId": "111122223333" }

O segundo exemplo mostra a entrada de log do CloudTrail da conta da função assumida (111122223333) para a mesma solicitação.

{ "eventVersion": "1.05", "userIdentity": { "type": "AWSAccount", "principalId": "AIDAQRSTUVWXYZEXAMPLE", "accountId": "777788889999" }, "eventTime": "2014-07-18T15:07:39Z", "eventSource": "sts.amazonaws.com", "eventName": "AssumeRole", "awsRegion": "us-east-2", "sourceIPAddress": "192.0.2.101", "userAgent": "aws-cli/1.11.10 Python/2.7.8 Linux/3.2.45-0.6.wd.865.49.315.metal1.x86_64 botocore/1.4.67", "requestParameters": { "roleArn": "arn:aws:iam:: 111122223333:role/EC2-dev", "roleSessionName": "JohnDoe-EC2-dev", "serialNumber": "arn:aws:iam::777788889999:mfa" }, "responseElements": { "credentials": { "sessionToken": "<encoded session token blob>", "accessKeyId": "AKIAQRSTUVWXYZEXAMPLE", "expiration": "Jul 18, 2014 4:07:39 PM" }, "assumedRoleUser": { "assumedRoleId": "AIDAQRSTUVWXYZEXAMPLE:JohnDoe-EC2-dev", "arn": "arn:aws:sts::111122223333:assumed-role/EC2-dev/JohnDoe-EC2-dev" } }, "requestID": "4EXAMPLE-0e8d-11e4-96e4-e55c0EXAMPLE", "sharedEventID": "bEXAMPLE-efea-4a70-b951-19a88EXAMPLE", "eventID": "dEXAMPLE-ac7f-466c-a608-4ac8dEXAMPLE" }

Exemplo AWS STS exercício de evento API em CloudTrail ficheiro de registo

O exemplo a seguir mostra uma entrada de log do CloudTrail para uma solicitação feita por John Doe na conta 111111111111. John usou anteriormente seu usuário JohnDoe para assumir a função JohnRole1. Para essa solicitação, ele usa as credenciais dessa função para assumir a função JonRole2. Isso é conhecido como encadeamento de funções. John passa duas tags de sessão para a solicitação. Ele define essas duas tags como transitivas. O pedido herda o Department tag como transitivo porque o John definiu como transitivo quando assumiu JohnRole1. Para mais informações sobre as teclas transitivas nas cadeias de funções, consulte Funções de barulho com etiquetas de sessão.

{ "eventVersion": "1.05", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIN5ATK5U7KEXAMPLE:JohnRole1", "arn": "arn:aws:sts::111111111111:assumed-role/JohnDoe/JohnRole1", "accountId": "111111111111", "accessKeyId": "AKIAI44QH8DHBEXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2019-10-02T21:50:54Z" }, "sessionIssuer": { "type": "Role", "principalId": "AROAIN5ATK5U7KEXAMPLE", "arn": "arn:aws:iam::111111111111:role/JohnRole1", "accountId": "111111111111", "userName": "JohnDoe" } } }, "eventTime": "2019-10-02T22:12:29Z", "eventSource": "sts.amazonaws.com", "eventName": "AssumeRole", "awsRegion": "us-east-2", "sourceIPAddress": "123.145.67.89", "userAgent": "aws-cli/1.16.248 Python/3.4.7 Linux/4.9.184-0.1.ac.235.83.329.metal1.x86_64 botocore/1.12.239", "requestParameters": { "incomingTransitiveTags": { "Department": "Engineering" }, "tags": [ { "value": "johndoe@example.com", "key": "Email" }, { "value": "12345", "key": "CostCenter" } ], "roleArn": "arn:aws:iam::111111111111:role/JohnRole2", "roleSessionName": "Role2WithTags", "transitiveTagKeys": [ "Email", "CostCenter" ], "durationSeconds": 3600 }, "responseElements": { "credentials": { "accessKeyId": "ASIAWHOJDLGPOEXAMPLE", "expiration": "Oct 2, 2019 11:12:29 PM", "sessionToken": "AgoJb3JpZ2luX2VjEB4aCXVzLXdlc3QtMSJHMEXAMPLETOKEN+//rJb8Lo30mFc5MlhFCEbubZvEj0wHB/mDMwIgSEe9gk/Zjr09tZV7F1HDTMhmEXAMPLETOKEN/iEJ/rkqngII9///////////ARABGgw0MjgzMDc4NjM5NjYiDLZjZFKwP4qxQG5sFCryASO4UPz5qE97wPPH1eLMvs7CgSDBSWfonmRTCfokm2FN1+hWUdQQH6adjbbrVLFL8c3jSsBhQ383AvxpwK5YRuDE1AI/+C+WKFZb701eiv9J5La2EXAMPLETOKEN/c7S5Iro1WUJ0q3Cxuo/8HUoSxVhQHM7zF7mWWLhXLEQ52ivL+F6q5dpXu4aTFedpMfnJa8JtkWwG9x1Axj0Ypy2ok8v5unpQGWych1vwdvj6ez1Dm8Xg1+qIzXILiEXAMPLETOKEN/vQGqu8H+nxp3kabcrtOvTFTvxX6vsc8OGwUfHhzAfYGEXAMPLETOKEN/L6v1yMM3B1OwFOrQBno1HEjf1oNI8RnQiMNFdUOtwYj7HUZIOCZmjfN8PPHq77N7GJl9lzvIZKQA0Owcjg+mc78zHCj8y0siY8C96paEXAMPLETOKEN/E3cpksxWdgs91HRzJWScjN2+r2LTGjYhyPqcmFzzo2mCE7mBNEXAMPLETOKEN/oJy+2o83YNW5tOiDmczgDzJZ4UKR84yGYOMfSnF4XcEJrDgAJ3OJFwmTcTQICAlSwLEXAMPLETOKEN" }, "assumedRoleUser": { "assumedRoleId": "AROAIFR7WHDTSOYQYHFUE:Role2WithTags", "arn": "arn:aws:sts::111111111111:assumed-role/test-role/Role2WithTags" } }, "requestID": "b96b0e4e-e561-11e9-8b3f-7b396EXAMPLE", "eventID": "1917948f-3042-46ec-98e2-62865EXAMPLE", "resources": [ { "ARN": "arn:aws:iam::111122223333:role/JohnRole2", "accountId": "111111111111", "type": "AWS::IAM::Role" } ], "eventType": "AwsApiCall", "recipientAccountId": "111111111111" }

Exemplo AWS serviço AWS STS Evento API em CloudTrail ficheiro de registo

O exemplo a seguir mostra uma entrada de log do CloudTrail para uma solicitação feita por um produto da AWS que chama outra API de serviço que usa as permissões de uma função de serviço. Ele mostra a entrada de log do CloudTrail para a solicitação feita na conta 777788889999.

{ "eventVersion": "1.04", "userIdentity": { "type": "AssumedRole", "principalId": "AIDAQRSTUVWXYZEXAMPLE:devdsk", "arn": "arn:aws:sts::777788889999:assumed-role/AssumeNothing/devdsk", "accountId": "777788889999", "accessKeyId": "AKIAQRSTUVWXYZEXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2016-11-14T17:25:26Z" }, "sessionIssuer": { "type": "Role", "principalId": "AIDAQRSTUVWXYZEXAMPLE", "arn": "arn:aws:iam::777788889999:role/AssumeNothing", "accountId": "777788889999", "userName": "AssumeNothing" } } }, "eventTime": "2016-11-14T17:25:45Z", "eventSource": "s3.amazonaws.com", "eventName": "DeleteBucket", "awsRegion": "us-east-2", "sourceIPAddress": "192.0.2.1", "userAgent": "[aws-cli/1.11.10 Python/2.7.8 Linux/3.2.45-0.6.wd.865.49.315.metal1.x86_64 botocore/1.4.67]", "requestParameters": { "bucketName": "my-test-bucket-cross-account" }, "responseElements": null, "requestID": "EXAMPLE463D56D4C", "eventID": "dEXAMPLE-265a-41e0-9352-4401bEXAMPLE", "eventType": "AwsApiCall", "recipientAccountId": "777788889999" }

Exemplo SAML AWS STS Evento API em CloudTrail ficheiro de registo

O exemplo a seguir mostra uma entrada de log do CloudTrail para uma solicitação pela ação AWS STS do AssumeRoleWithSAML. A solicitação inclui os atributos SAML CostCenter e Project que são passados por meio da declaração do SAML como tags de sessão. Essas tags são definidas como transitivas para que persistam em cenários de encadeamento de funções.

{ "eventVersion": "1.05", "userIdentity": { "type": "SAMLUser", "principalId": "SampleUkh1i4+ExamplexL/jEvs=:SamlExample", "userName": "SamlExample", "identityProvider": "bdGOnTesti4+ExamplexL/jEvs=" }, "eventTime": "2019-11-01T19:14:36Z", "eventSource": "sts.amazonaws.com", "eventName": "AssumeRoleWithSAML", "awsRegion": "us-east-2", "sourceIPAddress": "192.0.2.101", "userAgent": "aws-cli/1.16.263 Python/3.4.7 Linux/4.9.184-0.1.ac.235.83.329.metal1.x86_64 botocore/1.12.253", "requestParameters": { "sAMLAssertionID": "_c0046cEXAMPLEb9d4b8eEXAMPLE2619aEXAMPLE", "roleSessionName": "MyAssignedRoleSessionName", "principalTags": { "CostCenter": "987654", "Project": "Unicorn", "Department": "Engineering" }, "transitiveTagKeys": [ "CostCenter", "Project" ], "durationSeconds": 3600, "roleArn": "arn:aws:iam::444455556666:role/SAMLTestRoleShibboleth", "principalArn": "arn:aws:iam::444455556666:saml-provider/Shibboleth" }, "responseElements": { "subjectType": "transient", "issuer": "https://server.example.com/idp/shibboleth", "credentials": { "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "expiration": "Mar 23, 2016 2:39:57 AM", "sessionToken": "<encoded session token blob>" }, "nameQualifier": "bdGOnTesti4+ExamplexL/jEvs=", "assumedRoleUser": { "assumedRoleId": "AROAD35QRSTUVWEXAMPLE:MyAssignedRoleSessionName", "arn": "arn:aws:sts::444455556666:assumed-role/SAMLTestRoleShibboleth/MyAssignedRoleSessionName" }, "subject": "SamlExample", "audience": "https://signin.aws.amazon.com/saml" }, "resources": [ { "ARN": "arn:aws:iam::444455556666:role/SAMLTestRoleShibboleth", "accountId": "444455556666", "type": "AWS::IAM::Role" }, { "ARN": "arn:aws:iam::444455556666:saml-provider/test-saml-provider", "accountId": "444455556666", "type": "AWS::IAM::SAMLProvider" } ], "requestID": "6EXAMPLE-e595-11e5-b2c7-c974fEXAMPLE", "eventID": "dEXAMPLE-265a-41e0-9352-4401bEXAMPLE", "eventType": "AwsApiCall", "recipientAccountId": "444455556666" }

Exemplo de identidade web AWS STS Evento API em CloudTrail ficheiro de registo

O exemplo a seguir mostra uma entrada de log do CloudTrail para uma solicitação pela ação AWS STS do AssumeRoleWithWebIdentity. A solicitação inclui os atributos CostCenter e Project que são passados por meio do token de provedor de identidade como tags de sessão. Essas tags são definidas como transitivas para que persistam em cenários de encadeamento de funções.

{ "eventVersion": "1.05", "userIdentity": { "type": "WebIdentityUser", "principalId": "accounts.google.com:<id-of-application>.apps.googleusercontent.com:<id-of-user>", "userName": "<id of user>", "identityProvider": "accounts.google.com" }, "eventTime": "2016-03-23T01:39:51Z", "eventSource": "sts.amazonaws.com", "eventName": "AssumeRoleWithWebIdentity", "awsRegion": "us-east-2", "sourceIPAddress": "192.0.2.101", "userAgent": "aws-cli/1.3.23 Python/2.7.6 Linux/2.6.18-164.el5", "requestParameters": { "durationSeconds": 3600, "roleArn": "arn:aws:iam::444455556666:role/FederatedWebIdentityRole", "roleSessionName": "MyAssignedRoleSessionName" "principalTags": { "CostCenter": "24680", "Project": "Pegasus" }, "transitiveTagKeys": [ "CostCenter", "Project" ], }, "responseElements": { "provider": "accounts.google.com", "subjectFromWebIdentityToken": "<id of user>", "audience": "<id of application>.apps.googleusercontent.com", "credentials": { "accessKeyId": "ASIACQRSTUVWRAOEXAMPLE", "expiration": "Mar 23, 2016 2:39:51 AM", "sessionToken": "<encoded session token blob>" }, "assumedRoleUser": { "assumedRoleId": "AROACQRSTUVWRAOEXAMPLE:MyAssignedRoleSessionName", "arn": "arn:aws:sts::444455556666:assumed-role/FederatedWebIdentityRole/MyAssignedRoleSessionName" } }, "resources": [ { "ARN": "arn:aws:iam::444455556666:role/FederatedWebIdentityRole", "accountId": "444455556666", "type": "AWS::IAM::Role" } ], "requestID": "6EXAMPLE-e595-11e5-b2c7-c974fEXAMPLE", "eventID": "bEXAMPLE-0b30-4246-b28c-e3da3EXAMPLE", "eventType": "AwsApiCall", "recipientAccountId": "444455556666" }

Exemplo de eventos de início de sessão em CloudTrail log

Os arquivos de log do CloudTrail contêm eventos que são formatados com JSON. Um evento de login representa uma única solicitação de login e inclui informações sobre o principal de login, a região e a data e hora da ação.

Exemplo de evento de sucesso em CloudTrail ficheiro de registo

O exemplo a seguir mostra uma entrada de log do CloudTrail para um evento de login bem-sucedido.

{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn":"arn:aws:iam::111122223333:user/JohnDoe", "accountId": "111122223333", "userName": "JohnDoe" }, "eventTime": "2014-07-16T15:49:27Z", "eventSource": "signin.amazonaws.com", "eventName": "ConsoleLogin", "awsRegion": "us-east-2", "sourceIPAddress": "192.0.2.110", "userAgent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0", "requestParameters": null, "responseElements": { "ConsoleLogin": "Success" }, "additionalEventData": { "MobileVersion": "No", "LoginTo": "https://console.aws.amazon.com/s3/", "MFAUsed": "No" }, "eventID": "3fcfb182-98f8-4744-bd45-10a395ab61cb" }

Para obter mais detalhes sobre as informações contidas nos arquivos de log do CloudTrail, consulte a Referência de eventos do CloudTrail no AWS CloudTrail User Guide.

Exemplo de evento de falha de início de sessão em CloudTrail ficheiro de registo

O exemplo a seguir mostra uma entrada de log do CloudTrail para um evento de falha no login.

{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn":"arn:aws:iam::111122223333:user/JaneDoe", "accountId": "111122223333", "userName": "JaneDoe" }, "eventTime": "2014-07-08T17:35:27Z", "eventSource": "signin.amazonaws.com", "eventName": "ConsoleLogin", "awsRegion": "us-east-2", "sourceIPAddress": "192.0.2.100", "userAgent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0", "errorMessage": "Failed authentication", "requestParameters": null, "responseElements": { "ConsoleLogin": "Failure" }, "additionalEventData": { "MobileVersion": "No", "LoginTo": "https://console.aws.amazon.com/sns", "MFAUsed": "No" }, "eventID": "11ea990b-4678-4bcd-8fbe-62509088b7cf" }

Com base nessas informações, é possível determinar que a tentativa de login foi feita por uma usuária do IAM chamada JaneDoe, conforme mostrado no elemento userIdentity. Você também pode ver que houve falha nas tentativas de login, como mostrado no elemento responseElements. É possível ver que JaneDoe tentou fazer login no console do Amazon SNS às 17h35 (UTC) no dia 8 de julho de 2014.

Exemplo de evento de falha de início de sessão causado por nome de utilizador incorreto

O exemplo a seguir mostra uma entrada de log do CloudTrail para um evento de login malsucedido causado pela digitação incorreta do nome do usuário. O AWS mascara o texto userName com HIDDEN_DUE_TO_SECURITY_REASONS para ajudar a impedir a exposição de informações potencialmente confidenciais.

{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "accountId": "123456789012", "accessKeyId": "", "userName": "HIDDEN_DUE_TO_SECURITY_REASONS" }, "eventTime": "2015-03-31T22:20:42Z", "eventSource": "signin.amazonaws.com", "eventName": "ConsoleLogin", "awsRegion": "us-east-2", "sourceIPAddress": "192.0.2.101", "userAgent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0", "errorMessage": "No username found in supplied account", "requestParameters": null, "responseElements": { "ConsoleLogin": "Failure" }, "additionalEventData": { "LoginTo": "https://console.aws.amazon.com/console/home?state=hashArgs%23&isauthcode=true", "MobileVersion": "No", "MFAUsed": "No" }, "eventID": "a7654656-0417-45c6-9386-ea8231385051", "eventType": "AwsConsoleSignin", "recipientAccountId": "123456789012" }