

# Claves de contexto de condición de IAM y AWS STS
<a name="reference_policies_iam-condition-keys"></a>

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 [Elementos de política JSON de IAM: Condition](reference_policies_elements_condition.md).

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](reference_policies_actions-resources-contextkeys.html). 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 sobre las claves que puede utilizar en las políticas de recursos de Amazon S3, consulte [Claves de política de Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazon-s3-policy-keys.html#AvailableKeys-iamV2) en la *Guía del usuario de Amazon Simple Storage Service*.

**Topics**
+ [Claves disponibles para IAM](#available-keys-for-iam)
+ [Claves disponibles para las federaciones de identidades AWS de OIDC](#condition-keys-wif)
+ [Claves disponibles para la federación AWS STS basada en SAML](#condition-keys-saml)
+ [Claves de contexto de federación de AWS STS basadas en SAML multiservicios](#cross-condition-keys-saml)
+ [Claves disponibles para AWS STS](#condition-keys-sts)

## Claves disponibles para IAM
<a name="available-keys-for-iam"></a>

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](reference_policies_elements_condition_operators.md#Conditions_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 que utilice en una instancia de Amazon EC2. En este caso, la condición coincidiría con el ARN de la instancia de Amazon EC2.   
Esta clave de condición solo se aplica a la acción [PassRole](id_roles_use_passrole.md) de una política. No se puede utilizar para limitar cualquier otra acción.   
Cuando se utiliza la condición `iam:AssociatedResourceArn` en una política para restringir la acción [PassRole](id_roles_use_passrole.md), se deben tener en cuenta algunas consideraciones especiales si el objetivo de la política es definir el acceso para la acción [AddRoleToInstanceProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AddRoleToInstanceProfile.html). En este caso, no se puede especificar un ID de región o instancia en el ARN de la instancia de EC2. El valor del ARN debe ser `arn:aws:ec2:*:CallerAccountId:instance/*`. El uso de cualquier otro valor de ARN puede provocar resultados de evaluación inesperados.
Utilice esta clave de condición en una política basada en identidades para permitir que una entidad pase un rol, pero solo si ese rol está asociado con el recurso especificado. Por ejemplo, puede permitir que un usuario o rol de IAM pasen cualquier rol al servicio de Amazon EC2 para que se utilice con instancias en la Cuenta de AWS. No se permitiría al usuario o rol de IAM pasar roles a otros servicios.  

```
{
    "Effect": "Allow",
    "Action": "iam:PassRole",
    "Resource": "*",
    "Condition": {
        "StringEquals": {
            "iam:PassedToService": "ec2.amazonaws.com"
        },
        "ArnLike": {
            "iam:AssociatedResourceARN": [
                "arn:aws:ec2:*:111122223333:instance/*"
            ]
        }
    }
}
```
Los servicios de AWS que admiten [iam:PassedToService](#ck_PassedToService) admiten también esta clave de condición.

**iam: AWSServiceName**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
Especifica el servicio de AWS al que está asociado este rol.  
La operación de la API de [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceLinkedRole.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceLinkedRole.html) admite esta clave de condición.  
Para obtener información sobre los servicios que admiten el uso de roles vinculados a servicios, consulte [Servicios de AWS que funcionan con IAM](reference_aws-services-that-work-with-iam.md) y busque los servicios que tengan **Yes **en la columna **Service-Linked Role**. Elija una opción **Sí** con un enlace para ver la documentación acerca del rol vinculado al servicio en cuestión.
En este ejemplo, permite que una entidad cree un rol vinculado al servicio mediante el uso de la operación de la API de [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceLinkedRole.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceLinkedRole.html) si el nombre de servicio es *access-analyzer.amazonaws.com*.    
****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [{
       "Effect": "Allow",
       "Action": "iam:CreateServiceLinkedRole",
       "Resource": "*",
       "Condition": {
         "StringLike": {
           "iam:AWSServiceName": "access-analyzer.amazonaws.com"
         }
       }
     }]
 }
```

**iam: Certificación FIDO**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
Comprueba el nivel de certificación FIDO del dispositivo MFA al registrar una clave de seguridad FIDO. La certificación del dispositivo se obtiene del [Servicio de metadatos (MDS) de FIDO Alliance](https://fidoalliance.org/metadata/). Si el estado o el nivel de certificación de su clave de seguridad FIDO cambia, no se actualizará a menos que el dispositivo no esté registrado y se haya registrado de nuevo para obtener la información de certificación actualizada.  
Valores posibles de L1, L1plus, L2, L2plus, L3, L3plus  
En este ejemplo, registra una clave de seguridad y recupera la certificación FIDO de nivel 1 plus para tu dispositivo.    
****  

```
{
      "Version":"2012-10-17",		 	 	 
      "Statement": [{
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Create"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Activate",
                    "iam:FIDO-certification": "L1plus"
                }
            }
        }
    ]
                  
 }
```

**iam: Certificación FIDO-FIPS-140-2**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
Comprueba el nivel de certificación de validación FIPS-140-2 del dispositivo MFA al registrar una clave de seguridad FIDO. La certificación del dispositivo se obtiene del [Servicio de metadatos (MDS) de FIDO Alliance](https://fidoalliance.org/metadata/). Si el estado o el nivel de certificación de su clave de seguridad FIDO cambia, no se actualizará a menos que el dispositivo no esté registrado y se haya registrado de nuevo para obtener la información de certificación actualizada.  
Valores posibles de L1, L2, L3, L4  
En este ejemplo, registra una clave de seguridad y recupera la certificación FIPS-140-2 de nivel 2 para su dispositivo.    
****  

```
{
      "Version":"2012-10-17",		 	 	 
      "Statement": [{
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Create"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Activate",
                    "iam:FIDO-FIPS-140-2-certification": "L2"
                }
            }
        }
    ]
                  
 }
```

**iam: Certificación FIDO-FIPS-140-3**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
Comprueba el nivel de certificación de validación FIPS-140-3 del dispositivo MFA al registrar una clave de seguridad FIDO. La certificación del dispositivo se obtiene del [Servicio de metadatos (MDS) de FIDO Alliance](https://fidoalliance.org/metadata/). Si el estado o el nivel de certificación de su clave de seguridad FIDO cambia, no se actualizará a menos que el dispositivo no esté registrado y se haya registrado de nuevo para obtener la información de certificación actualizada.  
Valores posibles de L1, L2, L3, L4  
En este ejemplo, registra una clave de seguridad y recupera la certificación FIPS-140-3 de nivel 3 para su dispositivo.    
****  

```
{
      "Version":"2012-10-17",		 	 	 
      "Statement": [{
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Create"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Activate",
                    "iam:FIDO-FIPS-140-3-certification": "L3"
                }
            }
        }
    ]
                  
 }
