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

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

O IAM e o AWS STS são integrados ao AWS CloudTrail, um serviço que fornece um registro das ações realizadas por um usuário ou uma função do IAM. O CloudTrail captura todas as chamadas de API do IAM e do AWS STS como eventos, incluindo chamadas do console e de 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 você não configurar uma trilha, ainda poderá visualizar os eventos mais recentes no console do CloudTrail em Event history (Histórico de eventos). Você pode usar o CloudTrail para obter informações sobre a solicitação que foi feita ao IAM ou ao 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 (Manual do usuário do AWS CloudTrail).

Informações do IAM e do AWS STS no CloudTrail

O CloudTrail é habilitado em sua conta da AWS quando ela é criada. Quando ocorre uma atividade no IAM ou no AWS STS , essa atividade é registrada em um evento do CloudTrail junto com outros eventos de produtos da AWS em Event history (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 Como 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 do IAM e do AWS STS , crie uma trilha. 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 . A trilha registra em log eventos de todas as regiões na partição da AWS e entrega os arquivos de log para o bucket do Amazon S3 especificado por você. Além disso, você pode configurar outros produtos da AWS para analisar mais profundamente e agir sobre os dados de eventos coletados nos logs do CloudTrail. Para obter mais informações, consulte:

Todas as ações do IAM e do AWS STS são registradas pelo CloudTrail e documentadas na Referência da API do IAM e na Referência da API do AWS Security Token Service.

Registrar em log solicitações de API do IAM e do AWS STS

O CloudTrail registra todas as solicitações de API autenticadas (feitas com credenciais) para o IAM e operações de API do AWS STS. O CloudTrail também registra solicitações não autenticadas para as ações do AWS STS, AAssumeRoleWithSAML e AssumeRoleWithWebIdentity, e registra 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 no registro em 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 Guia do usuário do AWS CloudTrail.

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

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

Importante

Se você ativar endpoints do AWS STS em regiões diferentes da região 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 Ativar o CloudTrail em regiões adicionais no Guia do usuário do AWS CloudTrail.

Registrar em log solicitações de API em outros serviços da AWS

Solicitações autenticadas a outras operações de API de produtos da AWS são registradas em log pelo CloudTrail, e esses regisros em 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 AWS 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 , um usuário do IAM, uma função ou outro produto da AWS.

Para obter mais detalhes sobre as informações de identidade do usuário nos registros em log do CloudTrail, consulte o elemento userIdentity no Guia do usuário do AWS CloudTrail.

Registrar em log eventos de login regionais

Se você habilitar o CloudTrail para registrar eventos de login em seus logs, você deverá estar ciente de como o CloudTrail escolhe onde os eventos devem ser registrados.

  • 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 fizer login em https://alias.signin.aws.amazon.com/console, você será redirecionado para um endpoint de login regional, como https://us-east-2.signin.aws.amazon.com. Esse redirecionamento cria um registro em log regional do CloudTrail no log da região do usuário.

    Por outro lado, o console do Amazon S3 não oferece suporte a regiões, portanto, se você 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 um registro me log global no CloudTrail.

  • Você pode solicitar manualmente um determinado endpoint de login regional fazendo login na página inicial do console principal compatível com a região usando um 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? Em caso afirmativo, 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 você fizer login em https://alias.signin.aws.amazon.com/console, que é regionalizado, você será redirecionado para um endpoint de login em 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 você fizer login em https://alias.signin.aws.amazon.com/console/s3, você será redirecionado para o endpoint de login global em https://signin.aws.amazon.com. Esse redirecionamento cria um evento no log global.

  • Você também pode solicitar manualmente um endpoint de login regional específico usando um URL como https://alias.signin.aws.amazon.com/console?region=ap-southeast-1. Esse URL redirecionará você para o endpoint de login regional ap-southeast-1. Esse redirecionamento resulta em um evento no log regional.

Evitar registros de log regionais duplicados

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 em ambas as regiões, criando um registro de log duplicado.

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 listam 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 logs de 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 Europe (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 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
US East (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
US West (N. California) 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
Canada (Central) ca-central-1 sts.ca-central-1.amazonaws.com Região
Europe (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
Europe (London) 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
Asia Pacific (Seoul) ap-northeast-2 sts.ap-northeast-2.amazonaws.com Região
Asia Pacific (Mumbai) ap-south-1 sts.ap-south-1.amazonaws.com Região
Ásia-Pacífico (Singapura) ap-southeast-1 sts.ap-southeast-1.amazonaws.com Região
Asia Pacific (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ê configura o CloudTrail para agregar informações de trilha de várias regiões em sua conta em um único bucket do Amazon S3, os eventos do IAM sã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. Em seguida, desative os 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 Guia do usuário do AWS CloudTrail.

Registrar em log eventos de login de usuário

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

Para exibir exemplos de eventos do CloudTrail para logins de usuário raiz bem-sucedidos e malsucedidos, consulte Exemplo de registros de eventos de usuários raiz no Guia do usuário do AWS CloudTrail.

Como prática recomendada de segurança, a AWS não registra o texto do nome de usuário do IAM inserido quando a falha de login é causada por um nome de usuário incorreto. O texto do nome do usuário é mascarado pelo valor HIDDEN_DUE_TO_SECURITY_REASONS. Para obter um exemplo disso, consulte Exemplo de evento de falha no login causado por nome de usuário 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.

Registrar em log eventos de login de credenciais temporárias

Quando uma entidade de segurança solicita credenciais temporárias, o tipo de entidade de segurança 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 sts:SourceIdentity na política de confiança da função para exigir que os usuários especifiquem uma identidade quando assumirem uma função. Por exemplo, você pode exigir que os usuários do IAM especifiquem seu próprio nome de usuário como a identidade de origem. Isso pode ajudar você a determinar qual usuário executou uma ação específica na AWS. Para obter mais informações, consulte sts:SourceIdentity. Você também pode usar sts:RoleSessionName para exigir que os usuários especifiquem um nome de sessão quando assumirem uma função. Isso pode ajudar você a diferenciar entre as sessões de função para uma função que é usada por diferentes entidades de segurança ao revisar os logs AWS CloudTrail.

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 da entidade principal API DO STS Identidade do usuário no log do CloudTrail da conta do chamador Identidade do usuário no log do CloudTrail da conta da função assumida Identidade do usuário no log do CloudTrail das chamadas de API subsequentes da função
Credenciais de 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 de eventos de API do IAM no log do CloudTrail

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 evento de API do IAM no arquivo de log do CloudTrail

O exemplo a seguir mostra um registro em log do CloudTrail para uma solicitação pela ação GetUserPolicy do IAM.

{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::444455556666:user/JaneDoe", "accountId": "444455556666", "accessKeyId": "AKIAI44QH8DHBEXAMPLE", "userName": "JaneDoe", "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. Você também pode 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 AWS Management Console, como você pode observar no elemento userAgent.

Exemplo de eventos de API do AWS STS no log do CloudTrail

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 eventos de API do AWS STS entre contas em arquivos de log do CloudTrail

O usuário do IAM chamado JohnDoe na conta 777788889999 chama a ação AssumeRole do AWS STS para assumir a função EC2-dev na conta 111122223333. O administrador da conta exige que os usuários definam uma identidade de origem igual ao nome de usuário ao assumir a função. O usuário informa o valor de identidade de origem JohnDoe.

{ "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", "sourceIdentity": "JohnDoe", "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" }, "sourceIdentity": "JohnDoe" }, "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 o registro em 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", "sourceIdentity": "JohnDoe", "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" }, "sourceIdentity": "JohnDoe" }, "requestID": "4EXAMPLE-0e8d-11e4-96e4-e55c0EXAMPLE", "sharedEventID": "bEXAMPLE-efea-4a70-b951-19a88EXAMPLE", "eventID": "dEXAMPLE-ac7f-466c-a608-4ac8dEXAMPLE" }

Exemplo de evento de API de encadeamento de funções do AWS STS no arquivo de log do CloudTrail

O exemplo a seguir mostra um registro em 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 JohnRole2. Isso é conhecido como encadeamento de funções. A identidade de origem que ele definiu quando assumiu a função JohnDoe1 persiste na solicitação para assumir JohnRole2. Se John tentar definir uma identidade de origem diferente ao assumir a função, a solicitação será negada. John passa duas tags de sessão para a solicitação. Ele define essas duas tags como transitivas. A solicitação herda a tag Department como transitiva porque John a definiu como transitiva quando ele assumiu JohnRole1. Para obter mais informações sobre identidade de origem, consulte Monitorar e controlar ações realizadas com funções assumidas. Para obter mais informações sobre chaves transitivas em cadeias de funções, consulte Encadeamento de funções com tags 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" }, "sourceIdentity": "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", "sourceIdentity": "JohnDoe", "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" }, "sourceIdentity": "JohnDoe" }, "requestID": "b96b0e4e-e561-11e9-8b3f-7b396EXAMPLE", "eventID": "1917948f-3042-46ec-98e2-62865EXAMPLE", "resources": [ { "ARN": "arn:aws:iam::111111111111:role/JohnRole2", "accountId": "111111111111", "type": "AWS::IAM::Role" } ], "eventType": "AwsApiCall", "recipientAccountId": "111111111111" }

Exemplo de evento de API do AWS STS de produto da AWS no arquivo de log do CloudTrail

O exemplo a seguir mostra um registro em 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 o registro em 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 de evento de API SAML do AWS STS no arquivo de log do CloudTrail

O exemplo a seguir mostra um registro de log do CloudTrail para uma solicitação pela ação AssumeRoleWithSAML do AWS STS. 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. A solicitação inclui o atributo SAML sourceIdentity, que é passado na declaração SAML. Se alguém usar as credenciais de sessão de função resultantes para assumir outra função, essa identidade de origem persistirá.

{ "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", "sourceIdentity": "MySAMLUser", "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", "sourceIdentity": "MySAMLUser" "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 evento de API de identidade da Web do AWS STS no arquivo de log do CloudTrail

O exemplo a seguir mostra um registro de log do CloudTrail para uma solicitação pela ação AssumeRoleWithWebIdentity do AWS STS. 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 etiquetas são definidas como transitivas para que persistam em caso de encadeamento de funções. A solicitação inclui o atributo sourceIdentity do token do provedor de identidade. Se alguém usar as credenciais de sessão de função resultantes para assumir outra função, essa identidade de origem persistirá.

{ "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": { "sourceIdentity": "MyWebIdentityUser", "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>", "sourceIdentity": "MyWebIdentityUser", "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 login no log do CloudTrail

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 login bem-sucedido no arquivo de log do CloudTrail

O exemplo a seguir mostra um registro em 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 Referência de evento do CloudTrail no Guia do usuário do AWS CloudTrail.

Exemplo de evento de falha no login no arquivo de log do CloudTrail

O exemplo a seguir mostra um registro em 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 no login causado por nome de usuário incorreto

O exemplo a seguir mostra um registro em log do CloudTrail para um evento de login malsucedido causado pela digitação incorreta do nome do usuário. A 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" }