Claves de contexto de condición de IAM y AWS STS - AWS Identity and Access Management

Claves de contexto de condición de IAM y AWS STS

Puede utilizar el elemento Condition en una política JSON para probar el valor de las claves que se incluyen en el contexto de solicitud de todas las solicitudes de AWS. Estas claves proporcionan información sobre la propia solicitud o sobre los recursos a los que se refiere. Puede comprobar que las claves han especificado valores antes de permitir la acción solicitada por el usuario. De este modo, dispondrá de control detallado sobre cuándo las instrucciones de la política de JSON coinciden o no coinciden con una solicitud entrante. Para obtener información sobre cómo utilizar el elemento Condition en una política de JSON, consulte Elemento de la política de JSON de IAM: Condition.

En este tema se describen las claves definidas y proporcionadas por el servicio de IAM (con el prefijo iam:) y el servicio AWS Security Token Service (AWS STS) (con un prefijo sts:). Existen otros servicios de AWS que también proporcionan claves específicas del servicio relevantes para las acciones y los recursos definidos por dicho servicio. Para obtener más información, consulte Acciones, recursos y claves de condición para servicios de AWS. La documentación de un servicio que admite las claves de condición a menudo dispone de información adicional. Por ejemplo, para obtener información acerca de las claves que puede utilizar en las políticas de recursos de Amazon S3, consulte las Claves de política de Amazon S3 en la Guía para desarrolladores de Amazon Simple Storage Service.

Claves disponibles para IAM

Puede utilizar las siguientes claves de condición en políticas que controlan el acceso a los recursos de IAM:

iam:AssociatedResourceArn

Funciona con operadores ARN.

Especifica el ARN del recurso al que se asociará este rol en el servicio de destino. El recurso generalmente pertenece al servicio al que la entidad principal pasa el rol. A veces, el recurso puede pertenecer a un tercer servicio. Por ejemplo, puede pasar un rol a Amazon EC2 Auto Scaling para que se utilice en una instancia Amazon EC2. En este caso, la condición coincidiría con el ARN de la instancia Amazon EC2.

Esta clave de condición solo se aplica a la acción PassRole de una política. No se puede usar para limitar cualquier otra acción.

Utilice esta clave de condición en una política para permitir que una entidad pase un rol, pero solo si ese rol está asociado con el recurso especificado. Puede utilizar caracteres comodín (*) para permitir operaciones realizadas en un tipo específico de recurso sin restringir la región o el ID de recurso. Por ejemplo, puede permitir que un usuario o rol de IAM pasen cualquier rol al servicio Amazon EC2 para que se utilice con instancias en la región "us-east-1" o "us-west-1". No se permitiría al usuario o rol de IAM pasar roles a otros servicios, ni se permite a Amazon EC2 usar el rol con instancias en otras regiones.

{ "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringEquals": {"iam:PassedToService": "ec2.amazonaws.com"}, "StringLike": { "iam:AssociatedResourceARN": [ "arn:aws:ec2:us-east-1:111122223333:instance/*", "arn:aws:ec2:us-west-1:111122223333:instance/*" ] } } }
nota

Los servicios de AWS que admiten iam:PassedToService admiten también esta clave de condición.

iam: AWSServiceName

Funciona con operadores de cadena.

Especifica el servicio de AWS al que está asociado este rol.

iam:OrganizationsPolicyId

Funciona con operadores de cadena.

Comprueba que la política con el ID de AWS Organizations especificado coincide con la política que se utiliza en la solicitud. Para ver un ejemplo de política de IAM que utiliza esta clave de condición, consulte IAM: Ver la información de últimos accesos para una política de Organizaciones..

iam: PassedToService

Funciona con operadores de cadena.

Especifica el principal del servicio al que puede pasarse un rol. Esta clave de condición solo se aplica a la acción PassRole de una política. No se puede usar para limitar cualquier otra acción.

