Registro de llamadas a la API de IAM y de AWS STS con AWS CloudTrail - AWS Identity and Access Management

Registro de llamadas a la API de IAM y de AWS STS con AWS CloudTrail

IAM y AWS STS se integran con AWS CloudTrail, un servicio que proporciona un registro de las medidas adoptadas por un usuario o un rol de IAM. CloudTrail captura todas las llamadas a la API de IAM y AWS STS como eventos, incluidas las llamadas procedentes de la consola y de llamadas a la API. Si crea un registro de seguimiento, puede habilitar la entrega continua de eventos de CloudTrail a un bucket de Amazon S3. Si no configura un registro de seguimiento, puede ver los eventos más recientes en la consola de CloudTrail en el Event history (Historial de eventos). Puede utilizar CloudTrail para obtener información acerca de la solicitud que se realizó a IAM o AWS STS. Por ejemplo, puede ver la dirección IP desde la que se realizó la solicitud, quién realizó la solicitud, cuándo se realizó y otros detalles adicionales.

Para obtener más información sobre CloudTrail, consulte la AWS CloudTrail User Guide.

Información de IAM y AWS STS en CloudTrail

CloudTrail se habilita en una cuenta de AWS al crearla. Cuando se produce una actividad en IAM o AWS STS, dicha actividad se registra en un evento de CloudTrail junto con los eventos de los demás servicios de AWS en el Event history (Historial de eventos). Puede ver, buscar y descargar los últimos eventos de la cuenta de AWS. Para obtener más información, consulte Visualización de eventos con el historial de eventos de CloudTrail.

Para mantener un registro continuo de los eventos de la cuenta de AWS, incluidos los eventos de IAM y AWS STS, cree un registro de seguimiento. Un registro de seguimiento permite a CloudTrail enviar archivos de registro a un bucket de Amazon S3. De forma predeterminada, cuando se crea un registro de seguimiento en la consola, este se aplica a todas las regiones. El registro de seguimiento registra los eventos de todas las regiones de la partición de AWS y envía los archivos de registro al bucket de Amazon S3 especificado. También puede configurar otros servicios de AWS para analizar y actuar en función de los datos de eventos recopilados en los registros de CloudTrail. Para obtener más información, consulte:

CloudTrail registra todas las acciones de IAM y AWS STS y se documentan en la IAM API Reference y en la AWS Security Token Service API Reference.

Registro de solicitudes de IAM y API de AWS STS

CloudTrail registra todas las solicitudes de API (realizadas con credenciales) a operaciones de API de IAM y AWS STS. CloudTrail también registra las solicitudes no autenticadas a las acciones de AWS STS, AssumeRoleWithSAML y AssumeRoleWithWebIdentity y registra la información proporcionada por el proveedor de identidad. Puede utilizar esta información para asignar llamadas realizadas por un usuario federado con un rol asumido al intermediario federado externo de origen. En el caso de AssumeRole, puede asignar llamadas al servicio de AWS de origen o a la cuenta del usuario de origen. La sección userIdentity de los datos JSON en la entrada de registro de CloudTrail incluye la información que necesita para asignar la solicitud AssumeRole* a un determinado usuario federado. Para obtener más información, consulte el elemento userIdentity de CloudTrail en la AWS CloudTrail User Guide.

Por ejemplo, las llamadas a IAM CreateUser, DeleteRole, ListGroups y otras operaciones de la API quedan registradas en CloudTrail.

Más adelante en este tema se incluyen ejemplos de este tipo de entrada de log.

importante

Si activa puntos de enlace de AWS STS en otras regiones que no sean el punto de enlace global predeterminado, debe también activar el registro de CloudTrail en dichas regiones. Esto es necesario para registrar cualquier llamada a la API de AWS STS realizada en estas regiones. Para obtener más información, consulte Activación de CloudTrail en regiones adicionales en la AWS CloudTrail User Guide.

Registro de solicitudes de API a otros servicios de AWS

CloudTrail registra las solicitudes autenticadas dirigidas a otras operaciones de API de servicios de AWS incluyendo información sobre quién generó la solicitud.

Por ejemplo, supongamos que ha realizado una solicitud para enumerar las instancias Amazon EC2 o crear un grupo de implementaciones de CodeDeploy. Los detalles de la persona o servicio que ha realizado la solicitud se incluyen en la entrada de registro de dicha solicitud. Esta información le ayudará a determinar si la solicitud se hizo mediante el Usuario de la cuenta raíz de AWS, un usuario de IAM, un rol u otro servicio de AWS.

