CloudTrail Elemento UserIdentity - AWS CloudTrail

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

CloudTrail Elemento UserIdentity

AWS Identity and Access Management (IAM) proporciona diferentes tipos de identidades. El elemento userIdentity contiene información sobre el tipo de identidad de IAM que ha realizado la solicitud y las credenciales que se han utilizado. Si se utilizaron credenciales temporales, el elemento muestra cómo se obtuvieron las credenciales.

Ejemplos

userIdentity con credenciales de usuario de IAM

El siguiente ejemplo muestra el elemento userIdentity de una solicitud sencilla realizada con las credenciales de la usuaria de IAM llamada Alice.

"userIdentity": { "type": "IAMUser", "principalId": "AIDAJ45Q7YFFAREXAMPLE", "arn": "arn:aws:iam::123456789012:user/Alice", "accountId": "123456789012", "accessKeyId": "", "userName": "Alice" }

userIdentity con credenciales de seguridad temporales

El siguiente ejemplo muestra un elemento userIdentity de una solicitud realizada con credenciales de seguridad temporales obtenidas mediante la adopción de un rol de IAM. El elemento contiene detalles adicionales sobre el rol que se asumió para obtener las credenciales.

"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 de una solicitud hecha en nombre de un usuario de IAM Identity Center

En el siguiente ejemplo, se muestra un elemento userIdentity de una solicitud hecha en nombre de un usuario de IAM Identity Center.

"userIdentity": { "type": "IdentityCenterUser", "accountId": "123456789012", "onBehalfOf": { "userId": "544894e8-80c1-707f-60e3-3ba6510dfac1", "identityStoreArn": "arn:aws:identitystore::123456789012:identitystore/d-9067642ac7" }, "credentialId": "EXAMPLEVHULjJdTUdPJfofVa1sufHDoj7aYcOYcxFVllWR_Whr1fEXAMPLE" }

Campos

Los siguientes campos pueden aparecer en un elemento userIdentity.

type

El tipo de la identidad. Se admiten los siguientes valores:

  • Root— La solicitud se realizó con sus Cuenta de AWS credenciales. Si el tipo de userIdentity es Root y configura un alias para su cuenta, el campo userName contiene el alias de la cuenta. Para obtener más información, consulte Su ID de Cuenta de AWS y su alias.

  • IAMUser: la solicitud se realizó con las credenciales de un usuario de IAM.

  • AssumedRole: la solicitud se realizó con credenciales de seguridad temporales obtenidas con un rol a través de una llamada a la API de AWS Security Token Service (AWS STS) AssumeRole. Esto puede incluir funciones para Amazon EC2 y el acceso a la API entre cuentas.

  • Role: la solicitud se realizó con una identidad de IAM persistente que tiene permisos específicos. El emisor de las sesiones de rol es siempre el rol. Para obtener más información sobre los roles, consulte Términos y conceptos sobre los roles en la Guía del usuario de IAM.

  • FederatedUser— La solicitud se realizó con credenciales de seguridad temporales obtenidas de una llamada a la AWS STS GetFederationTokenAPI. El elemento sessionIssuer indica si se llamó a la API con credenciales de usuario raíz o de usuario de IAM.

    Para obtener más información acerca de las credenciales de seguridad temporales, consulte Credenciales de seguridad temporales en la guía del usuario de IAM.

  • Directory: la solicitud se realizó a un servicio de directorio y el tipo es desconocido. Los servicios de directorio incluyen los siguientes: Amazon WorkDocs y Amazon QuickSight.

  • AWSAccount— La solicitud fue realizada por otro Cuenta de AWS

  • AWSService— La solicitud fue realizada por un hombre Cuenta de AWS que pertenece a un Servicio de AWS. Por ejemplo, AWS Elastic Beanstalk asume una función de IAM en su cuenta para llamar a otra Servicios de AWS en su nombre.

  • IdentityCenterUser: la solicitud se hizo en nombre de un usuario de IAM Identity Center.

  • Unknown— La solicitud se realizó con un tipo de identidad que no CloudTrail se puede determinar.

Opcional: Falso

AWSAccount y AWSService aparecen como type en sus archivos de registros cuando se utiliza el acceso entre cuentas mediante un rol de IAM de su propiedad.