```

**iam:OrganizationsPolicyId**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
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 una política de ejemplo de IAM que utilice esta clave de condición, consulte [IAM: visualización de la información de acceso reciente al servicio para una política de AWS Organizations](reference_policies_examples_iam_service-accessed-data-orgs.md).

**iam: PassedToService**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
Especifica el principal del servicio al que puede pasarse un rol. Esta clave de condición solo se aplica a la acción [PassRole](id_roles_use_passrole.md) de una política. No se puede utilizar 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 utilizar `iam:PassedToService` para que los usuarios solo puedan transferir roles a servicios específicos. Por ejemplo, un usuario puede crear una [función de servicio](id_roles.md#iam-term-service-role) 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 el rol a CloudWatch, consulte [IAM: pasar una función de IAM a un servicio de AWS específico](reference_policies_examples_iam-passrole-service.md).  
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 una función 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.   
A veces se pasa un rol a un servicio que, a continuación, pasa el rol a otro servicio. `iam:PassedToService` incluye solo el servicio final que asume el rol, no el servicio intermedio que pasa el rol.  
Algunos servicios no admiten esta clave de condición.

**iam:PermissionsBoundary**  
Funciona con [operadores ARN](reference_policies_elements_condition_operators.md#Conditions_ARN).  
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](access_policies_boundaries.md)

**iam:PolicyARN**  
Funciona con [operadores ARN](reference_policies_elements_condition_operators.md#Conditions_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](access_controlling.md#access_controlling-policies). 

**iam: Registrar clave de seguridad**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
Comprueba el estado actual de la activación del dispositivo MFA.  
Valores posibles de `Create` o `Activate`.  
En este ejemplo, registra una clave de seguridad y recupera la certificación FIPS-140-3 de nivel 1 para su dispositivo.    
****  

```
{
      "Version":"2012-10-17",		 	 	 
      "Statement": [{
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Create"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Activate",
                    "iam:FIDO-FIPS-140-3-certification": "L1"
                }
            }
        }
    ]
                  
 }
```

**iam:ResourceTag/{{key-name}}**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
Comprueba que la etiqueta asociada al recurso de identidad (usuario o rol) coincida con el valor y el nombre de la clave especificada.  
IAM y AWS STS admiten tanto la clave de condición `iam:ResourceTag` de IAM como la clave de condición global `aws:ResourceTag`.
Puede agregar atributos personalizados a recursos de IAM en forma de un par de valor de clave. Para obtener más información sobre el etiquetado de recursos de IAM, consulte [Etiquetas para recursos de AWS Identity and Access Management](id_tags.md). Puede utilizar `ResourceTag` para [controlar el acceso](access_tags.md#access_tags_control-resources) a los recursos de AWS, incluidos los recursos 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 podría crear una política basada en identidad que permita eliminar usuarios con la etiqueta **status=terminated**. Para utilizar esta política, sustituya el {{texto en cursiva del marcador}} de la política de ejemplo con su propia información. A continuación, siga las instrucciones en [Crear una política](access_policies_create.md) o [Editar una política](access_policies_manage-edit.md).    
****  

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

**iam:ServiceSpecificCredentialAgeDays**  
Funciona con [operadores numéricos](reference_policies_elements_condition_operators.md#Conditions_Numeric).  
Esta clave de condición limita la creación de credenciales específicas del servicio según su configuración de caducidad. Le permite controlar la antigüedad máxima, en días, de las credenciales específicas del servicio que se pueden crear.  
El intervalo de días válido es de 1 a 36 600 (mínimo 1 día, máximo 36 600 días).  
La operación de la API de [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html) admite esta clave de condición.  
En este ejemplo, permite a un usuario crear credenciales específicas del servicio para el servicio Amazon Bedrock solo si caducan en un plazo de 90 días.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:CreateServiceSpecificCredential",
            "Resource": "arn:aws:iam::111122223333:user/{{username}}",
            "Condition": {
                "StringEquals": {
                    "iam:ServiceSpecificCredentialServiceName": "{{bedrock.amazonaws.com}}"
                },
                "NumericLessThanEquals": {
                    "iam:ServiceSpecificCredentialAgeDays": "{{90}}"
                }
            }
        }
    ]
}
```

**iam:ServiceSpecificCredentialServiceName**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
Especifica qué servicios de AWS se pueden usar al administrar las credenciales específicas del servicio. Esta clave de condición le permite restringir qué servicios de AWS están permitidos para la administración de las credenciales específicas del servicio.  
Las siguientes operaciones de la API admiten esta clave de condición:  
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html)
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceSpecificCredential.html)
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ResetServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ResetServiceSpecificCredential.html)
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateServiceSpecificCredential.html)
Los siguientes servicios son compatibles con las credenciales específicas del servicio con su formato de valor exacto:  
+ `bedrock.amazonaws.com`
+ `cassandra.amazonaws.com`
+ `codecommit.amazonaws.com`
En este ejemplo, permite a un usuario crear credenciales específicas del servicio mediante la operación de la API de [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html) únicamente para el servicio Amazon Bedrock.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:CreateServiceSpecificCredential",
            "Resource": "arn:aws:iam::111122223333:user/{{username}}",
            "Condition": {
                "StringEquals": {
                    "iam:ServiceSpecificCredentialServiceName": "{{bedrock.amazonaws.com}}"
                }
            }
        }
    ]
}
```

**iam:DelegationDuration**  
Funciona con [operadores numéricos](reference_policies_elements_condition_operators.md#Conditions_Numeric).  
Filtra el acceso en función de la duración del acceso temporal solicitado en una solicitud de delegación.  
Los proveedores de productos pueden usar esta clave de condición para controlar la duración máxima que permiten en las solicitudes de delegación enviadas a los clientes. La duración se especifica en segundos y determina cuánto tiempo seguirán siendo válidas las credenciales temporales una vez que el cliente libere el token de intercambio. Esto ayuda a los proveedores de productos a aplicar las políticas internas sobre los límites de duración del acceso en función de su caso de uso.  
La operación de la API de `CreateDelegationRequest` admite esta clave de condición.  
En este ejemplo, solo se permite crear solicitudes de delegación si la duración solicitada es de 7200 segundos (2 horas) o menos.  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:CreateDelegationRequest",
            "Resource": "*",
            "Condition": {
                "NumericLessThanEquals": {
                    "iam:DelegationDuration": "7200"
                }
            }
        }
    ]
}
```