Para obtener más información sobre la información de identidad del usuario en las entradas de registro de CloudTrail, consulte el Elemento userIdentity en la AWS CloudTrail User Guide.

Registro de eventos de inicio de sesión regionales

Si habilita CloudTrail para registrar los eventos de inicio de sesión en los registros, sea consciente del modo en que CloudTrail elige dónde registrar los eventos.

  • Si los usuarios inician sesión directamente en una consola, se les redirige a un punto de enlace de inicio de sesión global o regional. El punto de enlace depende de si la consola de servicio seleccionada admite regiones. Por ejemplo, la página de inicio de la consola principal admite regiones. Si inicia sesión en https://alias.signin.aws.amazon.com/console, se le redirigirá a un punto de enlace de inicio de sesión regional como https://us-east-2.signin.aws.amazon.com. Este redireccionamiento crea una entrada de registro de CloudTrail regional en el registro de la región del usuario:

    Por otra parte, la consola de Amazon S3 no admite las regiones, por lo que si inicia sesión con https://alias.signin.aws.amazon.com/console/s3, AWS le redirige el punto de enlace de inicio de sesión global en https://signin.aws.amazon.com. Este redireccionamiento crea una entrada de registro de CloudTrail global.

  • Puede solicitar manualmente un determinado punto de enlace de inicio de sesión regional iniciando sesión en la página de inicio principal de la consola habilitada para regiones, mediante una URL como https://alias.signin.aws.amazon.com/console?region=ap-southeast-1. En este caso, AWS le redirige el punto de enlace de inicio de sesión regional ap-southeast-1 lo que se traduce en un evento de log de CloudTrail regional.

Si el evento de inicio de sesión se considera regional o global depende de la consola en la que el usuario inicia sesión y de cómo el usuario crea la URL de inicio de sesión.

  • ¿La consola del servicio está regionalizada? De ser así, la solicitud de inicio de sesión se redirige automáticamente a un punto de enlace de inicio de sesión regional y el evento se registra en el log de CloudTrail de dicha región. Por ejemplo, si inicia sesión en https://alias.signin.aws.amazon.com/console, que está regionalizada, se le redirige a un punto de enlace de inicio de sesión de su región, como https://us-east-2.signin.aws.amazon.com. El evento se registra en el log de dicha región.

    Sin embargo, algunos servicios aún no están regionalizados. Por ejemplo, el servicio Amazon S3 no está regionalizado actualmente. Si inicia sesión en https://alias.signin.aws.amazon.com/console/s3, se le redirigirá al punto de enlace de inicio de sesión global en https://signin.aws.amazon.com. Este redireccionamiento crea un evento en su registro global.

  • También puede solicitar manualmente un punto de enlace de inicio de sesión regional específico utilizando una URL como https://alias.signin.aws.amazon.com/console?region=ap-southeast-1. Esta URL le redirige al punto de enlace de inicio de sesión regional ap-southeast-1. Este redireccionamiento se traduce en un evento en el log regional.

Prevención de entradas de registro regionales duplicadas

CloudTrail crea registros de seguimiento independientes en cada región. Estos registros de seguimiento incluyen información sobre eventos que se producen en dichas regiones, además de eventos globales y eventos que no son específicos de la región. Entre los ejemplos se incluyen llamadas a la API de IAM, llamadas de AWS STS al punto de enlace global y eventos de inicio de sesión de AWS. Por ejemplo, suponga que tiene dos registros de seguimiento, cada uno en una región diferente. Si, a continuación, crea un nuevo usuario de IAM, el evento CreateUser se añade a los archivos de log en ambas regiones, lo que crea una entrada de log duplicada.