Ejemplo: acceso entre cuentas iniciado por otra cuenta de AWS .
  1. Usted es propietario de un rol de IAM en su cuenta.

  2. Otra AWS cuenta cambia a esa función para asumir la función de tu cuenta.

  3. Como es propietario del rol de IAM, recibe un registro que muestra que la otra cuenta adoptó el rol. El valor de type es AWSAccount. Para ver un ejemplo de entrada de registro, consulta el evento de la AWS STS API en el archivo de CloudTrail registro.

Ejemplo: acceso entre cuentas iniciado por un servicio AWS
  1. Usted es propietario de un rol de IAM en su cuenta.

  2. Una AWS cuenta propiedad de un AWS servicio asume esa función.

  3. Como es propietario del rol de IAM, recibe un registro que muestra el servicio de AWS que adoptó el rol. El valor de type es AWSService.

userName

El nombre descriptivo de la identidad que realizó la llamada. El valor que aparece en userName se basa en el valor de type. En la tabla siguiente se muestra la relación entre type y userName:

type userName Descripción
Root (sin alias definido) No presente Si no has configurado un alias para ti Cuenta de AWS, el userName campo no aparece. Para obtener más información sobre los alias de las cuentas, consulta Tu Cuenta de AWS ID y su alias. Tenga en cuenta que el campo userName no puede contener Root porque Root es un tipo de identidad, no un nombre de usuario.
Root (con alias definido) El alias de la cuenta Para obtener más información sobre los Cuenta de AWS alias, consulta Tu Cuenta de AWS ID y su alias.
IAMUser El nombre de usuario del usuario de IAM

AssumedRole

No presente Para el AssumedRole tipo, puedes buscar el userName campo sessionContext como parte del elemento sessionIssuer. Para ver una entrada de ejemplo, consulte Ejemplos.

Role

Definido por el usuario Las secciones sessionContext y sessionIssuer contienen información sobre la identidad que emitió la sesión para el rol.
FederatedUser No presente Las secciones sessionContext y sessionIssuer contienen información sobre la identidad que emitió la sesión para el usuario federado.
Directory Puede estar presente Por ejemplo, el valor puede ser el alias de cuenta o la dirección de correo electrónico del ID de Cuenta de AWS asociado.
AWSService No presente
AWSAccount No presente
IdentityCenterUser No presente La sección onBehalfOf contiene información sobre el ID de usuario de IAM Identity Center y el ARN del almacén de identidades para los que se hizo la llamada. Para obtener más información acerca de IAM Identity Center, consulte la Guía del usuario de AWS IAM Identity Center .
Unknown Puede estar presente Por ejemplo, el valor puede ser el alias de cuenta o la dirección de correo electrónico del ID de Cuenta de AWS asociado.
nota

El campo userName contiene la cadena HIDDEN_DUE_TO_SECURITY_REASONS cuando el evento registrado es un error de inicio de sesión en la consola ocasionado al ingresar un nombre de usuario incorrecto. CloudTrail no graba el contenido en este caso porque el texto podría contener información confidencial, como en los ejemplos siguientes:

  • Un usuario escribe por error una contraseña en el campo de nombre de usuario.

  • Un usuario hace clic en el enlace de la página de inicio de sesión de una AWS cuenta, pero después escribe el número de cuenta de otra.

  • Un usuario escribe por error el nombre de una cuenta de correo electrónico personal, un identificador de inicio de sesión en un banco u otro identificador privado.

Opcional: Verdadero

principalId

Un identificador único para la entidad que ha efectuado la llamada. Para las solicitudes realizadas con credenciales de seguridad temporales, este valor incluye el nombre de la sesión que se pasa a la llamada API AssumeRole, AssumeRoleWithWebIdentity o GetFederationToken.

Opcional: Verdadero

arn

El nombre de recurso de Amazon (ARN) de la entidad principal que realizó la llamada. La última sección del arn contiene el usuario o el rol que realizó la llamada.

Opcional: Verdadero

accountId

La cuenta que posee la entidad que concedió permisos para la solicitud. Si la solicitud se hizo con credenciales de seguridad temporales, esta es la cuenta perteneciente al usuario o rol de IAM que se utilizó para obtener las credenciales.