**iam:NotificationChannel**  
Funciona con [operadores ARN](reference_policies_elements_condition_operators.md#Conditions_ARN).  
Filtra el acceso en función del ARN del tema de Amazon SNS especificado para recibir las notificaciones de solicitudes de delegación.  
Los proveedores de productos pueden usar esta clave de condición para restringir qué temas de SNS pueden usarse para las notificaciones de solicitudes de delegación en la llamada a la API CreateDelegationRequest. Los proveedores de productos deben especificar un tema de SNS para recibir notificaciones de cambios de estado y tokens de intercambio. Esto garantiza que las notificaciones se envíen únicamente a los canales aprobados de la organización del proveedor del producto.  
La operación de la API de `CreateDelegationRequest` admite esta clave de condición.  
En este ejemplo, solo se permite crear solicitudes de delegación si utilizan un tema de SNS específico para las notificaciones.  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:CreateDelegationRequest",
            "Resource": "*",
            "Condition": {
                "ArnEquals": {
                    "iam:NotificationChannel": "arn:aws:sns:us-east-1:123456789012:delegation-notifications"
                }
            }
        }
    ]
}
```

**iam:TemplateArn**  
Funciona con [operadores ARN](reference_policies_elements_condition_operators.md#Conditions_ARN).  
Filtra el acceso en función del ARN de la plantilla de política utilizada para definir los permisos en una solicitud de delegación.  
Los proveedores de productos pueden usar esta clave de condición para controlar qué plantillas de políticas pueden usarse en la llamada a la API CreateDelegationRequest. Las plantillas de políticas definen los permisos temporales que los proveedores de productos solicitan en las cuentas de los clientes. Esto permite a los proveedores de productos restringir las plantillas de políticas registradas que se pueden utilizar al crear solicitudes de delegación.  
La operación de la API de `CreateDelegationRequest` admite esta clave de condición.  
En este ejemplo, solo permite crear solicitudes de delegación si utilizan una plantilla de política del dominio de un socio específico.  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:CreateDelegationRequest",
            "Resource": "*",
            "Condition": {
                "ArnLike": {
                    "iam:TemplateArn": "arn:aws:iam:::delegation-template/partner_*"
                }
            }
        }
    ]
}
```

**iam:DelegationRequestOwner**  
Funciona con [operadores ARN](reference_policies_elements_condition_operators.md#Conditions_ARN).  
Filtra el acceso en función de la identidad o la entidad principal de AWS propietaria de la solicitud de delegación.  
Los clientes pueden usar esta clave de condición para controlar quién puede llevar a cabo acciones en relación con las solicitudes de delegación en función de la propiedad. El propietario de una solicitud de delegación es la identidad o la entidad principal de AWS de la cuenta del cliente que inició o recibió la solicitud de delegación.  
Las siguientes operaciones de la API admiten esta clave de condición:  
+ `GetDelegationRequest`
+ `AcceptDelegationRequest`
+ `RejectDelegationRequest`
+ `SendDelegatedToken`
+ `ListDelegationRequests`
+ `UpdateDelegationRequest`
En este ejemplo, permite a los usuarios administrar únicamente las solicitudes de delegación que sean de su propiedad.  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:GetDelegationRequest",
                "iam:AcceptDelegationRequest",
                "iam:RejectDelegationRequest",
                "iam:SendDelegatedToken",
                "iam:UpdateDelegationRequest",
                "iam:ListDelegationRequests"
            ],
            "Resource": "*",
            "Condition": {
                "ArnEquals": {
                    "iam:DelegationRequestOwner": "${aws:PrincipalArn}"
                }
            }
        }
    ]
}
```

## Claves disponibles para las federaciones de identidades AWS de OIDC
<a name="condition-keys-wif"></a>

Puede utilizar la federación de OIDC para otorgar credenciales de seguridad temporales a los usuarios autenticados a través de un proveedor de identidades (IdP) compatible con OpenID Connect a un proveedor de identidades de IAM OpenID Connect (OIDC) de su cuenta de AWS. Algunos ejemplos de este tipo de proveedores incluyen GitHub, Amazon Cognito, Login with Amazon y Google. Se pueden usar los tokens de identidad y los tokens de acceso de su propio IdP, así como los [tokens de las cuentas de servicio](https://docs.aws.amazon.com/eks/latest/userguide/service-accounts.html#service-account-tokens) concedidos a las cargas de trabajo de Amazon Elastic Kubernetes Service.

Puede usar las claves de contexto de condición de OIDC de AWS para redactar políticas que limiten el acceso de las entidades principales federadas a recursos asociados con un proveedor, aplicación o usuario específicos. Estas claves suelen utilizarse en la política de confianza de un rol. Defina las claves de condición utilizando el nombre del proveedor de OIDC (`token.actions.githubusercontent.com`) seguido de la reclamación (`:aud`): `token.actions.githubusercontent.com:aud`.

Algunas claves de condición de federación de OIDC se pueden usar en la sesión de rol para autorizar el acceso a los recursos. Si el valor es **Sí** en la columna **Disponible en la sesión**, puede usar estas claves de condición en las políticas para definir qué usuarios pueden acceder en otros servicios de AWS. Cuando una reclamación no está disponible en la sesión, la clave de contexto de condición de OIDC solo se puede usar en una política de confianza de roles para la autenticación inicial [AssumeRoleWithWebIdentity](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html).

Seleccione su IdP para ver cómo las reclamaciones de su IdP se asignan al contexto de condiciones de IAM en AWS. Puedes encontrar más información sobre las claves de GitHub y Google en la pestaña **Predeterminado**.

------
#### [ Default ]

De forma predeterminada, se muestran las reclamaciones estándar de OIDC y la forma en que se asignan a las claves de contexto de condición de AWS STS en AWS. Puede utilizar estas claves para controlar el acceso a un rol. Para ello, compare las **claves de condición de AWS STS** con los valores de la columna **Reclamación de JWT de IdP**. Utilice esta asignación si su IdP no aparece en las opciones de la pestaña. 

Los flujos de trabajo de GitHub Actions y Google son algunos ejemplos de IdP que utilizan la implementación predeterminada en su token de ID JWT de OIDC.


| AWS STSClave de condición de  | Reclamación de JWT de IdP | Disponible en la sesión | 
| --- | --- | --- | 
| amr | amr | Sí | 
| aud | azp<br />Si no se establece ningún valor para `azp`, la clave de condición `aud` se asigna a la reclamación `aud`. | Sí | 
| correo electrónico | correo electrónico | No | 
| oaud | aud | No | 
| sub | sub | Sí | 

Para obtener más información acerca de las claves de contexto de condición de OIDC con GitHub, consulte [Configuración de un rol para el proveedor de identidades de OIDC de GitHub](id_roles_create_for-idp_oidc.md#idp_oidc_Create_GitHub). 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](https://developers.google.com/identity/protocols/OpenIDConnect). 

**amr**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String). 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](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).  
**Ejemplo de**: `token.actions.githubusercontent.com:amr`  
La referencia de métodos de autenticación incluye la información de inicio de sesión del usuario. 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 (`accounts.google.com`).

**aud**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
**Ejemplos**:   
+ `accounts.google.com:aud`
+ `token.actions.githubusercontent.com:aud`
Utilice la clave de condición `aud` para verificar que el público coincide con el que ha especificado en la política. Puede utilizar la clave aud con la clave sub para el mismo proveedor de identidades.  
Esta clave de condición se establece a partir de los siguientes campos del token:  
+ `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. 
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"
                }
            }
        }
    ]
}
```

**correo electrónico**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
**Ejemplo de**: `accounts.google.com:email`  
Esta clave de condición valida la dirección de correo electrónico del usuario. Es posible que el valor de esta reclamación no sea exclusivo de esta cuenta y pueda cambiar con el tiempo, por lo que no debe usar este valor como identificador principal para verificar su registro de usuario.

**oaud**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
**Ejemplo de**: `accounts.google.com:oaud`  
Esta clave especifica el otro público (`aud`) para el que está previsto 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](reference_policies_elements_condition_operators.md#Conditions_String).  
**Ejemplos**:  
+ `accounts.google.com:sub`
+ token.actions.githubusercontent.com:sub
Utilice estas claves para verificar que el asunto coincide con el que ha especificado en la política. Puede utilizar la clave `sub` con la clave `aud` para el mismo proveedor de identidades.  
En la siguiente política de confianza de roles, la clave de condición `sub` limita el rol a la rama de GitHub llamada `demo`.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Federated": "arn:aws:iam::{{111122223333}}:oidc-provider/token.actions.githubusercontent.com"
      },
      "Action": "sts:AssumeRoleWithWebIdentity",
      "Condition": {
        "StringEquals": {
          "token.actions.githubusercontent.com:aud": "sts.amazonaws.com",
          "token.actions.githubusercontent.com:sub": "repo:{{org-name/repo-name}}:ref:refs/heads/{{demo}}"
        }
      }
    }
  ]
}
```