De forma predeterminada, AWS Security Token Service (STS) es un servicio con un único punto de enlace global en https://sts.amazonaws.com. Las llamadas a este punto de enlace se registran como llamadas a un servicio global. Sin embargo, dado que este punto de enlace se encuentra físicamente en la región US East (N. Virginia), los registros especifican us-east-1 como la región del evento. CloudTrail no escribe estos registros en la región EE.UU. Este (Ohio) a no ser que decida incluir registros de servicios globales en dicha región. AWS STS también permite llamadas a todos los puntos de enlace regionales como sts.eu-central-1.amazonaws.com. CloudTrail escribe llamadas a todos los puntos de enlace regionales en sus respectivas regiones. Por ejemplo, las llamadas a sts.us-east-2.amazonaws.com se publican en la región EE.UU. Este (Ohio). Las llamadas a sts.eu-central-1.amazonaws.com se publican en los registros de la región Europa (Fráncfort).

Para obtener más información sobre varias regiones y AWS STS, consulte Administración de AWS STS en una región de AWS.

En la siguiente tabla se muestran las regiones y cómo CloudTrail registra las solicitudes de AWS STS en cada región. La columna "Ubicación" indica los logs en los que escribe CloudTrail. "Global" hace referencia al evento registrado en una región en la que desea incluir logs de servicios globales. "Región" hace referencia al evento registrado únicamente en la región donde se encuentra el punto de enlace. La última columna indica cómo se identifica la región de la solicitud en la entrada de log.

Nombre de la región Identidad de la región en el log de CloudTrail Punto de enlace Ubicación de los logs de CloudTrail
n/a: global us-east-1 sts.amazonaws.com Global
EE.UU. Este (Ohio) us-east-2 sts.us-east-2.amazonaws.com Region
US East (N. Virginia) us-east-1 sts.us-east-1.amazonaws.com Region
EE.UU. Oeste (Norte de California) us-west-1 sts.us-west-1.amazonaws.com Region
EE.UU. Oeste (Oregón) us-west-2 sts.us-west-2.amazonaws.com Region
Canadá (Central) ca-central-1 sts.ca-central-1.amazonaws.com Region
Europa (Fráncfort) eu-central-1 sts.eu-central-1.amazonaws.com Region
Europa (Irlanda) eu-west-1 sts.eu-west-1.amazonaws.com Region
Europa (Londres) eu-west-2 sts.eu-west-2.amazonaws.com Region
Asia Pacífico (Tokio) ap-northeast-1 sts.ap-northeast-1.amazonaws.com Region
Asia Pacífico (Seúl) ap-northeast-2 sts.ap-northeast-2.amazonaws.com Region
Asia Pacífico (Mumbai) ap-south-1 sts.ap-south-1.amazonaws.com Region
Asia Pacífico (Singapur) ap-southeast-1 sts.ap-southeast-1.amazonaws.com Region
Asia Pacífico (Sídney) ap-southeast-2 sts.ap-southeast-2.amazonaws.com Region
América del Sur (São Paulo) sa-east-1 sts.sa-east-1.amazonaws.com Región

Cuando se configura CloudTrail para agregar información de registro de seguimiento de varias regiones de una cuenta a un único bucket de Amazon S3, los eventos de IAM se duplican en los logs. En otras palabras, el registro de seguimiento de cada región escribe el mismo evento de IAM al log agregado. Para evitar esta duplicación, puede incluir los eventos globales de forma selectiva. Un enfoque típico es habilitar eventos globales en un registro de seguimiento. A continuación, deshabilite los eventos globales en todos los demás registros de seguimiento que escriben en el mismo bucket de Amazon S3. De esta forma solo se escribe un conjunto de eventos globales.

Para obtener más información, consulte Añadir registros en la AWS CloudTrail User Guide.

Registro de eventos de inicio de sesión de usuarios

CloudTrail registra eventos de inicio de sesión en la Consola de administración de AWS, los foros de debate de AWS y AWS Marketplace. CloudTrail registra los intentos de inicio de sesión correctos y fallidos de usuarios y usuarios federados de IAM.

Para Usuario de la cuenta raíz de AWS, solo se registran los eventos de inicio de sesión correctos. Los eventos de inicio de sesión incorrectos realizados por el usuario raíz no quedan registrados en CloudTrail.

Como práctica recomendada de seguridad, AWS no registra el texto del nombre de usuario de IAM introducido si el error de inicio de sesión se ha producido por un nombre de usuario incorrecto. El texto del nombre de usuario está enmascarado por el valor HIDDEN_DUE_TO_SECURITY_REASONS. Para obtener un ejemplo, consulte Ejemplo de evento de error de inicio de sesión provocado por un nombre de usuario incorrecto, más adelante en este tema. El texto del nombre de usuario está oculto, ya que estos errores pueden deberse a errores de usuario. El registro de estos errores podría exponer información potencialmente confidencial. Por ejemplo:

  • Se escribe por error una contraseña en el cuadro de nombre de usuario.

  • Se elige el enlace de una página de inicio de sesión de una cuenta de AWS pero se escribe el número de una cuenta diferente.

  • Se olvida la cuenta en la que se ha iniciado sesión y se 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.