Cuando utilice esta clave de condición en una política, especifique el servicio mediante una entidad principal del servicio. El principal de un servicio es un nombre de servicio que puede especificarse en el elemento Principal de una política. El formato habitual es: SERVICE_NAME_URL.amazonaws.com.

Puede usar iam:PassedToService para que los usuarios solo puedan transferir roles a servicios específicos. Por ejemplo, un usuario puede crear un rol de servicio que confíe en CloudWatch para escribir en su nombre datos de registro en un bucket de Amazon S3. A continuación, el usuario debe asociar una política de permisos y una política de confianza al nuevo rol de servicio. En este caso, la política de confianza debe especificar cloudwatch.amazonaws.com en el elemento Principal. Para ver una política que permita al usuario pasar la función a CloudWatch, consulte IAM: pasar una función de IAM a un servicio de AWS específico.

Con esta clave de condición puede asegurar que los usuarios solo crearán roles de servicio para los servicios que especifique. Por ejemplo, si un usuario con la política anterior intenta crear un rol de servicio para Amazon EC2, la operación fallará. El error se produce porque el usuario no tiene permiso para pasar el rol a Amazon EC2.

nota

Algunos servicios, como AWS CodeBuild y AWS CodeCommit no admiten esta clave de condición.

iam:PermissionsBoundary

Funciona con operadores de cadena.

Comprueba que la política especificada se asocia como límite de permisos por el recursos principal de IAM. Para obtener más información, consulte Límites de permisos para las entidades de IAM

iam:PolicyARN

Funciona con operadores ARN.

Comprueba el nombre de recurso de Amazon (ARN) de una política administrada en las solicitudes que impliquen una política administrada. Para obtener más información, consulte Control del acceso a políticas.

iam:ResourceTag/key-name

Funciona con operadores de cadena.

Comprueba que la etiqueta asociada al recurso de identidad (usuario o rol) coincida con el valor y el nombre de la clave especificada.

nota

IAM no admite el uso de la clave de condición global aws:ResourceTag. AWS STS admite tanto la clave IAM como la clave global.

Puede añadir atributos personalizados a un usuario o rol en forma de un par de clave-valor. Para obtener más información acerca de las etiquetas de IAM, consulte Etiquetado de usuarios y roles de IAM. Puede utilizar iam:ResourceTag para controlar el acceso a usuarios y roles de IAM. No obstante, debido a que IAM no es compatible con etiquetas de grupos, no puede utilizar etiquetas para controlar el acceso a grupos.

En este ejemplo se muestra cómo crear una política que permite eliminar usuarios con la etiqueta status=terminated.Para utilizar esta política, sustituya el texto rojo en cursiva del ejemplo de política por su propia información. A continuación, siga las instrucciones en crear una política o editar una política.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:DeleteUser", "Resource": "*", "Condition": {"StringLike": {"iam:ResourceTag/status": "terminated"}} }] }

Claves disponibles para las identidades web federadas de AWS

Puede utilizar identidad web federada para otorgar credenciales de seguridad temporales a los usuarios autenticados a través de un proveedor de identidades (IdP). Algunos ejemplos de este tipo de proveedores incluyen Login with Amazon, Amazon Cognito, Google o Facebook. En ese caso habrá claves de condición adicionales disponibles cuando se utilicen las credenciales de seguridad temporales al realizar una solicitud. Puede usar esas claves para crear políticas que limita el acceso de los usuarios federados a los recursos asociados a un proveedor, aplicación o usuario específico. Estas claves suelen utilizarse en la política de confianza de un rol.

aws:FederatedProvider

Funciona con operadores de cadena.

