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.
Temas
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 serarn: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
oActivate
.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 especificarcloudwatch.amazonaws.com
en el elementoPrincipal
. 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 globalaws: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 eltexto 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 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.
Seleccione su IdP para ver cómo las reclamaciones de su IdP se asignan al contexto de condiciones de IAM en AWS.
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 campoAudience
. - 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
, como123456789012/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 '/':
-
El valor de respuesta
Issuer
(saml:iss
) -
El ID de la cuenta de
AWS
. -
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 URIFormat
completo de los elementosSubject
yNameID
utilizados en la aserción de SAML. El valorpersistent
indica que el valor desaml:sub
es el mismo para un usuario entre sesiones. Si el valor estransient
, el usuario tendrá un valorsaml:sub
diferente para cada sesión. Para obtener información sobre el atributoNameID
del elementoFormat
, 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 WikieduPerson
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 dondecontext-key
ycontext-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ónsts: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ónaws: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 variableusername
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 denominadoMateoRole
. El administrador puede entonces ponerse en contacto con Mateo Jackson, quien tiene el nombre del usuariomatjac
."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 cuenta111122223333
. También concede permiso aAdminUser
para establecer una identidad de origen, siempre y cuando el conjunto de identidades de origen seaDiegoRamirez
.{ "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.