------
#### [ Amazon Cognito ]

En esta pestaña se explica cómo Amazon Cognito asigna las reclamaciones de OIDC a las claves de contexto de condición de AWS STS en AWS. Puede utilizar estas claves para controlar el acceso a un rol. Para ello, compare las **claves de condición de AWS STS** con los valores de la columna **Reclamación de JWT de IdP**.

En el caso de los roles utilizados por Amazon Cognito, las claves se definen usando `cognito-identity.amazonaws.com` seguidas de la afirmación.

Para obtener más información sobre la asignación de reclamaciones de grupos de identidades, consulte [Default provider mappings](https://docs.aws.amazon.com/cognito/latest/developerguide/provider-mappings.html) en la *Guía para desarrolladores de Amazon Cognito*. Para obtener más información sobre la asignación de reclamaciones de grupos de usuarios, consulte [Using the ID token](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-the-id-token.html) en la *Guía para desarrolladores de Amazon Cognito*.


| AWS STSClave de condición de  | Reclamación de JWT de IdP | Disponible en la sesión | 
| --- | --- | --- | 
| amr | amr | Sí | 
| aud | aud | Sí | 
| oaud | aud | No | 
| sub | sub | Sí | 

**amr**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String). 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](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).  
**Ejemplo** – `cognito-identity.amazonaws.com:amr`  
La referencia de métodos de autenticación incluye la información de inicio de sesión del usuario. 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 (`cognito-identity.amazonaws.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](reference_policies_elements_condition_operators.md#Conditions_String).  
**Ejemplo** – `cognito-identity.amazonaws.com:aud`  
El cliente de la aplicación del grupo de usuarios que ha autenticado a su usuario. Amazon Cognito representa el mismo valor en la reclamación `client_id` del token de acceso.

**oaud**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
**Ejemplo** – `cognito-identity.amazonaws.com:oaud`  
El cliente de la aplicación del grupo de usuarios que ha autenticado a su usuario. Amazon Cognito representa el mismo valor en la reclamación `client_id` del token de acceso.

**sub**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
**Ejemplo** – `cognito-identity.amazonaws.com:sub`  
El identificador único (UUID) o asunto, para el usuario autenticado. Es posible que el nombre de usuario no sea único en el grupo de usuarios. La reclamación sub es la mejor forma de identificar a un usuario determinado. Puede utilizar la clave `sub` con la clave `aud` para el mismo proveedor de identidades.  

```
"Condition": {
         "StringEquals": {
            "cognito-identity.amazonaws.com:aud": "us-east-1:12345678-abcd-abcd-abcd-123456790ab",
            "cognito-identity.amazonaws.com:sub": [
               "us-east-1:12345678-1234-1234-1234-123456790ab",
               "us-east-1:98765432-1234-1234-1243-123456790ab"
            ]
         }
      }
```

------
#### [ Login with Amazon ]

En esta pestaña se explica cómo Login with Amazon asigna las reclamaciones de OIDC a las claves de contexto de condición de AWS STS en AWS. Puede utilizar estas claves para controlar el acceso a un rol. Para ello, compare las **claves de condición de AWS STS** con los valores de la columna **Reclamación de JWT de IdP**.


| AWS STSClave de condición de  | Reclamación de JWT de IdP | Disponible en la sesión | 
| --- | --- | --- | 
| app\_id | Application ID | Sí | 
| sub | ID de usuario | Sí | 
| user\_id | ID de usuario | Sí | 

**app\_id**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
**Ejemplo** – `www.amazon.com:app_id`  
Esta clave especifica el contexto de público que se corresponde con el campo `aud` utilizado por otros proveedores de identidades.

**sub**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
**Ejemplo** – `www.amazon.com:sub`  
Esta clave verifica que el ID de usuario coincide con el que ha especificado en la política. Puede utilizar la clave `sub ` con la clave `aud` para el mismo proveedor de identidades.

**user\_id**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
**Ejemplo** – `www.amazon.com:user_id`  
Esta clave especifica el contexto de público que se corresponde con el campo `aud` utilizado por otros proveedores de identidades. Puede utilizar la clave `user_id` con la clave `id` para el mismo proveedor de identidades.

------
#### [ Facebook ]

En esta pestaña se explica cómo Facebook asigna las reclamaciones de OIDC a las claves de contexto de condición de AWS STS en AWS. Puede utilizar estas claves para controlar el acceso a un rol. Para ello, compare las **claves de condición de AWS STS** con los valores de la columna **Reclamación de JWT de IdP**.


| AWS STSClave de condición de  | Reclamación de JWT de IdP | Disponible en la sesión | 
| --- | --- | --- | 
| app\_id | Application ID | Sí | 
| id | id | Sí | 

**app\_id**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
**Ejemplo** – `graph.facebook.com:app_id`  
Esta clave verifica que el contexto de público corresponde con el campo `aud` utilizado por otros proveedores de identidades.

**ID de**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
**Ejemplo** – `graph.facebook.com:id`  
Esta clave verifica que el ID de aplicación (o sitio) coincide con el que ha especificado en la política.

------
#### [ GitHub ]

En esta pestaña se explica cómo GitHub Actions asigna las reclamaciones de OIDC a las claves de contexto de condición de AWS STS en AWS. Puede utilizar estas claves para controlar el acceso a un rol. Para ello, compare las **claves de condición de AWS STS** con los valores de la columna **Reclamación de JWT de IdP**.


| AWS STSClave de condición de  | Reclamación de JWT de IdP | Disponible en la sesión | 
| --- | --- | --- | 
| actor | actor | No | 
| actor\_id | actor\_id | No | 
| job\_workflow\_ref | job\_workflow\_ref | No | 
| repositorio | repositorio | No | 
| repository\_id | repository\_id | No | 
| flujo de trabajo | flujo de trabajo | No | 
| ref | ref | No | 
| entorno | entorno | No | 
| enterprise\_id | enterprise\_id | No | 

**actor**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
**Ejemplo** – `token.actions.githubusercontent.com:actor`  
Esta clave identifica la cuenta personal que inició la ejecución del flujo de trabajo. Úsela para restringir el acceso a actores específicos.

**actor\_id**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
**Ejemplo** – `token.actions.githubusercontent.com:actor_id`  
Esta clave verifica el ID de la cuenta personal que inició la ejecución del flujo de trabajo. GitHub genera los ID de actor que son inmutables.

**job\_workflow\_ref**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
**Ejemplo** – `token.actions.githubusercontent.com:job_workflow_ref`  
Esta clave contiene la ruta de referencia al flujo de trabajo reutilizable para los trabajos que lo utilizan. Úsela para restringir el acceso a flujos de trabajo específicos y garantizar que solo los aprobados puedan asumir roles.

**Repositorio de**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
**Ejemplo** – `token.actions.githubusercontent.com:repository`  
Esta clave identifica el repositorio desde el que se ejecuta el flujo de trabajo. Úsela para limitar el acceso a repositorios específicos de GitHub.

**repository\_id**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
**Ejemplo** – `token.actions.githubusercontent.com:repository_id`  
Esta clave verifica el ID del repositorio desde el que se ejecuta el flujo de trabajo. Los ID de los repositorios son inmutables y no cambian aunque se cambie el nombre del repositorio.

**Flujo de trabajo de**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
**Ejemplo** – `token.actions.githubusercontent.com:workflow`  
En esta clave se incluye el nombre del flujo de trabajo. Úsela para restringir el acceso a los flujos de trabajo específicos de sus repositorios.

**ref**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
**Ejemplo** – `token.actions.githubusercontent.com:ref`  
Esta clave identifica la referencia de Git (rama o etiqueta) que activó la ejecución del flujo de trabajo. Úsela para limitar el acceso a ramas específicas, por ejemplo, permitir solo `main` o ramas de `production`.

**entorno**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
**Ejemplo** – `token.actions.githubusercontent.com:environment`  
Esta clave contiene el nombre del entorno que utiliza el trabajo. Úsela para implementar controles de acceso basados en el entorno, como permisos independientes para los entornos de desarrollo, preparación y producción.  
Si la declaración de entorno está incluida en la política de confianza, debe configurar un entorno y proporcionarlo en el flujo de trabajo de GitHub.

**enterprise\_id**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
**Ejemplo** – `token.actions.githubusercontent.com:enterprise_id`  
Esta clave verifica el ID de la empresa que contiene el repositorio desde el que se ejecuta el flujo de trabajo. Úsela para asegurar que el acceso a los repositorios de su organización de GitHub Enterprise esté limitado.

El siguiente ejemplo de política de confianza utiliza notificaciones personalizadas en el token OIDC de GitHub para limitar el acceso a un rol.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
    {
        "Effect": "Allow",
        "Principal": {
            "Federated": "arn:aws:iam::AWS_ACCOUNT_ID:oidc-provider/token.actions.githubusercontent.com"
         },
         "Action": "sts:AssumeRoleWithWebIdentity",
         "Condition": {
            "StringLike": {
                "token.actions.githubusercontent.com:aud": "sts.amazonaws.com",
                "token.actions.githubusercontent.com:job_workflow_ref": "octo-org/octo-automation/.github/workflows/oidc.yml@refs/heads/main",
                "token.actions.githubusercontent.com:repository": "octo-org/octo-repo",
                "token.actions.githubusercontent.com:actor": "octocat",
                "token.actions.githubusercontent.com:ref": "refs/heads/main",
                "token.actions.githubusercontent.com:enterprise_id": "345"
               }
           }
        }
    ]
}
```

------
#### [ Google ]

En esta pestaña se explica cómo Google asigna las reclamaciones de OIDC a las claves de contexto de condición de AWS STS en AWS. Puede utilizar estas claves para controlar el acceso a un rol. Para ello, compare las **claves de condición de AWS STS** con los valores de la columna **Reclamación de JWT de IdP**.


| AWS STSClave de condición de  | Reclamación de JWT de IdP | Disponible en la sesión | 
| --- | --- | --- | 
| google/organization\_number | google:organization\_number | No | 

**google/organization\_number**  
Funciona con [operadores numéricos](reference_policies_elements_condition_operators.md#Conditions_Numeric).  
**Ejemplo** – `accounts.google.com:google/organization_number`  
Esta clave verifica que un token representa la identidad de Google de una organización específica de Google Cloud o Google Workspace. Use esta opción para restringir el acceso a los usuarios de organizaciones específicas y asegurarse de que solo las identidades de su organización puedan asumir ese rol.

El siguiente ejemplo de política de confianza utiliza la reclamación `google/organization_number` para limitar el acceso a un rol.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
    {
        "Effect": "Allow",
        "Principal": {
            "Federated": "accounts.google.com"
         },
         "Action": "sts:AssumeRoleWithWebIdentity",
         "Condition": {
            "NumericEquals": {
                "accounts.google.com:google/organization_number": "123456"
               }
           }
        }
    ]
}
```

------
#### [ CircleCI ]

En esta pestaña se explica cómo CircleCI asigna las reclamaciones de OIDC a las claves de contexto de condición de AWS STS en AWS. Puede utilizar estas claves para controlar el acceso a un rol. Para ello, compare las **claves de condición de AWS STS** con los valores de la columna **Reclamación de JWT de IdP**.


| AWS STSClave de condición de  | Reclamación de JWT de IdP | Disponible en la sesión | 
| --- | --- | --- | 
| oidc.circleci.com/project-id | oidc.circleci.com/project-id | No | 

**oidc.circleci.com/project-id**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
**Ejemplo** – `circleci-issuer-url:oidc.circleci.com/project-id`  
Esta clave identifica el proyecto de CircleCI en el que se ejecuta el trabajo. Su valor es una cadena que contiene un UUID que identifica el proyecto de CircleCI de forma exclusiva. Utilice esta opción para restringir el acceso a proyectos específicos de CircleCI.

El siguiente ejemplo de política de confianza utiliza la reclamación `oidc.circleci.com/project-id` para limitar el acceso a un rol.

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Federated": "arn:aws:iam::123456789012:oidc-provider/oidc.circleci.com/org/12345"
      },
      "Action": "sts:AssumeRoleWithWebIdentity",
      "Condition": {
        "StringEquals": {
          "oidc.circleci.com/org/12345:aud": "sts.amazonaws.com",
          "oidc.circleci.com/org/12345:oidc.circleci.com/project-id": "76543210-ba98-fedc-3210-edcba0987654"
        }
      }
    }
  ]
}
```

