Elemento userIdentity do CloudTrail
O AWS Identity and Access Management (IAM) fornece diferentes tipos de identidade. O elemento userIdentity
contém detalhes sobre o tipo de identidade do IAM que fez a solicitação e quais credenciais foram usadas. Se forem usadas credenciais temporárias, o elemento mostrará como elas foram obtidas.
Sumário
Exemplos
userIdentity
com credenciais de usuário do IAM
O exemplo a seguir mostra o elemento userIdentity
de uma solicitação simples feita com as credenciais da usuária do IAM chamada Alice
.
"userIdentity": { "type": "IAMUser", "principalId": "AIDAJ45Q7YFFAREXAMPLE", "arn": "arn:aws:iam::123456789012:user/Alice", "accountId": "123456789012", "accessKeyId": "", "userName": "Alice" }
userIdentity
com credenciais de segurança temporárias
O exemplo a seguir mostra um elemento userIdentity
de uma solicitação feita com credenciais de segurança temporárias obtidas com uma função do IAM. O elemento contém detalhes adicionais sobre a função que foi assumida para obter credenciais.
"userIdentity": { "type": "AssumedRole", "principalId": "AROAIDPPEZS35WEXAMPLE:AssumedRoleSessionName", "arn": "arn:aws:sts::123456789012:assumed-role/RoleToBeAssumed/MySessionName", "accountId": "123456789012", "accessKeyId": "", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAIDPPEZS35WEXAMPLE", "arn": "arn:aws:iam::123456789012:role/RoleToBeAssumed", "accountId": "123456789012", "userName": "RoleToBeAssumed" }, "attributes": { "mfaAuthenticated": "false", "creationDate": "20131102T010628Z" ) } }
userIdentity
para uma solicitação feita em nome de um usuário do Centro de Identidade do IAM
O exemplo a seguir mostra um elemento userIdentity
de uma solicitação feita em nome de um usuário do Centro de Identidade do IAM.
"userIdentity": { "type": "IdentityCenterUser", "accountId": "123456789012", "onBehalfOf": { "userId": "544894e8-80c1-707f-60e3-3ba6510dfac1", "identityStoreArn": "arn:aws:identitystore::123456789012:identitystore/d-9067642ac7" }, "credentialId": "EXAMPLEVHULjJdTUdPJfofVa1sufHDoj7aYcOYcxFVllWR_Whr1fEXAMPLE" }
Campos
Os campos a seguir podem aparecer em um elemento userIdentity
.
type
-
O tipo da identidade. Os seguintes valores são possíveis:
-
Root
: a solicitação foi feita com as credenciais da sua Conta da AWS. Se ouserIdentity
tipo forRoot
e você definir um alias para a sua conta, o campouserName
conterá o alias da conta. Para obter mais informações, consulte ID da sua Conta da AWS e seu alias. -
IAMUser
– A solicitação foi feita com as credenciais de um usuário do IAM. -
AssumedRole
— A solicitação foi feita com credenciais de segurança temporárias que foram obtidas com uma função por meio de uma chamada para a APIAssumeRole
do AWS Security Token Service (AWS STS). Isso pode incluir perfis do Amazon EC2 e acesso à API entre contas. -
Role
— A solicitação foi feita com uma identidade do IAM persistente que tem permissões específicas. O emissor das sessões de perfil é sempre o perfil. Para obter mais informações sobre funções, consulte Termos e conceitos de funções, no Guia do usuário do IAM. -
FederatedUser
: a solicitação foi feita com credenciais de segurança temporárias obtidas por meio de uma chamada à APIGetFederationToken
do AWS STS. O elementosessionIssuer
indica se a API foi chamada com raiz ou com credenciais de usuário do IAM.Para obter mais informações sobre credenciais de segurança temporárias, consulte Credenciais de segurança temporárias no Manual do usuário do IAM.
-
Directory
– A solicitação foi feita para um serviço de diretório e o tipo é desconhecido. Os serviços de diretório incluem o seguinte: Amazon WorkDocs e Amazon QuickSight. -
AWSAccount
: a solicitação foi feita por outra Conta da AWS -
AWSService
: a solicitação foi feita por uma Conta da AWS que pertence a um AWS service (Serviço da AWS). Por exemplo, AWS Elastic Beanstalk assume um perfil do IAM na sua conta para chamar outros Serviços da AWS em seu nome. -
IdentityCenterUser
: a solicitação foi feita em nome de um usuário do Centro de Identidade do IAM. -
Unknown
: a solicitação foi feita com um tipo de identidade que o CloudTrail não pode determinar.
Opcional: False
AWSAccount
eAWSService
aparecem paratype
em seus logs quando há acesso entre contas usando uma função do IAM que você possui.Exemplo: acesso entre contas iniciado por outra conta da AWS
-
Você possui uma função do IAM na sua conta.
-
Outra conta da AWS muda para essa função para assumi-la na sua conta.
-
Como você é o proprietário da função do IAM, recebe um log que mostra que a outra conta assumiu a função. O
type
éAWSAccount
. Para ver um exemplo de entrada de log, consulte AWS STS Evento da API no arquivo de log do CloudTrail.
Exemplo: acesso entre contas iniciado por um serviço da AWS
-
Você possui uma função do IAM na sua conta.
-
Uma conta da AWS de propriedade de um serviço da AWS assume essa função.
-
Como você é o proprietário da função do IAM, recebe um log que mostra que o serviço da AWS assumiu a função. O
type
éAWSService
.
-
userName
-
O nome fácil da identidade que fez a chamada. O valor que aparece em
userName
se baseia no valor emtype
. A tabela a seguir mostra a relação entretype
euserName
:type
userName
Descrição Root
(nenhum alias definido)Não está presente Se você não configurou um alias para a sua Conta da AWS, o campo userName
não é exibido. Para obter mais informações sobre alias da conta, consulte ID da sua Conta da AWS e seu alias. Observe que o campouserName
não pode conterRoot
, porqueRoot
é um tipo de identidade, e não um nome de usuário.Root
(alias definido)O alias da conta Para obter mais informações sobre alias da Conta da AWS, consulte ID da sua Conta da AWS e seu alias. IAMUser
O nome de usuário do IAM AssumedRole
Não está presente Para o tipo AssumedRole
, você pode encontrar o campouserName
emsessionContext
como parte do elemento sessionIssuer. Para ver um exemplo de entrada, consulte Exemplos.Role
Definido pelo usuário A seção sessionContext
esessionIssuer
contém informações sobre a identidade que emitiu a sessão para a função.FederatedUser
Não está presente A seção sessionContext
esessionIssuer
contém informações sobre a identidade que emitiu a sessão para o usuário federado.Directory
Pode estar presente Por exemplo, o valor pode ser o alias da conta ou o endereço de email do ID da Conta da AWS associada. AWSService
Não está presente AWSAccount
Não está presente IdentityCenterUser
Não está presente A seção onBehalfOf
contém informações sobre o ID de usuário do Centro de Identidade do IAM e o ARN do repositório de identidades para o qual a chamada foi feita. Para obter mais informações sobre o Centro de Identidade do IAM, consulte o Guia do usuário do AWS IAM Identity Center.Unknown
Pode estar presente Por exemplo, o valor pode ser o alias da conta ou o endereço de email do ID da Conta da AWS associada. nota
O campo
userName
contém a stringHIDDEN_DUE_TO_SECURITY_REASONS
quando o evento registrado é uma falha de login do console causada pela inserção incorreta de um nome do usuário. O CloudTrail não registra o conteúdo nesse caso, pois o texto pode conter informações confidenciais, como nos seguintes exemplos:-
Um usuário digita acidentalmente uma senha no campo de nome do usuário.
-
Um usuário clica no link da página de login de uma conta da AWS, mas digita o número de outra conta.
-
Um usuário digita acidentalmente o nome de uma conta de email pessoal, um identificador de login de um banco ou algum outro ID privado.
Opcional: True
-
principalId
-
Um identificador exclusivo para a entidade que fez a chamada. Para solicitações feitas com credenciais de segurança temporárias, esse valor inclui o nome da sessão que é transmitido à chamada da API
AssumeRole
,AssumeRoleWithWebIdentity
ouGetFederationToken
.Opcional: True
arn
-
O Nome de recurso da Amazon (ARN) do principal que fez a chamada. A última seção do ARN contém o usuário ou a função que fez a chamada.
Opcional: True
accountId
-
A conta proprietária da entidade que concedeu permissões para a solicitação. Se a solicitação foi feita com credenciais de segurança temporárias, essa é a conta proprietária do perfil ou do usuário do IAM usado para obter as credenciais.
Se a solicitação foi feita com um token de acesso autorizado do Centro de Identidade do IAM, essa é a conta proprietária da instância do Centro de Identidade do IAM.
Opcional: True
accessKeyId
-
O ID da chave de acesso da que foi usada para assinar a solicitação. Se a solicitação foi feita com credenciais de segurança temporárias, esse é o ID da chave de acesso delas. Por razões de segurança,
accessKeyId
pode não estar presente ou pode ser exibido como uma string vazia.Opcional: True
sessionContext
-
Se a solicitação foi feita com credenciais de segurança temporárias,
sessionContext
fornece informações sobre a sessão criada para essas credenciais. Você cria uma sessão ao chamar qualquer API que retorna credenciais temporárias. Os usuários também criam sessões quando trabalham no console e fazem solicitações com APIs que incluem autenticação multifator. Os seguintes atributos podem aparecer nosessionContext
:-
sessionIssuer
– Se um usuário fez uma solicitação com credenciais de segurança temporárias,sessionIssuer
fornece informações sobre como elas foram obtidas. Por exemplo, se o usuário obteve credenciais de segurança temporárias ao assumir um perfil, esse elemento fornece informações sobre a função assumida. Se as credenciais foram obtidas com credenciais de usuário raiz ou do IAM para chamar AWS STSGetFederationToken
, o elemento fornece informações sobre a conta raiz ou o usuário do IAM. Esse elemento tem os seguintes atributos:-
type
– A origem das credenciais de segurança temporárias, comoRoot
,IAMUser
ouRole
. -
userName
– O nome fácil do usuário ou da função que emitiu a sessão. O valor que aparece depende dasessionIssuer
identidadetype
. A tabela a seguir mostra a relação entresessionIssuer type
euserName
:Tipo de sessionIssuer
userName
Descrição Root
(nenhum alias definido)Não está presente Se você não tiver configurado um alias para a sua conta, o campo userName
não será exibido. Para obter mais informações sobre alias da Conta da AWS, consulte ID da sua Conta da AWS e seu alias. Observe que o campouserName
não pode conterRoot
, porqueRoot
é um tipo de identidade, e não um nome de usuário.Root
(alias definido)O alias da conta Para obter mais informações sobre alias da Conta da AWS, consulte ID da sua conta da AWS e seu alias. IAMUser
O nome de usuário do IAM Isso também se aplica quando um usuário federado usa uma sessão emitida pelo IAMUser
.Role
O nome da função Um perfil assumido por um usuário do IAM, AWS service (Serviço da AWS) ou usuário federado com identidade da Web em uma sessão de perfil. -
principalId
: o ID interno da entidade usada para obter credenciais. -
arn
– O ARN da fonte (conta, usuário ou função do IAM) usado para obter credenciais de segurança temporárias. -
accountId
– A conta proprietária da entidade que foi usada para obter credenciais.
-
-
webIdFederationData
– Se a solicitação foi feita com credenciais de segurança temporárias obtidas por federação de identidades da web,webIdFederationData
lista informações sobre o provedor de identidade.Esse elemento tem os seguintes atributos:
-
federatedProvider
— O nome do principal do provedor de identidade (por exemplo,www.amazon.com
para o Login with Amazon ouaccounts.google.com
no Google). -
attributes
— O ID da aplicação e o ID do usuário como informados pelo provedor (por exemplo,www.amazon.com:app_id
ewww.amazon.com:user_id
para o Login with Amazon).
nota
A omissão ou presença desse campo com um valor vazio significa que não há informações sobre o provedor de identidade.
-
-
creationDate
– A data e a hora em que as credenciais de segurança temporárias foram emitidas. Representadas em notação básica ISO 8601. -
mfaAuthenticated
: o valor serátrue
se o usuário raiz ou o usuário do IAM cujas credenciais foram usadas para a solicitação também for autenticado com um dispositivo com MFA; caso contrário, o valor seráfalse
. -
sourceIdentity
– Consulte Identidade da fonte do AWS STS neste tópico. O camposourceIdentity
ocorre em eventos quando os usuários assumem um perfil do IAM para executar uma ação.sourceIdentity
identifica a identidade do usuário original que faz a solicitação, seja essa identidade um usuário do IAM, perfil do IAM, usuário autenticado via federação baseada em SAML ou usuário autenticado via federação de identidades da Web compatível com OpenID Connect (OIDC). Para obter mais informações sobre como configurar o AWS STS para coletar informações de identidade da fonte, consulte Monitorar e controlar ações realizadas com funções assumidas no Guia do usuário do IAM. -
ec2RoleDelivery
: o valor será1.0
se as credenciais foram fornecidas pelo Instance Metadata Service Version 1 (IMDSv1) do Amazon EC2. O valor será2.0
se as credenciais foram fornecidas usando o novo esquema do IMDS.As credenciais da AWS fornecidas pelo Instance Metadata Service (IMDS) do Amazon EC2 incluem uma chave de contexto do IAM ec2:RoleDelivery. Essa chave de contexto facilita a imposição do uso do novo esquema na base de serviço por serviço ou recurso por recurso, usando a chave de contexto como condição nas políticas do IAM, políticas de recursos ou políticas de controle de serviço do AWS Organizations. Para obter mais informações, consulte Metadados da instância e dados do usuário no Manual do usuário do Amazon EC2.
Opcional: True
-
invokedBy
-
O nome do AWS service (Serviço da AWS) que fez a solicitação, quando a solicitação é feita por um AWS service (Serviço da AWS) como o Amazon EC2 Auto Scaling ou o AWS Elastic Beanstalk. Esse campo só está presente quando uma solicitação é feita por um AWS service (Serviço da AWS). Isso inclui solicitações feitas por serviços usando sessões de acesso direto (FAS), entidades principais da AWS service (Serviço da AWS), perfis vinculados a serviços ou perfis de serviço usados por um AWS service (Serviço da AWS).
Opcional: True
onBehalfOf
-
Se a solicitação foi feita por um chamador do Centro de Identidade do IAM,
onBehalfOf
fornece informações sobre o ID de usuário do Centro de Identidade do IAM e o ARN do repositório de identidades para o qual a chamada foi feita. Esse elemento tem os seguintes atributos:-
userId
: o ID do usuário do Centro de Identidade do IAM em nome do qual a chamada foi feita. -
identityStoreArn
: o ARN do armazenamento de identidades do Centro de Identidade do IAM em nome do qual a chamada foi feita.
Opcional: True
-
credentialId
-
O ID da credencial da solicitação. Isso só é definido quando o chamador usa um token portador, como um token de acesso autorizado do Centro de Identidade do IAM.
Opcional: True
Valores para APIs do AWS STS com SAML e federação de identidades da Web
O AWS CloudTrail oferece suporte ao log de chamadas de API do AWS Security Token Service (AWS STS) feitas com Security Assertion Markup Language (SAML) e federação de identidades da web. Quando um usuário faz uma chamada para as APIs AssumeRoleWithSAML
e AssumeRoleWithWebIdentity
, o CloudTrail registra a chamada e entrega o evento ao bucket do Amazon S3.
O elemento userIdentity
para essas APIs contém os valores a seguir.
type
-
O tipo de identidade.
-
SAMLUser
– A solicitação foi feita com declaração do SAML. -
WebIdentityUser
– A solicitação foi feita por um provedor de federação de identidades da web.
-
principalId
-
Um identificador exclusivo para a entidade que fez a chamada.
-
Para
SAMLUser
, é uma combinação das chavessaml:namequalifier
esaml:sub
. -
Para
WebIdentityUser
, é uma combinação de emissor, ID da aplicação e ID do usuário.
-
userName
-
O nome da identidade que fez a chamada.
-
Para
SAMLUser
, é a chavesaml:sub
. -
Para
WebIdentityUser
, é o ID do usuário.
-
identityProvider
-
O nome do principal do provedor de identidade externo. Esse campo aparece somente para os tipos
SAMLUser
ouWebIdentityUser
.-
Para
SAMLUser
, é a chavesaml:namequalifier
da declaração do SAML. -
Para
WebIdentityUser
, é o nome do emissor do provedor de federação de identidades da web. Pode ser um provedor que você configurou, como:-
cognito-identity.amazon.com
para Amazon Cognito -
www.amazon.com
para o Login with Amazon -
accounts.google.com
para o Google -
graph.facebook.com
para o Facebook
-
-
Veja a seguir um exemplo de elemento userIdentity
para a ação AssumeRoleWithWebIdentity
.
"userIdentity": { "type": "WebIdentityUser", "principalId": "accounts.google.com:
application-id
.apps.googleusercontent.com:user-id
", "userName": "user-id
", "identityProvider": "accounts.google.com" }
Para ver exemplos de logs de como o elemento userIdentity
aparece para os tipos SAMLUser
e WebIdentityUser
, consulte Registrar camadas ao IAM e à API do AWS STS com o AWS CloudTrail.
Identidade da fonte do AWS STS
Um administrador do IAM pode configurar o AWS Security Token Service para exigir que os usuários especifiquem sua identidade ao usar credenciais temporárias para assumir funções. O campo sourceIdentity
ocorre em eventos quando os usuários assumem um perfil do IAM ou executam qualquer ação com a função assumida.
O campo sourceIdentity
identifica a identidade do usuário original que faz a solicitação. Ele identifica se a identidade desse usuário é um usuário do IAM, uma função do IAM, um usuário autenticado usando federação baseada em SAML ou um usuário autenticado usando federação de identidades da Web compatível com OpenID Connect (OIDC). Depois que o administrador do IAM configura o AWS STS, o CloudTrail registra informações sourceIdentity
nos seguintes eventos e locais dentro do registro de evento:
-
As chamadas do AWS STS
AssumeRole
,AssumeRoleWithSAML
ouAssumeRoleWithWebIdentity
que uma identidade de usuário faz quando assume uma função.sourceIdentity
é encontrado no blocorequestParameters
das chamadas do AWS STS. -
As chamadas do AWS STS
AssumeRole
,AssumeRoleWithSAML
ouAssumeRoleWithWebIdentity
que uma identidade de usuário faz ao usar uma função para assumir outra função, conhecida como encadeamento de funções.sourceIdentity
é encontrado no blocorequestParameters
das chamadas do AWS STS. -
As chamadas de API de serviço da AWS que a identidade do usuário faz ao assumir uma função e usar as credenciais temporárias atribuídas pelo AWS STS. Em eventos da API de serviço, a
sourceIdentity
é encontrada no blocosessionContext
. Por exemplo, se uma identidade de usuário criar um novo bucket do S3, asourceIdentity
ocorrerá nasessionContext
bloco do eventoCreateBucket
.
Para obter mais informações sobre como configurar o AWS STS para coletar informações de identidade da fonte, consulte Monitorar e controlar ações realizadas com funções assumidas no Manual do Usuário do IAM. Para obter mais informações sobre os eventos do AWS STS registrados no CloudTrail, consulte Registrar IAM e Chamadas de API do AWS STSAWS CloudTrail no Manual do Usuário do IAM.
Veja a seguir snippets de exemplo de eventos que mostram o campo sourceIdentity
.
Exemplo da seção requestParameters
No snippet de evento de exemplo a seguir, um usuário faz uma solicitação AssumeRole
do AWS STS e define uma identidade da origem, representada aqui por
. O usuário assume uma função representada pelo ARN da função source-identity-value-set
arn:aws:iam::123456789012:role/Assumed_Role
. O campo sourceIdentity
está no bloco do evento requestParameters
.
"eventVersion": "1.05", "userIdentity": { "type": "AWSAccount", "principalId": "AIDAJ45Q7YFFAREXAMPLE", "accountId": "123456789012" }, "eventTime": "2020-04-02T18:20:53Z", "eventSource": "sts.amazonaws.com", "eventName": "AssumeRole", "awsRegion": "us-east-1", "sourceIPAddress": "203.0.113.64", "userAgent": "aws-cli/1.16.96 Python/3.6.0 Windows/10 botocore/1.12.86", "requestParameters": { "roleArn": "arn:aws:iam::123456789012:role/Assumed_Role", "roleSessionName": "Test1", "sourceIdentity": "
source-identity-value-set
", },
Exemplo da seção responseElements
No snippet de evento de exemplo a seguir, um usuário faz uma solicitação de AssumeRole
do AWS STS para assumir uma função chamada Developer_Role
e define uma identidade da fonte Admin
. O usuário assume uma função representada pelo ARN da função arn:aws:iam::111122223333:role/Developer_Role
. O campo sourceIdentity
é exibido nos blocos de evento requestParameters
e responseElements
. As credenciais temporárias usadas para assumir a função, a string de token de sessão e o ID da função assumida, o nome da sessão e o ARN da sessão são mostrados no bloco responseElements
, junto da identidade da fonte.
"requestParameters": { "roleArn": "arn:aws:iam::111122223333:role/Developer_Role", "roleSessionName": "Session_Name", "sourceIdentity": "Admin" }, "responseElements": { "credentials": { "accessKeyId": "ASIAIOSFODNN7EXAMPLE", "expiration": "Jan 22, 2021 12:46:28 AM", "sessionToken": "XXYYaz... EXAMPLE_SESSION_TOKEN XXyYaZAz" }, "assumedRoleUser": { "assumedRoleId": "AROACKCEVSQ6C2EXAMPLE:Session_Name", "arn": "arn:aws:sts::111122223333:assumed-role/Developer_Role/Session_Name" }, "sourceIdentity": "Admin" } ...
Exemplo da seção sessionContext
No snippet de evento de exemplo a seguir, um usuário está assumindo uma função chamada DevRole
para chamar uma API de serviço da AWS. O usuário define uma identidade da fonte, representada aqui por source-identity-value-set
. O campo sourceIdentity
está no bloco sessionContext
, dentro do bloco do evento userIdentity
.
{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AROAJ45Q7YFFAREXAMPLE: Dev1", "arn": "arn: aws: sts: : 123456789012: assumed-role/DevRole/Dev1", "accountId": "123456789012", "accessKeyId": "ASIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAJ45Q7YFFAREXAMPLE", "arn": "arn: aws: iam: : 123456789012: role/DevRole", "accountId": "123456789012", "userName": "DevRole" }, "webIdFederationData": {}, "attributes": { "mfaAuthenticated": "false", "creationDate": "2021-02-21T23: 46: 28Z" }, "sourceIdentity": "
source-identity-value-set
" } } }