Si la solicitud se hizo con un token de acceso autorizado de IAM Identity Center, esta es la cuenta propietaria de la instancia de IAM Identity Center.

Opcional: Verdadero

accessKeyId

El ID de clave de acceso de que se utilizó para firmar la solicitud. Si la solicitud se realizó con credenciales de seguridad temporales, este es el ID de clave de acceso de las credenciales temporales. Por razones de seguridad, puede ser que el accessKeyId no esté presente, o puede mostrarse como una cadena vacía.

Opcional: Verdadero

sessionContext

Si la solicitud se hizo con credenciales de seguridad temporales, sessionContext proporciona información sobre la sesión que se creó para esas credenciales. Las sesiones se crean cuando se llama a alguna API que devuelve credenciales temporales. Los usuarios también crean sesiones cuando trabajan en la consola y hacen solicitudes a través de la API que incluyen la autenticación multifactor. Los siguientes atributos pueden aparecer ensessionContext:

  • sessionIssuer— Si un usuario realiza una solicitud con credenciales de seguridad temporales, sessionIssuer proporciona información sobre cómo obtuvo las credenciales el usuario. Por ejemplo, si obtuvo las credenciales de seguridad temporales asumiendo un rol, este elemento proporciona información acerca del rol asumido. Si obtuvo las credenciales con las credenciales de un usuario raíz o un usuario de IAM para llamar a AWS STS en GetFederationToken, el elemento proporciona información sobre la cuenta raíz o el usuario de IAM. Este elemento tiene los siguientes atributos:

    • type: el origen de las credenciales de seguridad temporales, como Root, IAMUsero Role.

    • userName: el nombre descriptivo del usuario o el rol que emitió la sesión. El valor que aparece depende del valor type de la identidad sessionIssuer. En la tabla siguiente se muestra la relación entre sessionIssuer type y userName:

      sessionIssuer type userName Descripción
      Root (sin alias definido) No presente Si no ha creado un alias para su cuenta, no aparece el campo userName. Para obtener más información sobre los Cuenta de AWS alias, consulte Su Cuenta de AWS ID y su alias. Tenga en cuenta que el campo userName no puede contener Root porque Root es un tipo de identidad, no un nombre de usuario.
      Root (con alias definido) El alias de la cuenta Para obtener más información sobre los Cuenta de AWS alias, consulta Tu ID de AWS cuenta y su alias.
      IAMUser El nombre de usuario del usuario de IAM Esto también se aplica cuando un usuario federado utiliza una sesión emitida por IAMUser.
      Role El nombre del rol Un rol que asume un usuario de IAM o un usuario federado de identidad web en una sesión de rol. Servicio de AWS
    • principalId: el ID interno de la entidad que se utilizó para obtener las credenciales.

    • arn: el ARN de la fuente (cuenta, usuario de IAM o rol) que se utilizó para obtener credenciales de seguridad temporales.

    • accountId: la cuenta que posee la entidad que se utilizó para obtener las credenciales.

  • webIdFederationData— Si la solicitud se realizó con credenciales de seguridad temporales obtenidas por la federación de identidades web, webIdFederationData muestra información sobre el proveedor de identidades.

    Este elemento tiene los siguientes atributos:

    • federatedProvider: el nombre principal del proveedor de identidad (por ejemplo, www.amazon.com para Login with Amazon o accounts.google.com para Google).

    • attributes: el ID de aplicación y el ID de usuario tal como los indicó el proveedor (por ejemplo, www.amazon.com:app_id y www.amazon.com:user_id para Login with Amazon).

    nota

    La omisión de este campo o la presencia de este campo con un valor vacío significa que no hay información sobre el proveedor de identidad.

  • creationDate: la fecha y la hora en que se emitieron las credenciales de seguridad temporales. Representadas con la notación básica ISO 8601.

  • mfaAuthenticated: el valor es true si el usuario raíz o el usuario de IAM que usaron sus credenciales para la solicitud también se autenticó con un dispositivo MFA; de lo contrario, el valor es false.

  • sourceIdentity: consulte AWS STS identidad de origen en este tema. El campo sourceIdentity se produce en eventos cuando los usuarios adoptan un rol de IAM para llevar a cabo una acción. sourceIdentity identifica la identidad de usuario original que hace la solicitud, ya sea que la identidad de ese usuario sea un usuario de IAM, un rol de IAM, un usuario autenticado con federación basada en SAML o un usuario autenticado mediante la federación de identidades web conforme con OpenID Connect (OIDC). Para obtener más información sobre la configuración AWS STS para recopilar la información de identidad de origen, consulte Supervisar y controlar las acciones que se toman con los roles asumidos en la Guía del usuario de IAM.

  • ec2RoleDelivery: el valor es 1.0 si el servicio de metadatos de instancias de Amazon EC2 versión 1 (IMDSv1) proporcionó las credenciales. El valor es 2.0 si las credenciales se proporcionaron mediante el nuevo esquema IMDS.

    AWS Las credenciales proporcionadas por el Amazon EC2 Instance Metadata Service (IMDS) incluyen una clave de contexto ec2: RoleDelivery IAM. Esta clave de contexto facilita la aplicación del nuevo esquema en resource-by-resource función de una service-by-service o varias, ya que utiliza la clave de contexto como condición en las políticas de IAM, las políticas de recursos o las políticas de control de servicios. AWS Organizations Para obtener más información, consulte Metadatos de instancia y datos de usuario en la Guía del usuario de Amazon EC2.