Registro de eventos de inicio de sesión para credenciales temporales

Cuando una entidad principal solicita credenciales temporales, el tipo de entidad principal determina cómo CloudTrail registra el evento. Esto puede ser complicado cuando una entidad principal asume un rol en otra cuenta. Existen varias llamadas a la API para realizar operaciones relacionadas con las operaciones de roles entre cuentas. En primer lugar, la entidad principal llama a una API de AWS STS para recuperar las credenciales temporales. Dicha operación se registra en la cuenta que realiza la llamada y en la cuenta donde se realiza la operación de AWS STS. A continuación, la entidad principal utiliza el rol para realizar otras llamadas a la API en la cuenta del rol asumido.

Puede utilizar la clave de condición aws:RoleSessionName para exigir que los usuarios proporcionen un nombre de sesión específico cuando asuman un rol. Por ejemplo, puede requerir que los usuarios de IAM especifiquen su propio nombre de usuario como nombre de sesión. Esto facilita a los administradores que están revisando los registros de AWS CloudTrail saber quién ha realizado una acción. Para obtener más información, consulte aws:RoleSessionName.

En la tabla siguiente se muestra cómo CloudTrail registra distinta información para las llamadas API que generan credenciales temporales.

Tipo de elemento principal API STS Identidad de usuario en el registro de CloudTrail para la cuenta del intermediario Identidad de usuario en el registro de CloudTrail para la cuenta del rol asumido Identidad de usuario en el registro de CloudTrail para llamadas a la API posteriores del rol
Credenciales de usuario Usuario de la cuenta raíz de AWS GetSessionToken Identidad de usuario raíz La cuenta propietaria del rol es la misma que la cuenta a la que se llama Identidad de usuario raíz
IAM usuario GetSessionToken Identidad de usuario de IAM La cuenta propietaria del rol es la misma que la cuenta a la que se llama Identidad de usuario de IAM
IAM usuario GetFederationToken Identidad de usuario de IAM La cuenta propietaria del rol es la misma que la cuenta a la que se llama Identidad de usuario de IAM
IAM usuario AssumeRole Identidad de usuario de IAM Número de cuenta e ID principal (si se trata de un usuario) o elemento principal del servicio de AWS Solo identidad de rol (ningún usuario)
Usuario autenticado externamente AssumeRoleWithSAML n/a Identidad de usuario de SAML Solo identidad de rol (ningún usuario)
Usuario autenticado externamente AssumeRoleWithWebIdentity n/a Identidad de usuario web o de OIDC Solo identidad de rol (ningún usuario)

Ejemplo de eventos de API de IAM en el registro de CloudTrail

Los archivos de log de CloudTrail incluyen eventos con formato JSON. Un evento de API representa una solicitud de API única e incluye información sobre la entidad principal, la acción solicitada, los parámetros y la fecha y la hora de la acción.

Ejemplo de evento de API de IAM en un archivo de registro de CloudTrail

En el ejemplo siguiente se muestra una entrada de registro de CloudTrail para una solicitud realizada para la acción GetUserPolicy de IAM.