La clave FederatedProvider identifica al proveedor de identidad que se utilizó para autenticar al usuario. Por ejemplo, si el usuario se ha autenticado con Amazon Cognito, la clave incluirá cognito-identity.amazonaws.com. Del mismo modo, si el usuario se ha autenticado con Login with Amazon, la clave incluirá el valor www.amazon.com. Puede utilizar la clave de una política de recursos como la siguiente, que utiliza la clave aws:FederatedProvider como una variable de la política en el ARN de un recurso. La política permite a cualquier usuario autenticado mediante un proveedor de identidad obtener los objetos de una carpeta de un bucket de Amazon S3. Sin embargo, el bucket debe ser específico del proveedor con el que el usuario se ha autenticado.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::BUCKET-NAME/${aws:FederatedProvider}/*" } }
amr

Funciona con operadores de cadena.

Ejemplo: cognito-identity.amazonaws.com.com:amr

Si utiliza Amazon Cognito para la identidad federada de web, la clave cognito-identity.amazonaws.com:amr (Authentication Methods Reference) incluye la información de inicio de sesión sobre el usuario. La clave comporta muchos valores, lo que significa que el usuario la prueba en una política utilizando operadores de definición de condición. La clave puede contener los siguientes valores:

  • Si el usuario no está autenticado, la clave contiene únicamente unauthenticated.

  • Si el usuario está autenticado, la clave contiene el valor authenticated y el nombre del proveedor de inicio de sesión utilizado en la llamada (graph.facebook.com, accounts.google.com o www.amazon.com).

A modo de ejemplo, la siguiente condición en la política de confianza de un rol de Amazon Cognito prueba si el usuario no está autenticado:

"Condition": { "StringEquals": { "cognito-identity.amazonaws.com:aud": "us-east-2:identity-pool-id" }, "ForAnyValue:StringLike": { "cognito-identity.amazonaws.com:amr": "unauthenticated" } }
aud

Funciona con operadores de cadena.

Utilice la clave de condición de aud para verificar que el ID de cliente de Google o el ID del grupo de identidades de Amazon Cognito coincide con el que ha especificado en la política. Puede utilizar la clave aud con la clave sub del mismo proveedor de identidad.

Ejemplos:

  • accounts.google.com:aud

  • cognito-identity.amazonaws.com:aud

La clave de condición accounts.google.com:aud coincide con los siguientes campos Token de ID de Google.

  • aud para los ID de cliente de Google OAuth 2.0 de su aplicación, cuando el campo azp no está configurado. Cuando se establece el campo azp, el campo aud coincide con la clave de condición accounts.google.com:oaud.

  • azp cuando se establece el campo azp. Esto puede suceder en aplicaciones híbridas donde una aplicación web y una aplicación de Android tienen un ID de cliente de Google OAuth 2.0 diferente pero comparten el mismo proyecto de API de Google.

Para obtener más información sobre los campos aud y azp de Google, consulte la Guía de OpenID Connect de la plataforma de identidad de Google.

Si escribe una política con la clave de condición accounts.google.com:aud, debe saber si la aplicación es una aplicación híbrida que establece el campo azp.

azp Campo no definido

La siguiente política de ejemplo funciona para las aplicaciones no híbridas que no establecen el campo azp. En este caso, el valor del campo aud del token de ID de Google coincide con los valores de la clave de condición accounts.google.com:aud y accounts.google.com:oaud.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": {"Federated": "accounts.google.com"}, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "accounts.google.com:aud": "aud-value", "accounts.google.com:oaud": "aud-value", "accounts.google.com:sub": "sub-value" } } } ] }

azp Especificación de campos

La siguiente política de ejemplo funciona para las aplicaciones híbridas que no establecen el campo azp. En este caso, el valor del campo aud del token de ID de Google solo coincide con el valor de la clave de condición accounts.google.com:oaud. El valor del campo azp coincide con el valor de la clave de condición accounts.google.com:aud.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": {"Federated": "accounts.google.com"}, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "accounts.google.com:aud": "azp-value", "accounts.google.com:oaud": "aud-value", "accounts.google.com:sub": "sub-value" } } } ] }
id

Funciona con operadores de cadena.

Ejemplos:

  • graph.facebook.com:app_id

  • graph.facebook.com:id

  • www.amazon.com:app_id

  • www.amazon.com:user_id

Utilice estas claves para verificar que el ID de aplicación (o sitio) o el ID de usuario coincide con el que ha especificado en la política. Esto funciona para Facebook o inicio de sesión con Amazon. Puede utilizar la clave app_id con la clave id del mismo proveedor de identidad.

oaud

Funciona con operadores de cadena.

Ejemplo: accounts.google.com:oaud

Si utiliza Google para las identidades web federadas, esta clave especifica la audiencia de Google (aud) para la que está prevista este token de ID. Debe ser uno de los ID de cliente de OAuth 2.0 de su aplicación.

sub

Funciona con operadores de cadena.

Ejemplos:

  • accounts.google.com:sub

  • cognito-identity.amazonaws.com:sub

Utilice estas claves para verificar que el ID de usuario coincide con el que ha especificado en la política. Puede utilizar la clave sub con la clave aud del mismo proveedor de identidad.

Más información sobre las identidades web federadas

Para obtener más información sobre las identidades web federadas, consulte lo siguiente:

Claves disponibles para la federación AWS STS basada en SAML

Si trabaja con federación basada en SAML utilizando AWS Security Token Service (AWS STS), puede incluir claves de condición adicionales en la política.

Políticas de confianza de roles de SAML

En la política de confianza de un rol, puede incluir las siguientes claves, que le ayudarán a determinar si el intermediario puede asumir el rol. Excepto saml:doc, todos los valores se derivan de la aserción de SAML. Todos los elementos de la lista están disponibles en el editor visual de la consola IAM al crear o editar una política con condiciones. Los elementos marcados con [] pueden tener un valor que sea una lista del tipo especificado.

saml:aud

Funciona con operadores de cadena.

Es una dirección URL de punto de enlace a la que se presentan las aserciones de SAML. El valor de esta clave proviene del campo SAML Recipient de la aserción, no del campo Audience.

saml:commonName[]

Funciona con operadores de cadena.

Se trata de un atributo commonName.

saml:cn[]

Funciona con operadores de cadena.

Es un atributo eduOrg.

saml:doc

Funciona con operadores de cadena.

Representa al principal que se utilizó para asumir el rol. El formato es ID-cuenta/nombre-fácil-de-recordar-del-proveedor, como 123456789012/SAMLProviderName. El valor ID-cuenta hace referencia a la cuenta que posee el proveedor SAML.

saml:edupersonaffiliation[]

Funciona con operadores de cadena.

Es un atributo eduPerson.

saml:edupersonassurance[]

Funciona con operadores de cadena.

Es un atributo eduPerson.

saml:edupersonentitlement[]

Funciona con operadores de cadena.

Es un atributo eduPerson.

saml:edupersonnickname[]

Funciona con operadores de cadena.

Es un atributo eduPerson.

saml:edupersonorgdn

Funciona con operadores de cadena.

Es un atributo eduPerson.

saml:edupersonorgunitdn[]

Funciona con operadores de cadena.

Es un atributo eduPerson.

saml:edupersonprimaryaffiliation

Funciona con operadores de cadena.

Es un atributo eduPerson.

saml:edupersonprimaryorgunitdn

Funciona con operadores de cadena.

Es un atributo eduPerson.

saml:edupersonprincipalname

Funciona con operadores de cadena.

Es un atributo eduPerson.

saml:edupersonscopedaffiliation[]

Funciona con operadores de cadena.

Es un atributo eduPerson.

saml:edupersontargetedid[]

Funciona con operadores de cadena.

Es un atributo eduPerson.

saml:eduorghomepageuri[]

Funciona con operadores de cadena.

Es un atributo eduOrg.

saml:eduorgidentityauthnpolicyuri[]

Funciona con operadores de cadena.

Es un atributo eduOrg.

saml:eduorglegalname[]

Funciona con operadores de cadena.

Es un atributo eduOrg.

saml:eduorgsuperioruri[]

Funciona con operadores de cadena.

Es un atributo eduOrg.

saml:eduorgwhitepagesuri[]

Funciona con operadores de cadena.

Es un atributo eduOrg.

saml:givenName[]

Funciona con operadores de cadena.

Se trata de un atributo givenName.

saml:iss

Funciona con operadores de cadena.

Se trata del emisor representado por un URN.

saml:mail[]

Funciona con operadores de cadena.

Se trata de un atributo mail.

saml:name[]

Funciona con operadores de cadena.

Se trata de un atributo name.

saml:namequalifier

Funciona con operadores de cadena.

Un valor hash basado en el nombre descriptivo del proveedor SAML. El valor es la concatenación de los siguientes valores, en orden y separados por un carácter '/':

  1. El valor de respuesta Issuer (saml:iss)

  2. El ID de la cuenta de AWS.

  3. El nombre descriptivo (la última parte del ARN) del proveedor SAML en IAM

La concatenación del ID de cuenta y del nombre fácil de recordar del proveedor SAML está disponible para las políticas de IAM como clave saml:doc. Para obtener más información, consulte Identificación única de los usuarios en la federación basada en SAML.

saml:organizationStatus[]

Funciona con operadores de cadena.

Es un atributo organizationStatus.

saml:primaryGroupSID[]

Funciona con operadores de cadena.

Se trata de un atributo primaryGroupSID.

saml:sub

Funciona con operadores de cadena.

Se trata del asunto de la demanda, que incluye un valor que identifica de forma unívoca a un usuario individual dentro de una organización (por ejemplo, _cbb88bf52c2510eabe00c1642d4643f41430fe25e3).

saml:sub_type

Funciona con operadores de cadena.

Esta clave puede tener el valor persistent, transient o ser el URI Format completo de los elementos Subject y NameID utilizados en la aserción de SAML. El valor persistent indica que el valor de saml:sub es el mismo para un usuario entre sesiones. Si el valor es transient, el usuario tendrá un valor saml:sub diferente para cada sesión. Para obtener información sobre el atributo NameID del elemento Format, consulte Configuración de aserciones SAML para la respuesta de autenticación.

saml:surname[]

Funciona con operadores de cadena.

Se trata de un atributo surnameuid.

saml:uid[]

Funciona con operadores de cadena.

Se trata de un atributo uid.

saml:x500UniqueIdentifier[]

Funciona con operadores de cadena.

Es un atributo x500UniqueIdentifier.

Para obtener información general sobre los atributos eduPerson y eduOrg, consulte el sitio web Internet2. Para ver una lista de eduPerson atributos, consulte eduPerson Object Class Specification (201203).

Las claves de condición cuyo tipo es una lista pueden incluir múltiples valores. Para crear condiciones en la política para los valores de lista, puede utilizar operadores de definición (ForAllValues, ForAnyValue). Por ejemplo, a fin de permitir que todos los usuarios cuya afiliación sea "profesorado" o "personal" (pero no "estudiante"), puede utilizar una condición como la siguiente:

"Condition": { "ForAllValues:StringLike": { "saml:edupersonaffiliation":[ "faculty", "staff"] } }

Políticas de permisos de funciones SAML

En la política de permisos de una función para la federación SAML que define a qué pueden acceder los usuarios en AWS, puede incluir las siguientes claves:

saml:namequalifier

Funciona con operadores de cadena.

Contiene un valor hash que representa la combinación de los valores saml:doc y saml:iss. Se utiliza como calificador del espacio de nombres; la combinación de saml:namequalifier y saml:sub identifica a un usuario de forma exclusiva.

saml:sub

Funciona con operadores de cadena.

Se trata del asunto de la demanda, que incluye un valor que identifica de forma unívoca a un usuario individual dentro de una organización (por ejemplo, _cbb88bf52c2510eabe00c1642d4643f41430fe25e3).

saml:sub_type

Funciona con operadores de cadena.

Esta clave puede tener el valor persistent, transient o ser el URI Format completo de los elementos Subject y NameID utilizados en la aserción de SAML. El valor persistent indica que el valor de saml:sub es el mismo para un usuario entre sesiones. Si el valor es transient, el usuario tendrá un valor saml:sub diferente para cada sesión. Para obtener información sobre el atributo NameID del elemento Format, consulte Configuración de aserciones SAML para la respuesta de autenticación.

Para obtener más información sobre el uso de las claves, consulte Acerca de la federación basada en SAML 2.0.

Claves disponibles para AWS STS

Puede utilizar las siguientes claves de condición en políticas de confianza de rol de IAM para los roles que se asumen utilizando operaciones de AWS Security Token Service (AWS STS).

sts:AWSServiceName

Funciona con operadores de cadena.

Use esta clave para especificar un servicio donde se puede usar un token de portador. Cuando utilice esta clave de condición en una política, especifique el servicio mediante una entidad principal del servicio. El principal de un servicio es un nombre de servicio que puede especificarse en el elemento Principal de una política. Por ejemplo, codeartifact.amazonaws.com es el AWS principal de servicio CodeArtifact.

Algunos servicios de AWS requieren que tenga permiso para obtener un token al portador del servicio AWS STS para poder acceder a sus recursos mediante programación. Por ejemplo, AWS CodeArtifact requiere que los principales usen tokens portador para realizar algunas operaciones. El comando aws codeartifact get-authorization-token devuelve un token portador. A continuación, puede usar el token portador para realizar AWS operaciones de CodeArtifact. Para obtener más información acerca de los tokens al portador, consulte Uso de tokens al portador.

Disponibilidad – Esta clave está presente en las solicitudes que reciben un token de portador. No puedes hacer una llamada directa para AWS STS obtener una ficha al portador. Cuando realiza algunas operaciones en otros servicios, el servicio solicita el token de portador en su nombre.

Puede usar esta clave de condición para permitir a los principales obtener un token de portador para usarlo con un servicio específico.

sts:DurationSeconds

Funciona con operadores numéricos.

Use esta clave para especificar la duración (en segundos) que un principal puede usar al obtener un token portador.

Algunos servicios de AWS requieren que tenga permiso para obtener un token al portador del servicio AWS STS para poder acceder a sus recursos mediante programación. Por ejemplo, AWS CodeArtifact requiere que los principales usen tokens portador para realizar algunas operaciones. El comando de aws codeartifact get-authorization-token devuelve un token portador. A continuación, puede usar el token portador para realizar AWS operaciones de CodeArtifact. Para obtener más información acerca de los tokens al portador, consulte Uso de tokens al portador.

Disponibilidad – Esta clave está presente en las solicitudes que reciben un token de portador. No puedes hacer una llamada directa para AWS STS obtener una ficha al portador. Cuando realiza algunas operaciones en otros servicios, el servicio solicita el token de portador en su nombre. La clave no está presente para las AWS STS operaciones assume-rol.

sts:ExternalId

Funciona con operadores de cadena.

Utilice esta clave para exigir que una entidad principal proporcione un identificador específico al asumir un rol de IAM.

Disponibilidad – Esta clave está presente en la solicitud cuando el principal proporciona un ID externo mientras asume un rol usando AWS CLI o AWS API.

Un identificador único que podría ser necesario al asumir un rol en otra cuenta. Si el administrador de la cuenta a la que pertenece el rol le ha proporcionado un ID externo, entonces proporcione dicho valor en el parámetro ExternalId. Este valor puede ser cualquier cadena como, por ejemplo, una frase de contraseña o un número de cuenta. La función principal del ID externo es abordar y prevenir el problema del suplente confuso. Para obtener más información acerca del ID externo y el problema del suplente confuso, consulte Cómo utilizar un ID externo al otorgar acceso a los recursos de AWS a terceros.

El valor ExternalId debe tener 2 caracteres como mínimo y 1224 como máximo. El valor debe ser alfanumérico sin espacio en blanco. También puede incluir los símbolos siguientes: más (+), igual (=), coma (,), punto (.), arroba (@), dos puntos (:), barra inclinada (/) y guion (-).

sts:RoleSessionName

Funciona con operadores de cadena.

Utilice esta clave para comparar el nombre de sesión que especifica una entidad principal al asumir un rol con el valor especificado en la política.

Disponibilidad – Esta clave está presente en la solicitud cuando el principal asume el rol mediante AWS Management Console, el comando assume-role CLI o la operación AssumeRole API.

Puede utilizar esta clave en una política de confianza de rol 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. Después de que el usuario de IAM asuma el rol, la actividad aparece en los registros de AWS CloudTrail con el nombre de sesión que coincide con su nombre de usuario. Esto facilita a los administradores determinar en qué usuario realizó una acción específica en AWS.

La siguiente política de confianza de rol requiere que los usuarios de IAM de la cuenta 111122223333 proporcionen su nombre de usuario de IAM como nombre de sesión cuando asuman el rol. Este requisito se aplica utilizando lavariable de condición aws:username en la clave de condición. Esta política permite a los usuarios de IAM asumir el rol al que está asociada la política. Esta política no permite a nadie que utilice credenciales temporales asumir el rol porque la variable username solo está presente para los usuarios de IAM.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "RoleTrustPolicyRequireUsernameForSessionName", "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": {"AWS": "arn:aws:iam::111122223333:root"}, "Condition": { "StringLike": {"sts:RoleSessionName": "${aws:username}"} } } ] }

Cuando un administrador ve el registro de AWS CloudTrail de una acción, puede comparar el nombre de la sesión con los nombres de usuario en su cuenta. En el ejemplo siguiente, el usuario denominado matjac realizó la operación utilizando el rol denominado MateoRole. El administrador puede entonces ponerse en contacto con Mateo Jackson, quien tiene el nombre del usuario matjac.

"assumedRoleUser": { "assumedRoleId": "AROACQRSTUVWRAOEXAMPLE:matjac", "arn": "arn:aws:sts::111122223333:assumed-role/MateoRole/matjac" }

Si permite el acceso entre cuentas mediante roles, los usuarios de una cuenta pueden asumir un rol en otra cuenta. El ARN del usuario de rol asumido indicado en CloudTrail incluye la cuenta donde existe el rol. No incluye la cuenta del usuario que asumió el rol. Los usuarios son únicos solo dentro de una cuenta. Por lo tanto, se recomienda utilizar este método para comprobar los registros de CloudTrail solo para los roles que asumen los usuarios en las cuentas que administra. Los usuarios pueden usar el mismo nombre de usuario en varias cuentas.

sts:TransitiveTagKeys

Funciona con operadores de cadena.

Utilice esta clave para comparar las claves de etiqueta de sesión transitiva de la solicitud con las especificadas en la política.

Disponibilidad – Esta clave está presente en la solicitud cuando se realiza una solicitud con credenciales de seguridad temporales. Estas incluyen credenciales creadas mediante cualquier operación assume-role o la GetFederationToken operación.

Cuando realiza una solicitud con credenciales de seguridad temporales, el contexto de solicitud incluye la clave de contexto aws:PrincipalTag. Esta clave incluye una lista de etiquetas de sesión, etiquetas de sesión transitivas y etiquetas de rol. Las etiquetas de sesión transitivas son etiquetas que persisten en todas las sesiones posteriores cuando se utilizan las credenciales de sesión para asumir otro rol. Asumir un rol de otro se llama encadenamiento de roles.

Puede utilizar esta clave de condición en una política para requerir que se establezcan etiquetas de sesión específicas como transitivas al asumir un rol o federar un usuario.