Opcional: Verdadero

invokedBy

El nombre de la Servicio de AWS persona que realizó la solicitud, cuando la solicitud la realiza un Servicio de AWS Auto Scaling de Amazon EC2 o. AWS Elastic Beanstalk Este campo solo está presente cuando una solicitud la realiza un Servicio de AWS. Esto incluye las solicitudes realizadas por los servicios que utilizan sesiones de acceso directo (FAS), Servicio de AWS los directores, las funciones vinculadas al servicio o las funciones de servicio utilizadas por un. Servicio de AWS

Opcional: Verdadero

onBehalfOf

Si la solicitud la hizo una persona que llamó a IAM Identity Center, onBehalfOf proporciona información sobre el ID de usuario de IAM Identity Center y el ARN del almacén de identidades para el que se hizo la llamada. Este elemento tiene los siguientes atributos:

  • userId: el ID del usuario de IAM Identity Center en nombre del que se hizo la llamada.

  • identityStoreArn: el ARN del almacén de identidades de IAM Identity Center en nombre del que se hizo la llamada.

Opcional: Verdadero

credentialId

El ID de la credencial de la solicitud. Solo se establece cuando la persona que llama usa un token de portador, como un token de acceso autorizado de IAM Identity Center.

Opcional: Verdadero

Valores para AWS STS las API con SAML y federación de identidades web

AWS CloudTrail admite las llamadas a la API logging AWS Security Token Service (AWS STS) realizadas con el lenguaje de marcado de aserciones de seguridad (SAML) y la federación de identidades web. Cuando un usuario realiza una llamada a las AssumeRoleWithWebIdentityAPI AssumeRoleWithSAMLy, CloudTrail graba la llamada y envía el evento a su bucket de Amazon S3.

El elemento userIdentity de estas API contiene los siguientes valores.

type

El tipo de identidad.

  • SAMLUser: la solicitud se realizó con una aserción SAML.

  • WebIdentityUser: la solicitud la realizó un proveedor de federación de identidades web.

principalId

Un identificador único para la entidad que ha efectuado la llamada.

  • Para SAMLUser, este identificador es una combinación de las claves saml:namequalifier y saml:sub.

  • Para WebIdentityUser, es una combinación del emisor, el ID de aplicación y el ID de usuario.

userName

El nombre de la identidad que realizó la llamada.

  • Para SAMLUser, esta es la clave de saml:sub.

  • Para WebIdentityUser, este es el ID de usuario.

identityProvider

El nombre principal del proveedor de identidad externo. Este campo aparece únicamente para los tipos SAMLUser o WebIdentityUser.

  • Para SAMLUser, es la clave de saml:namequalifier de la aserción de SAML.

  • Para WebIdentityUser, es el nombre de emisor del proveedor de federación de identidades web. Puede ser un proveedor que haya configurado, como los siguientes:

    • cognito-identity.amazon.com para Amazon Cognito

    • www.amazon.com para Login with Amazon

    • accounts.google.com para Google

    • graph.facebook.com para Facebook