{ "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 de la información de este evento, puede determinar que la solicitud se realizó para obtener una política de usuario denominada ReadOnlyAccess-JaneDoe-201407151307 para el usuario JaneDoe, tal y como se especifica en el elemento requestParameters. También puede ver que la solicitud fue realizada por un usuario de IAM denominado JaneDoe el 15 de julio de 2014 a las 21:40 h (UTC). En este caso, la solicitud se originó en la Consola de administración de AWS, tal y como puede observar en el elemento userAgent.

Ejemplo de eventos de API de AWS STS en el registro de CloudTrail

Los archivos de log de CloudTrail incluyen eventos con formato JSON. Un evento de API representa una solicitud de API única e incluye información sobre la entidad principal, la acción solicitada, los parámetros y la fecha y la hora de la acción.

Ejemplo de eventos de API AWS STS entre cuentas en archivos de registro de CloudTrail

El usuario de IAM denominado JohnDoe de la cuenta 777788889999 llama a la acción AssumeRole de AWS STS para asumir el rol de EC2-dev en la cuenta 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" }

En el segundo ejemplo se muestra la entrada de registro de CloudTrail (111122223333) de la cuenta del rol asumido para la misma solicitud.

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

Ejemplo de evento de API de encadenamiento de roles AWS STS en el archivo de registro de CloudTrail

En el ejemplo siguiente se muestra una entrada de registro CloudTrail para una solicitud realizada por John Doe en la cuenta 111111111111. John utilizó previamente su usuario JohnDoe para asumir el rol JohnRole1. Para esta solicitud, utiliza las credenciales de ese rol para asumir el rol JonRole2. Esto se conoce como encadenamiento de roles. John pasa dos etiquetas de sesión en la solicitud. Establece esas dos etiquetas como transitivas. La solicitud hereda la etiqueta Department como transitiva porque John la estableció como transitiva cuando asumió JohnRole1. Para obtener más información acerca de las claves transitivas en las cadenas de roles, consulte Encadenamiento de roles con etiquetas de sesión.

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

Ejemplo de evento de API AWS STS de servicio de AWSen un archivo de registro de CloudTrail

En el siguiente ejemplo se muestra una entrada de registro de CloudTrailpara una solicitud realizada por un servicio de AWS que llama otra API de servicio con los permisos de un rol de servicio. Muestra la entrada de registro de CloudTrail de la solicitud realizada en la cuenta 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" }

Ejemplo de evento de API de AWS STS de SAML en un archivo de registro de CloudTrail

En el ejemplo siguiente se muestra una entrada de registro de CloudTrail para una solicitud realizada para la acción AWS STS AssumeRoleWithSAML. La solicitud incluye los atributos de SAML CostCenter y Project que se pasan a través de la aserción SAML como etiquetas de sesión. Esas etiquetas se establecen como transitivas para que persistan en escenarios de encadenamiento de roles.

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

Ejemplo de evento de API AWS STS de identidad web en un archivo de registro de CloudTrail

En el ejemplo siguiente se muestra una entrada de registro de CloudTrail para una solicitud realizada para la acción AWS STS AssumeRoleWithWebIdentity. La solicitud incluye los atributos CostCenter y Project que se pasan a través del token de proveedor de identidad como etiquetas de sesión. Esas etiquetas se establecen como transitivas para que persistan en escenarios de encadenamiento de roles.

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

Ejemplo de eventos de inicio de sesión en el registro de CloudTrail

Los archivos de log de CloudTrail incluyen eventos con formato JSON. Un evento de inicio de sesión representa una única solicitud de inicio de sesión e incluye información sobre el principal de inicio de sesión, la región y la fecha y la hora de la acción.

Ejemplo de evento de inicio de sesión correcto en un archivo de registro de CloudTrail

En el ejemplo siguiente se muestra una entrada de log de CloudTrail para un evento de inicio de sesión correcto.

{ "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 obtener más detalles sobre la información incluida en los archivos de registro de CloudTrail, consulte Referencia de eventos de CloudTrail en la AWS CloudTrail User Guide.

Ejemplo de evento de error de inicio de sesión en un archivo de registro de CloudTrail

En el ejemplo siguiente se muestra una entrada de log de CloudTrail para un evento de inicio de sesión incorrecto.

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

A partir de esta información, puede determinar que el intento de inicio de sesión fue realizado por un usuario de IAM denominado JaneDoe, tal y como se muestra en el elemento userIdentity. También puede ver que se ha producido un error en el intento de inicio de sesión, tal y como se muestra en el elemento responseElements. Puede ver que JaneDoe intentó iniciar sesión en la consola de Amazon SNS el 8 de julio de 2014 a las 17:35 h (UTC).

Ejemplo de evento de error de inicio de sesión provocado por un nombre de usuario incorrecto

En el siguiente ejemplo se muestra una entrada de registro de CloudTrail para un evento de inicio de sesión incorrecto que el usuario ha provocado al introducir un nombre de usuario incorrecto. AWS enmascara el texto de userName con HIDDEN_DUE_TO_SECURITY_REASONS para evitar la revelación de información potencialmente confidencial.

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