------
#### [ Oracle Cloud Infrastructure (OCI) ]

En esta pestaña se explica cómo la infraestructura de Oracle Cloud asigna las reclamaciones de OIDC a las claves de contexto de condición de AWS STS en AWS. Puede utilizar estas claves para controlar el acceso a un rol. Para ello, compare las **claves de condición de AWS STS** con los valores de la columna **Reclamación de JWT de IdP**.


| AWS STSClave de condición de  | Reclamación de JWT de IdP | Disponible en la sesión | 
| --- | --- | --- | 
| rpst\_id | rpst\_id | No | 

**rpst\_id**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
**Ejemplo** – `oci-issuer-url:rpst_id`  
Esta clave identifica el recurso de entidad principal en OCI de forma exclusiva. Úsela para restringir el acceso a recursos de entidades principales específicas de la OCI. El rpst\_id (ID de token de sesión de entidad principal del recurso) proporciona un identificador estable para la autenticación basada en los recursos de la OCI.

El siguiente ejemplo de política de confianza utiliza la reclamación `rpst_id` para limitar el acceso a un rol.

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Federated": "arn:aws:iam::123456789012:oidc-provider/idcs-abc123ef5678901234abcd.identity.oraclecloud.com"
      },
      "Action": "sts:AssumeRoleWithWebIdentity",
      "Condition": {
        "StringEquals": {
          "idcs-abc123ef5678901234abcd.identity.oraclecloud.com:aud": "sts.amazonaws.com",
          "idcs-abc123ef5678901234abcd.identity.oraclecloud.com:rpst_id": "your-rpst-id"
        }
      }
    }
  ]
}
```

------

### Más información acerca de la federación OIDC
<a name="condition-keys-wif-more-info"></a>


+ [Guía del usuario de Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html)
+ [Federación OIDC](id_roles_providers_oidc.md)

## Claves disponibles para la federación AWS STS basada en SAML
<a name="condition-keys-saml"></a>

Si trabaja con [federación basada en SAML](https://docs.aws.amazon.com/STS/latest/UsingSTS/CreatingSAML.html) 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
<a name="condition-keys-saml_trust-policy"></a>

En la política de confianza de un rol, puede incluir las siguientes claves, que le permitirán 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](reference_policies_elements_condition_operators.md#Conditions_String).  
Es una dirección URL de punto de conexión 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](reference_policies_elements_condition_operators.md#Conditions_String).  
Se trata de un atributo `commonName`.

**saml:cn[]**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
Es un atributo `eduOrg`.

**saml:doc**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
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](id_roles_providers_create_saml.md). 

**saml:edupersonaffiliation[]**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
Es un atributo `eduPerson`.

**saml:edupersonassurance[]**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
Es un atributo `eduPerson`.

**saml:edupersonentitlement[]**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
Es un atributo `eduPerson`.

**saml:edupersonnickname[]**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
Es un atributo `eduPerson`.

**saml:edupersonorgdn**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
Es un atributo `eduPerson`.

**saml:edupersonorgunitdn[]**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
Es un atributo `eduPerson`.

**saml:edupersonprimaryaffiliation**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
Es un atributo `eduPerson`.

**saml:edupersonprimaryorgunitdn**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
Es un atributo `eduPerson`.

**saml:edupersonprincipalname**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
Es un atributo `eduPerson`.

**saml:edupersonscopedaffiliation[]**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
Es un atributo `eduPerson`.

**saml:edupersontargetedid[]**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
Es un atributo `eduPerson`.

**saml:eduorghomepageuri[]**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
Es un atributo `eduOrg`.

**saml:eduorgidentityauthnpolicyuri[]**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
Es un atributo `eduOrg`.

**saml:eduorglegalname[]**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
Es un atributo `eduOrg`.

**saml:eduorgsuperioruri[]**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
Es un atributo `eduOrg`.

**saml:eduorgwhitepagesuri[]**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
Es un atributo `eduOrg`.

**saml:givenName[]**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
Se trata de un atributo `givenName`.

**saml:iss**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
Se trata del emisor representado por un URN. 

**saml:mail[]**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
Se trata de un atributo `mail`.

**saml:name[]**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
Se trata de un atributo `name`.

**saml:namequalifier**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
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`)