A continuación se incluye un elemento userIdentity de ejemplo para la acción AssumeRoleWithWebIdentity.

"userIdentity": { "type": "WebIdentityUser", "principalId": "accounts.google.com:application-id.apps.googleusercontent.com:user-id", "userName": "user-id", "identityProvider": "accounts.google.com" }

Para ver, por ejemplo, registros del aspecto SAMLUser y los WebIdentityUser tipos del userIdentity elemento, consulte Registrar las llamadas de IAM y AWS STS API con AWS CloudTrail.

AWS STS identidad de origen

Un administrador de IAM puede AWS Security Token Service configurarlo para exigir que los usuarios especifiquen su identidad cuando utilicen credenciales temporales para asumir funciones. El campo sourceIdentity está presente en eventos donde los usuarios adoptan un rol de IAM o llevan a cabo acciones con el rol adoptado.

El campo sourceIdentity identifica la identidad de usuario original que realiza la solicitud, ya sea que la identidad de ese usuario se trate de un usuario de IAM, un rol de IAM, un usuario autenticado mediante la federación basada en SAML o un usuario autenticado mediante la identidad federada web conforme con OpenID Connect (OIDC). Una vez que el administrador de IAM realiza la configuración AWS STS, CloudTrail registra la sourceIdentity información en los siguientes eventos y ubicaciones dentro del registro de eventos:

  • Las AWS STS AssumeRoleAssumeRoleWithSAML, o las AssumeRoleWithWebIdentity llamadas que realiza la identidad de un usuario cuando asume un rol. sourceIdentityse encuentra en el requestParameters bloque de AWS STS llamadas.

  • Las AWS STS AssumeRoleAssumeRoleWithSAML, o las AssumeRoleWithWebIdentity llamadas que realiza la identidad de un usuario si utiliza un rol para asumir otro rol, lo que se conoce como encadenamiento de roles. sourceIdentityse encuentra en el requestParameters bloque de AWS STS llamadas.

  • Las llamadas a la API del AWS servicio que realiza la identidad del usuario al asumir un rol y utilizar las credenciales temporales asignadas por AWS STS. En los eventos API de servicio, sourceIdentity se encuentra en el bloque sessionContext. Por ejemplo, si una identidad de usuario crea un nuevo bucket de S3, se produce sourceIdentity en el bloque sessionContext del evento CreateBucket.

Para obtener más información sobre cómo configurar AWS STS la recopilación de la información de identidad de origen, consulte Supervisar y controlar las acciones que se toman con los roles asumidos en la Guía del usuario de IAM. Para obtener más información sobre AWS STS los eventos que se registran CloudTrail, consulte Registrar las llamadas de IAM y AWS STS API AWS CloudTrail en la Guía del usuario de IAM.

Los siguientes son fragmentos de ejemplo de eventos que muestran el campo sourceIdentity.

Ejemplo de sección de requestParameters

En el siguiente fragmento de eventos de ejemplo, un usuario realiza una AWS STS AssumeRole solicitud y establece una identidad de origen, representada aquí por. source-identity-value-set El usuario adopta un rol representado por el ARN arn:aws:iam::123456789012:role/Assumed_Role del rol. El campo sourceIdentity está en el bloque requestParameters del evento.

"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", },

Ejemplo de sección de responseElements

En el siguiente fragmento de evento de ejemplo, un usuario realiza una AWS STS AssumeRole solicitud para asumir un rol denominadoDeveloper_Role, y establece una identidad de origen,. Admin El usuario adopta un rol representado por el ARN arn:aws:iam::111122223333:role/Developer_Role del rol. El campo sourceIdentity se muestra en los bloques requestParameters y responseElements del evento. Las credenciales temporales utilizadas para adoptar el rol, la cadena de token de sesión y el ID del rol adoptado, el nombre de sesión y el ARN de sesión se muestran en el bloque responseElements, junto con la identidad de la fuente.

"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" } ...

Ejemplo de sección de sessionContext

En el siguiente fragmento de evento de ejemplo, un usuario asume un rol denominado DevRole para llamar a una API de servicio. AWS El usuario establece una identidad de origen, representada aquí por. source-identity-value-set El campo sourceIdentity está en el bloque sessionContext, dentro del bloque userIdentity del evento.

{ "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" } } }