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 Elementos de política 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 sobre las claves que puede utilizar en las políticas de recursos de Amazon S3, consulte Claves de política de Amazon S3 en la Guía del usuario 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 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 de una política. No se puede utilizar para limitar cualquier otra acción.

importante

Cuando se utiliza la condición iam:AssociatedResourceArn en una política para restringir la acción PassRole, se deben tener en cuenta algunas consideraciones especiales si el objetivo de la política es definir el acceso para la acción AddRoleToInstanceProfile. 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/*" ] } } }
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.

En este ejemplo, permite que una entidad cree un rol vinculado al servicio si el nombre del 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.

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

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

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. 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: Registrar clave de seguridad

Funciona con operadores de cadena.

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: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 una política de ejemplo de IAM que utilice esta clave de condición, consulte IAM: ver la información del último acceso al servicio 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 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 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.

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.

nota

Algunos servicios no admiten esta clave de condición.

iam:PermissionsBoundary

Funciona con operadores 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

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 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. Puede utilizar ResourceTag para controlar el acceso 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 o Editar una política.

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

Claves disponibles para las federaciones de identidades AWS de OIDC

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 concedidos a las cargas de trabajo de Amazon Elastic Kubernetes Service.

Puede utilizar claves de contexto de condición de OIDC de AWS para crear políticas que limitan 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. 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 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.

Seleccione su IdP para ver cómo las reclamaciones de su IdP se asignan al contexto de condiciones de IAM en AWS.

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.

Clave de condición de AWS STS Reclamación de JWT de IdP Disponible en la sesión

amr

amr

aud

azp

Si no se establece ningún valor para azp, la clave de condición aud se asigna a la reclamación aud.

email

email

No

oaud

aud

No

sub

sub

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

amr

Funciona con operadores de cadena. 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.

Ejemplo: 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.

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" } } } ] }
email

Funciona con operadores de cadena.

Ejemplo: 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.

Ejemplo: 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.

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": [ "Condition": { "StringEquals": { "token.actions.githubusercontent.com:aud": "sts.amazonaws.com", "token.actions.githubusercontent.com:sub": "repo:octo-org/octo-repo: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 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 en la Guía para desarrolladores de Amazon Cognito.

Clave de condición de AWS STS Reclamación de JWT de IdP Disponible en la sesión

amr

amr

aud

aud

oaud

aud

No

sub

sub

amr

Funciona con operadores de cadena. 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.

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.

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.

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.

Ejemplo: cognito-identity.amazonaws.com:sub

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

{ "Version": "2012-10-17", "Statement": [ "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.

Clave de condición de AWS STS Reclamación de JWT de IdP Disponible en la sesión

app_id

Application ID

sub

ID de usuario

user_id

ID de usuario

app_id

Funciona con operadores de cadena.

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.

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.

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.

Clave de condición de AWS STS Reclamación de JWT de IdP Disponible en la sesión

app_id

Application ID

id

id

app_id

Funciona con operadores de cadena.

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

Funciona con operadores de cadena.

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.

Más información acerca de la federación OIDC

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 Configure 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 REFEDS Wiki. Para ver una lista de eduPerson atributos, consulte eduPerson Object Class Specification (201602).

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

Claves de contexto de federación de AWS STS basadas en SAML multiservicios

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.

Seleccione una clave de condición para ver la descripción.

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

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.

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.

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

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.

Utilice esta clave para especificar la duración (en segundos) que un principal puede utilizar al obtener un token portador AWS STS.

Disponibilidad - Esta clave está presente en las solicitudes que reciben un token de portador. No puedes 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 está presente para las AWS STS operaciones assume-rol.

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.

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

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.

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

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

"Condition": { "ForAllValues:ArnEquals": { "sts:RequestContextProviders": [ "arn:aws:iam::aws:contextProvider/IdentityCenter" ] } }
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 la entidad principal asume el rol mediante AWS Management Console, 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 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 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.

importante

Puede utilizar cualquier clave de condición de valor único como variable. 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": "${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 utilizar el mismo nombre de usuario en varias cuentas.

sts:SourceIdentity

Funciona con operadores de cadena.

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

Puede utilizar la condición de clave global aws: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.

sts:TaskPolicyArn

Funciona con operadores ARN.

Utilice esta clave para comparar el ARN de política de una solicitud sts:AssumeRoot 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.

Puede usar esta clave de condición en una política para limitar las acciones que una cuenta de administración o un administrador delegado pueden realizar durante una sesión de usuario raíz con privilegios. Para obtener más información, consulte Realización de tarea con privilegios en la cuenta de miembro de AWS Organizations.

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.