1. El ID de la cuenta de `AWS`.

1.  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](id_roles_providers_saml.md#CreatingSAML-userid).

**saml:organizationStatus[]**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
Es un atributo `organizationStatus`.

**saml:primaryGroupSID[]**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
Se trata de un atributo `primaryGroupSID`.

**saml:sub**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
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](reference_policies_elements_condition_operators.md#Conditions_String).  
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 [Configure aserciones SAML para la respuesta de autenticación](id_roles_providers_create_saml_assertions.md).

**saml:surname[]**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
Se trata de un atributo `surnameuid`.

**saml:uid[]**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
Se trata de un atributo `uid`.

**saml:x500UniqueIdentifier[]**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
Es un atributo `x500UniqueIdentifier`.

Para obtener información general sobre los atributos `eduPerson` y `eduOrg`, consulte el [sitio web REFEDS Wiki](https://wiki.refeds.org/display/STAN/eduPerson). Para ver una lista de `eduPerson` atributos, consulte [eduPerson Object Class Specification (201602)](https://software.internet2.edu/eduperson/internet2-mace-dir-eduperson-201602.html). 

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](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys) (`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"] 
   }
}
```

## Claves de contexto de federación de AWS STS basadas en SAML multiservicios
<a name="cross-condition-keys-saml"></a>

Algunas claves de condición de federación basadas en SAML se pueden utilizar en solicitudes posteriores para autorizar operaciones de AWS en otros servicios y llamadas `AssumeRole`. Las siguientes son las claves de condición que se pueden utilizar en políticas de confianza de roles cuando las entidades principales federadas asumen otro rol, así como en políticas de recursos de otros servicios de AWS para autorizar el acceso a los recursos por parte de las entidades principales federadas. Para obtener más información sobre el uso de estas claves, consulte [Acerca de la federación basada en SAML 2.0](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html#CreatingSAML-userid). 

Seleccione una clave de condición para ver la descripción.
+ [saml:namequalifier](#ck_saml-namequalifier)
+ [saml:sub](#ck_saml-sub)
+ [saml:sub_type](#ck_saml-subtype)

**nota**  
No está disponible ninguna otra clave de condición de federación basada en SAML para su uso después de la respuesta de autenticación del proveedor de identidades (IdP) externo inicial.

## Claves disponibles para AWS STS
<a name="condition-keys-sts"></a>

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). 

**saml:sub**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
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`). 

**sts:AWSServiceName**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
Utilice esta clave para especificar un servicio donde se puede utilizar 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 la entidad principal de servicio AWS CodeArtifact.  
**Disponibilidad** - Esta clave está presente en las solicitudes que reciben un token de portador. No puede hacer una llamada directa a AWS STS para obtener un token. Cuando realiza algunas operaciones en otros servicios, el servicio solicita el token de portador en su nombre.  
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 las entidades principales usen tokens portador para realizar algunas operaciones. El comando `aws codeartifact get-authorization-token` devuelve un token portador. A continuación, puede utilizar el token portador para realizar AWS CodeArtifact operaciones. Para obtener más información acerca de los tokens al portador, consulte [Tokens de portador del servicio](id_credentials_bearer.md).   
Puede utilizar 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](reference_policies_elements_condition_operators.md#Conditions_Numeric).  
Utilice esta clave para especificar la duración (en segundos) que una entidad principal puede utilizar al obtener un token de portador de AWS AWS STS o un token web JSON de la API [GetWebIdentityToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetWebIdentityToken.html).  
**Disponibilidad**: esta clave está presente en las solicitudes que obtienen un token de portador o un token web JSON de la API GetWebIdentityToken. No puede hacer una llamada directa a AWS STS para obtener un token. Cuando realiza algunas operaciones en otros servicios, el servicio solicita el token de portador en su nombre. La clave no se aplica a las operaciones assume-rol de AWS STS.  
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 las entidades principales usen tokens portador para realizar algunas operaciones. El comando `aws codeartifact get-authorization-token` devuelve un token portador. A continuación, puede utilizar el token portador para realizar AWS CodeArtifact operaciones. Para obtener más información acerca de los tokens al portador, consulte [Tokens de portador del servicio](id_credentials_bearer.md). 

**sts:IdentityTokenAudience**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
Utilice esta clave para especificar la audiencia para la que una entidad principal de IAM puede solicitar tokens web JSON (JWT) mediante la API [GetWebIdentityToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetWebIdentityToken.html). Cuando esta clave de condición está presente en una política de IAM, las entidades principales de IAM solo pueden solicitar tokens para las audiencias especificadas en la política. Los servicios externos validan la notificación de audiencia (“aud”) en el token web JSON para garantizar que el token esté destinado a ellos.  
**Disponibilidad**: esta clave está presente en las solicitudes a la API GetWebIdentityToken, que se utiliza para obtener tokens web JSON (JWT) para la autenticación con servicios externos.  
Cuando utilice esta clave de condición en una política, especifique el valor de audiencia que coincida con el identificador del destinatario previsto (por ejemplo, https://api.example.com).  
La siguiente política de ejemplo permite que una entidad principal solicite tokens para los servicios externos especificados:  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:GetWebIdentityToken",
            "Resource": "*",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "sts:IdentityTokenAudience": [
                        "https://api2.example.com",
                        "https://api1.example.com"
                    ]
                }
            }
        }
    ]
}
```

**sts:SigningAlgorithm**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
Utilice esta clave para especificar el algoritmo criptográfico que AWS AWS STS utiliza para firmar los tokens web JSON (JWT) generados por la API [GetWebIdentityToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetWebIdentityToken.html). Cuando utilice esta clave de condición en una política, especifique ES384 (ECDSA con curva P-384 y SHA-384) o RS256 (RSA con SHA-256).  
**Disponibilidad**: esta clave está presente en las solicitudes a la API GetWebIdentityToken, que se utiliza para obtener tokens web JSON (JWT) para la autenticación con servicios externos.  
Puede usar esta clave de condición para exigir que las entidades principales de IAM soliciten los tokens mediante algoritmos de firma compatibles con sus requisitos de seguridad o con los servicios externos con los que se integra. ES384 proporciona una seguridad y un rendimiento óptimos, mientras que RS256 ofrece una compatibilidad más amplia con sistemas que no admiten ECDSA.  
En el siguiente ejemplo de política se exige que las entidades principales utilicen el algoritmo de firma ES384:  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:GetWebIdentityToken",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "sts:SigningAlgorithm": "ES384"
                }
            }
        }
    ]
}
```

**sts:ExternalId**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
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 utilizando AWS CLI o API de AWS.   
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 [Acceder a las Cuentas de AWS que le pertenezcan a terceros](id_roles_common-scenarios_third-party.md).  
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:RequestContext/*context-key***  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
Utilice esta clave para comparar los pares clave-valor del contexto de la sesión que están integrados en la afirmación de contexto firmada por el emisor del token de confianza pasada en la solicitud con los valores-clave del contexto especificados en la política de confianza del rol.  
**Disponibilidad**: Esta clave está presente en la solicitud cuando se proporciona una afirmación de contexto en el parámetro de solicitud `ProvidedContexts` mientras se asume un rol con la operación de API [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) de AWS STS.  
Esta clave de contexto tiene el formato `"sts:RequestContext/context-key":"context-value"` en donde `context-key` y `context-value` son un par clave-valor de contexto. Cuando se integran varias claves de contexto en la afirmación de contexto firmada pasada en la solicitud, hay una clave de contexto para cada par clave-valor. Debe conceder permiso para la acción `sts:SetContext` en la política de confianza de roles a fin de permitir que una entidad principal establezca las claves de contexto en el token de sesión resultante. Para obtener más información sobre las claves de contexto de IAM Identity Center que se pueden utilizar con esta clave, consulte las [Claves de condición AWS STS de IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/condition-context-keys-sts-idc.html) en la *Guía del usuario de AWS IAM Identity Center*.  
Puede utilizar esta clave en una política de confianza de rol para aplicar un control de acceso detallado basado en el usuario o en sus atributos cuando asuman un rol. Una vez asumido el rol, la actividad aparece en los registros de AWS CloudTrail en el atributo `AdditionalEventData`, y contienen los pares clave-valor del contexto de la sesión que estableció el proveedor del contexto en la solicitud de asunción del rol. Esto hace que sea más fácil para los administradores diferenciar entre sesiones de rol cuando un rol es utilizado por diferentes entidades principales. El proveedor de contexto especificado establece los pares clave-valor, no por AWS CloudTrail ni AWS STS. Esto le da al proveedor del contexto el control sobre el contexto que se incluye en los registros y la información de sesión de CloudTrail.

**sts:RequestContextProviders**  
Funciona con [operadores ARN](reference_policies_elements_condition_operators.md#Conditions_ARN).  
Utilice esta clave para comparar el ARN del proveedor de contexto de la solicitud con el ARN del proveedor de contexto especificado en la política de confianza del rol.  
**Disponibilidad**: Esta clave está presente en la solicitud cuando se proporciona una afirmación de contexto en el parámetro de solicitud `ProvidedContexts` mientras se asume un rol con la operación de API [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) de AWS STS.  
La siguiente condición de ejemplo comprueba que el ARN del proveedor de contexto pasado en la solicitud coincide con el ARN especificado en la condición de política de confianza del rol. Le recomendamos que agregue una comprobación de valores nulos con `ForAllValues` para evitar que las claves de contexto ausentes o las claves de contexto con valores vacíos se evalúen como true. Para obtener más información, consulte [Operador de condición para comprobar la existencia de claves de condición](reference_policies_elements_condition_operators.md#Conditions_Null).    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Action": "sts:SetContext",
    "Effect": "Allow",
    "Resource": "*",
    "Condition": {
      "ForAllValues:ArnEquals": {
        "sts:RequestContextProviders": [
          "arn:aws:iam::aws:contextProvider/IdentityCenter"
        ]
      },
      "Null": {
        "sts:RequestContextProviders": "false"
      }
    }
  }
}
```

**sts:RoleSessionName**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
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 la entidad principal asume el rol mediante Consola de administración de AWS, cualquier comando assume-role CLI o cualquier operación AWS STSde API `AssumeRole`.  
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](cloudtrail-integration.md#cloudtrail-integration_signin-tempcreds) con el nombre de sesión que coincide con su nombre de usuario. Esto hace que sea más fácil para los administradores diferenciar entre sesiones de rol cuando un rol es utilizado por diferentes entidades principales.  
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 la[variable de condición](reference_policies_variables.md) `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.  
Puede utilizar cualquier clave de condición de valor único como [variable](reference_policies_variables.md). No se puede utilizar una clave de condición multivalor como variable.  
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "RoleTrustPolicyRequireUsernameForSessionName",
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Principal": {"AWS": "arn:aws:iam::{{111122223333}}:root"},
            "Condition": {
                "StringLike": {"sts:RoleSessionName": "prefix-${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](id_roles_common-scenarios_aws-accounts.md), 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 utilizar el mismo nombre de usuario en varias cuentas.

**sts:SourceIdentity**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
Utilice esta clave para comparar la identidad de origen 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 la entidad principal establece inicialmente una identidad de origen mientras asume un rol utilizando cualquier comando assume-rol CLI de AWS STS, o una operación AWS STS de API `AssumeRole`.  
Puede utilizar esta clave en una política de confianza de rol para requerir que sus usuarios establezcan una identidad de origen específica cuando asuman un rol. Por ejemplo, puede requerir que su personal o identidades federadas especifiquen un valor para la identidad de origen. Puede configurar su proveedor de identidades (IdP) para que utilice uno de los atributos asociados a los usuarios, como un nombre de usuario o un correo electrónico como identidad de origen. A continuación, el IdP pasa la identidad de origen como un atributo en las afirmaciones que envía a AWS. El valor del atributo de identidad de origen identifica al usuario o aplicación que está asumiendo el rol.  
Después de que el usuario asuma el rol, la actividad aparece en [registros de AWS CloudTrail](cloudtrail-integration.md#cloudtrail-integration_signin-tempcreds) con el valor de identidad de origen que se ha establecido. Esto facilita a los administradores determinar quién o qué ha realizado acciones con un rol en AWS. Debe conceder permisos para la acción `sts:SetSourceIdentity` para permitir que una identidad establezca una identidad de origen.   
A diferencia de [`sts:RoleSessionName`](#ck_rolesessionname), después de establecer la identidad de origen, el valor no se puede cambiar. Está presente en el contexto de solicitud para todas las acciones realizadas con el rol por la identidad de origen. El valor persiste en sesiones de rol posteriores cuando se utilizan las credenciales de sesión para asumir otro rol. Asumir un rol de otro se llama [encadenamiento de roles](id_roles.md#iam-term-role-chaining).   
Puede utilizar la condición de clave global [`aws:SourceIdentity`](reference_policies_condition-keys.md#condition-keys-sourceidentity) para controlar aun más el acceso a los recursos de AWS basados en el valor de la identidad de origen en solicitudes posteriores.   
La siguiente política de confianza de rol permite al usuario de IAM `AdminUser` asumir un rol en la cuenta `111122223333`. También concede permiso a `AdminUser` para establecer una identidad de origen, siempre y cuando el conjunto de identidades de origen sea `DiegoRamirez`.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowAdminUserAssumeRole",
            "Effect": "Allow",
            "Principal": {"AWS": " arn:aws:iam::111122223333:user/AdminUser"},
            "Action": [
                "sts:AssumeRole",
                "sts:SetSourceIdentity"
            ],
            "Condition": {
                "StringEquals": {"sts:SourceIdentity": "DiegoRamirez"}
            }
        }
    ]
}
```
Para obtener más información acerca del uso de información de identidad de origen, consulte [Monitorear y controlar las acciones realizadas con roles asumidos](id_credentials_temp_control-access_monitor.md).

**sts:TaskPolicyArn**  
Funciona con [operadores ARN](reference_policies_elements_condition_operators.md#Conditions_ARN).  
Utilice esta clave para comparar el ARN de política de una solicitud [sts:AssumeRoot](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoot.html) con el ARN de política especificado en la política.  
**Disponibilidad**: esta clave está presente en la solicitud cuando se realiza una solicitud mediante [sts:AssumeRoot](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoot.html).  
Los administradores pueden utilizar esta clave de condición en las políticas de IAM para impedir que determinados roles o usuarios de la cuenta de administración o de la cuenta de administrador delegado realicen determinadas acciones al asumir las credenciales raíz. Para obtener más información, consulte [Realización de tarea con privilegios en la cuenta de miembro de AWS Organizations](id_root-user-privileged-task.md).

**sts:TransitiveTagKeys**  
Funciona con [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String).  
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](reference_policies_elements_condition.md#AccessPolicyLanguage_RequestContext) incluye la clave de contexto `aws:PrincipalTag`. Esta clave incluye una lista de [etiquetas de sesión](id_session-tags.md), [etiquetas de sesión transitivas](id_session-tags.md#id_session-tags_role-chaining) 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](id_roles.md#iam-term-role-chaining).   
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.