

# Referencia de políticas JSON de IAM
<a name="reference_policies"></a>

En esta sección se presenta la sintaxis, descripciones y ejemplos detallados de los elementos, variables, y lógica de evaluación de las políticas JSON de IAM. Para obtener más información general, consulte [Información general de políticas de JSON](access_policies.md#access_policies-json).

Esta sección incluye los siguientes temas.
+  [Referencia de los elementos de la política de JSON de IAM](reference_policies_elements.md) - Más información acerca de los elementos que puede utilizar al crear una política. Consulte ejemplos de políticas adicionales y obtenga más información sobre condiciones, tipos de datos admitidos y cómo se utilizan en los diversos servicios. 
+ [Lógica de evaluación de políticas](reference_policies_evaluation-logic.md): en esta sección se describen las solicitudes de AWS, cómo se autentican y cómo AWS utiliza políticas para determinar el acceso a los recursos. 
+ [Gramática del lenguaje de la política JSON de IAM](reference_policies_grammar.md): en esta sección se presenta una gramática formal para el lenguaje que se utiliza para crear políticas en IAM.
+ [AWSPolíticas administradas de para funciones de trabajo](access_policies_job-functions.md): en esta sección se enumeran todas las políticas administradas de AWS que se asignan directamente a funciones de trabajo habituales en el sector de TI. Con estas políticas puede conceder los permisos necesarios para realizar las tareas que se esperan de quien desempeña una función determinada. Estas políticas consolidan los permisos de muchos servicios en una única política.
+ [Claves de contexto de condición globales de AWS](reference_policies_condition-keys.md): esta sección incluye una lista de todas las claves de condición globales de AWS que puede utilizar para limitar los permisos de una política de IAM.
+ [Claves de contexto de condición de IAM y AWS STS](reference_policies_iam-condition-keys.md): esta sección incluye una lista de todas las claves de condición de IAM y AWS STS que puede utilizar para limitar los permisos de una política de IAM.
+ [Acciones, recursos y claves de condiciones de servicios de AWS](reference_policies_actions-resources-contextkeys.html): en esta sección se presenta una lista de todas las operaciones de API de AWS que puede utilizar como permisos en una política de IAM. También incluye las claves de condición específicas del servicio que pueden utilizarse para especificar más la solicitud.

# Referencia de los elementos de la política de JSON de IAM
<a name="reference_policies_elements"></a>

Un documento de política de JSON se compone de elementos. Se indican en el orden que suelen seguir en una política. El orden de los elementos no es importante; por ejemplo, el elemento `Resource` puede ir antes que el elemento `Action`. No es necesario especificar elementos `Condition` en la política. Para obtener más información sobre la estructura general y la finalidad de un documento de política JSON, consulte [Información general de políticas de JSON](access_policies.md#access_policies-json).

Algunos elementos de política JSON se excluyen mutuamente. Esto significa que no se puede crear una política que utilice ambos. Por ejemplo, no se puede utilizar `Action` y `NotAction` en la misma instrucción de política. Otros pares que se excluyen mutuamente son `Principal`/`NotPrincipal` y `Resource`/`NotResource`. 

Los detalles de lo que se incluye en una política pueden variar según el servicio, en función de las acciones que el servicio ponga a disposición, de los tipos de recursos que contenga, etc. Cuando se escriben políticas para un servicio específico, es útil ver ejemplos de políticas para dicho servicio. Para obtener una lista de todos los servicios compatibles con IAM y de enlaces con la documentación de dichos servicios sobre el tema de IAM y las políticas, consulte [Servicios de AWS que funcionan con IAM](reference_aws-services-that-work-with-iam.md).

 Cuando usted crea o edita una política JSON, IAM puede realizar la validación de políticas para ayudarle a crear una política eficaz. IAM identifica errores de sintaxis JSON, mientras que Analizador de acceso de IAM proporciona verificaciones de políticas adicionales con recomendaciones para ayudarle a perfeccionar aún más las políticas. Para obtener más información acerca la validación de políticas, consulte [Validación de la política de IAM](access_policies_policy-validator.md). Para obtener más información acerca de las verificaciones de políticas de Analizador de acceso de IAM y las recomendaciones procesables, consulte [Validación de políticas de Analizador de acceso de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html). 

**Topics**
+ [Version](reference_policies_elements_version.md)
+ [Id](reference_policies_elements_id.md)
+ [Statement](reference_policies_elements_statement.md)
+ [Sid](reference_policies_elements_sid.md)
+ [Effect](reference_policies_elements_effect.md)
+ [Principal](reference_policies_elements_principal.md)
+ [NotPrincipal](reference_policies_elements_notprincipal.md)
+ [Action](reference_policies_elements_action.md)
+ [NotAction](reference_policies_elements_notaction.md)
+ [Resource](reference_policies_elements_resource.md)
+ [NotResource](reference_policies_elements_notresource.md)
+ [Condition](reference_policies_elements_condition.md)
+ [Variables y etiquetas](reference_policies_variables.md)
+ [Tipos de datos compatibles](reference_policies_elements_datatypes.md)

# Elementos de política JSON de IAM: Version
<a name="reference_policies_elements_version"></a>

**Nota aclaratoria**  
El elemento de la política JSON `Version` es diferente de la *versión de la política*. El elemento de política `Version` se utiliza en una política y define la versión del lenguaje de la política. Una versión de política, por otro lado, se crea al realizar cambios en una política administrada por el cliente en IAM. La política modificada no anula la política existente. En cambio, IAM crea una nueva versión de la política administrada. Si busca información sobre cómo admitir múltiples versiones de políticas gestionadas, consulte [Control de versiones de políticas de IAM](access_policies_managed-versioning.md).

El elemento de la política `Version` especifica las reglas de sintaxis del lenguaje que se van a utilizar para procesar esta política. Para utilizar todas las funciones disponibles para políticas, incluya el siguiente elemento `Version` **fuera** del elemento `Statement` en todas las políticas.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:ListAllMyBuckets",
      "Resource": "*"
    }
  ]
}
```

------

IAM admite los siguientes valores del elemento `Version`:
+ `2012-10-17`. Esta es la versión actual del lenguaje de la política y siempre debe incluir un elemento `Version` y establecerlo en `2012-10-17`. De lo contrario, no puede utilizar características como las [variables de política](reference_policies_variables.md) que se introdujeron con esta versión.
+ `2008-10-17`. Esta es una versión anterior del lenguaje de la política. Puede que vea esta versión en políticas ya existentes. No utilice esta versión en ninguna política nueva ni cuando actualice políticas ya existentes. Las características más recientes, como, por ejemplo, variables de política, no funcionarán con su política. Por ejemplo, las variables del tipo `${aws:username}` no se reconocerán como variables y se tratarán en la política como si fueran cadenas literales.

# Elementos de política JSON de IAM: Id
<a name="reference_policies_elements_id"></a>

El elemento `Id` especifica un identificador opcional de la política. El ID se utiliza de forma distinta en diferentes servicios. El ID  está permitido en políticas basadas en recursos, pero no en políticas basadas en la identidad.

En el caso de los servicios que le permiten definir un elemento `ID`, le recomendamos que utilice un UUID (GUID) para el valor o que incorpore un UUID como parte del ID para garantizar la exclusividad. 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Id": "cd3ad3d9-2776-4ef1-a904-4c229d1642ee",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:ListAllMyBuckets",
      "Resource": "*"
    }
  ]
}
```

------

**nota**  
Algunos servicios de AWS (por ejemplo, Amazon SQS o Amazon SNS) podrían necesitar este elemento y además que fuera único. Para obtener información específica sobre los servicios para escribir políticas, consulte la documentación del servicio en el que está trabajando.

# Elementos de política JSON de IAM: Statement
<a name="reference_policies_elements_statement"></a>

El elemento `Statement` es el elemento principal de una política. Este elemento es obligatorio. El elemento `Statement` puede contener una sola instrucción o una matriz de instrucciones individuales. Cada bloque de instrucción individual debe estar encerrado entre claves \$1 \$1. Para instrucciones múltiples, la matriz debe estar entre corchetes [ ].

```
"Statement": [{...},{...},{...}]
```

En el siguiente ejemplo se muestra una política que contiene una matriz de tres instrucciones en un único elemento `Statement`. (La política le permite obtener acceso a su propia "carpeta home" en la consola de Amazon S3). La política incluye la variable `aws:username`, que se sustituirá durante la evaluación de la política por el nombre de usuario de la solicitud. Para obtener más información, consulte [Introducción](reference_policies_variables.md#policy-vars-intro). 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListAllMyBuckets",
        "s3:GetBucketLocation"
      ],
      "Resource": "arn:aws:s3:::*"
    },
    {
      "Effect": "Allow",
      "Action": "s3:ListBucket",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
      "Condition": {"StringLike": {"s3:prefix": [
        "",
        "home/",
        "home/${aws:username}/"
      ]}}
    },
    {
      "Effect": "Allow",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/home/${aws:username}",
        "arn:aws:s3:::amzn-s3-demo-bucket/home/${aws:username}/*"
      ]
    }
  ]
}
```

------

# Elementos de política JSON de IAM: Sid
<a name="reference_policies_elements_sid"></a>

Puede proporcionar un `Sid` (ID de la instrucción) como un identificador opcional para la declaración de política. Puede asignar un valor de `Sid` a cada instrucción de una matriz de instrucciones. Puede utilizar el valor `Sid` como descripción de la declaración de política. En los servicios que le permiten especificar un elemento `ID`, como, por ejemplo, SQS y SNS, el valor de `Sid` es simplemente un subID del ID del documento de la política. En IAM, el valor de `Sid` debe ser único en la política de JSON.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "ExampleStatementID",
      "Effect": "Allow",
      "Action": "s3:ListAllMyBuckets",
      "Resource": "*"
    }
  ]
}
```

------

El elemento `Sid` admite mayúsculas ASCII (A-Z), minúsculas (a-z) y números (0-9). 

IAM no se expone la `Sid` en la API de IAM. No puede recuperar una instrucción determinada basándose en este ID.

**nota**  
Algunos servicios de AWS (por ejemplo, Amazon SQS o Amazon SNS) podrían necesitar este elemento y además que fuera único. Para obtener información específica sobre los servicios para escribir políticas, consulte la documentación del servicio en el que trabaja.

# Elementos de política JSON de IAM: Effect
<a name="reference_policies_elements_effect"></a>

El elemento `Effect` es obligatorio y se utiliza para especificar si la declaración da como resultado un permiso o una denegación explícitos. Los valores válidos para `Effect` son `Allow` y `Deny`. El valor `Effect` distingue entre mayúsculas y minúsculas. 

```
"Effect":"Allow"
```

De forma predeterminada, se deniega el acceso a los recursos. Para permitir el acceso a un recurso, debe establecer el elemento `Effect` en `Allow`. Para anular un permiso (por ejemplo, para anular un permiso que, de lo contrario, estaría en vigor), establezca el elemento `Effect` en `Deny`. Para obtener más información, consulte [Lógica de evaluación de políticas](reference_policies_evaluation-logic.md).

# AWS Elemento de la política de JSON de: Principal
<a name="reference_policies_elements_principal"></a>

Utilice el elemento `Principal` en una política de JSON basada en recursos para especificar la entidad principal que tiene acceso permitido o denegado a un recurso. 

Puede utilizar el elemento `Principal` en las [políticas basadas en recursos](access_policies_identity-vs-resource.md). Varios servicios admiten políticas basadas en recursos, incluido IAM. El tipo de política basada en recursos de IAM es una política de confianza de roles. En los roles de IAM, utilice el elemento `Principal` en la política de confianza de roles para especificar quién puede asumir el rol. Para obtener acceso entre cuentas, debe especificar el identificador de 12 dígitos de la cuenta de confianza. Consulte [¿Qué es IAM Access Analyzer?](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html) para saber si las entidades principales de las cuentas fuera de su zona de confianza (cuenta u organización de confianza) tienen acceso para asumir sus roles.

**nota**  
Tras crear el rol, puede cambiar la cuenta a “\$1” para permitir que cualquiera pueda asumir el rol. Si lo hace, le recomendamos encarecidamente que limite el acceso al rol a través de otros medios, como, por ejemplo, un elemento `Condition` que limite el acceso únicamente a determinadas direcciones IP. No permita que todo el mundo pueda acceder al rol.

Otros ejemplos de recursos que admiten políticas basadas en recursos incluyen un bucket de Amazon S3 o una AWS KMS key.

No puede utilizar el elemento `Principal` en una política basada en identidad. Las políticas basadas en identidad son políticas de permisos que se adjuntan a identidades de IAM (usuarios, grupos o roles). En esos casos, la entidad principal queda implícita por la identidad a la que está adjunta la política.

**Topics**
+ [Cómo especificar una entidad principal](#Principal_specifying)
+ [Entidades principales de Cuenta de AWS](#principal-accounts)
+ [Entidades principales de rol de IAM](#principal-roles)
+ [Entidades principales de sesión de rol](#principal-role-session)
+ [Entidades principales federadas OIDC](#principal-federated-web-identity)
+ [Entidades principales federadas SAML](#principal-saml)
+ [Entidades principales de usuario de IAM](#principal-users)
+ [Entidades principales de IAM Identity Center](#principal-identity-users)
+ [Entidades principales de usuarios federados de AWS STS](#sts-session-principals)
+ [AWSEntidad principal del servicio de](#principal-services)
+ [Entidades principales de servicios de AWS en regiones registradas](#principal-services-in-opt-in-regions)
+ [Todas las entidades principales](#principal-anonymous)
+ [Más información](#Principal_more-info)

## Cómo especificar una entidad principal
<a name="Principal_specifying"></a>

Una entidad principal se especifica en el elemento `Principal` de una política basada en recursos o en claves de condición que admiten entidades principales.

Puede especificar cualquiera de las siguientes entidades principales en una política:
+ Cuenta de AWS y usuario raíz
+ Roles de IAM
+ Sesiones de rol 
+ Usuarios de IAM
+ Entidades principales de usuarios federados
+ AWSServicios de 
+ Todas las entidades principales

No puede identificar un grupo de usuarios como entidad principal en una política (como una política basada en recursos) porque los grupos están relacionados con los permisos, no con la autenticación, y las entidades principales las autentica IAM.

Puede especificar más de una entidad principal para cada uno de los tipos de entidad principal en las siguientes secciones mediante una matriz. Las matrices pueden tener uno o varios valores. Cuando se especifica más de una entidad principal en un elemento, se conceden permisos a cada una de ellas. Es un `OR` lógico y no un `AND` lógico, porque se autentica como una entidad principal a la vez. Si incluye más de un valor, utilice corchetes (`[` y `]`) y delimite con comas cada entrada de la matriz. En la siguiente política de ejemplo, se definen los permisos para la cuenta 123456789012 o la cuenta 555555555555.

```
"Principal" : { 
"AWS": [ 
  "123456789012",
  "555555555555" 
  ]
}
```

**nota**  
No puede utilizar un carácter comodín para buscar coincidencias con parte de un nombre de entidad principal o ARN. 

## Entidades principales de Cuenta de AWS
<a name="principal-accounts"></a>

Puede especificar identificadores de la Cuenta de AWS en el elemento `Principal` de una política basada en recursos o en claves de condición que admitan entidades principales. Esto delega autoridad en la cuenta. Cuando permite el acceso a otra cuenta, un administrador de esa cuenta debe conceder acceso a una identidad (usuario o rol de IAM) en dicha cuenta. Cuando especifica una Cuenta de AWS, puede usar el ARN de la cuenta (arn:aws:iam::*account-ID*:root) o una forma abreviada formada por el prefijo `"AWS":` seguido del ID de la cuenta.

Por ejemplo, si el ID de cuenta es `123456789012`, puede utilizar uno de los métodos siguientes para especificar esa cuenta en el elemento `Principal`:

```
"Principal": { "AWS": "arn:aws:iam::123456789012:root" }
```

```
"Principal": { "AWS": "123456789012" }
```

El ARN de la cuenta y el ID de cuenta abreviado se comportan de la misma manera. Ambos delegan permisos en la cuenta. Usar el ARN de la cuenta en el elemento `Principal` no limita los permisos solo al usuario raíz de la cuenta. 

**nota**  
Cuando guarda una política basada en recursos que incluye el ID de cuenta abreviado, el servicio podría convertirla en el ARN de la entidad principal. De este modo, no se modifica la funcionalidad de la política.

Algunos servicios de AWS admiten más opciones para especificar la entidad principal de una cuenta. Por ejemplo, Amazon S3 permite especificar un [ID de usuario canónico](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html#FindingCanonicalId) mediante el siguiente formato:

```
"Principal": { "CanonicalUser": "79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be" }
```

También puede especificar más de una Cuenta de AWS (o ID de usuario canónico) como entidad principal mediante una matriz. Por ejemplo, puede utilizar los tres métodos para especificar una entidad principal en una política de bucket.

```
"Principal": { 
  "AWS": [
    "arn:aws:iam::123456789012:root",
    "999999999999"
  ],
  "CanonicalUser": "79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be"
}
```

## Entidades principales de rol de IAM
<a name="principal-roles"></a>

Puede especificar ARN de entidades principales de rol de IAM en el elemento `Principal` de una política basada en recursos o en claves de condición que admitan entidades principales. Los roles de IAM son identidades. En IAM, las identidades son recursos a los que puede asignar permisos. Los roles confían en otra identidad autenticada para asumir ese rol. Esto incluye una entidad principal en AWS o un usuario de un proveedor de identidades (IdP) externo. Cuando una entidad principal o una identidad asume un rol, recibe credenciales de seguridad temporales con los permisos del rol asumido. Cuando utiliza esas credenciales de sesión para realizar operaciones en AWS, pasa a ser una *entidad principal de sesión de rol*.

Cuando especifica una entidad principal de rol en una política basada en recursos, los permisos efectivos de dicha entidad están limitados por cualquier tipo de política que limite los permisos para el rol. Esto incluye políticas de sesión y límites de permisos. Para obtener más información acerca de cómo se evalúan los permisos efectivos de una sesión de rol, consulte [Lógica de evaluación de políticas](reference_policies_evaluation-logic.md).

Para especificar el ARN de rol en el elemento `Principal`, utilice el siguiente formato:

```
"Principal": { "AWS": "arn:aws:iam::AWS-account-ID:role/role-name" }
```

**importante**  
Si el elemento `Principal` de una política de confianza de rol contiene un ARN que apunta a un rol de IAM concreto, dicho ARN se transforma en el ID exclusivo de la entidad principal del rol al guardar la política. Esto es útil para reducir el riesgo de que alguien aumente sus privilegios al eliminar y volver a crear el rol. Normalmente este ID no se muestra en la consola, ya que IAM utiliza una transformación inversa al ARN del rol cuando se muestra la política de confianza. Sin embargo, si elimina el rol, la relación se desvincula. La política dejará de aplicarse, aunque vuelva a crear el rol, ya que el ID de la entidad principal del rol nuevo ya no coincide con el ID almacenado en la política de confianza. Cuando esto ocurre, el ID de la entidad principal aparece en las políticas basadas en recursos porque AWS ya no puede asignarlo a un ARN válido. El resultado final es que, si elimina y vuelve a crear un rol al que se hace referencia en un elemento `Principal` de la política de confianza, deberá editar el rol para sustituir el ID de la entidad principal que ahora es incorrecto por el ARN correcto. El ARN se transforma una vez más en el nuevo ID de la entidad principal del rol al guardar la política. Para obtener más información, consulte [Descripción del manejo de los roles de IAM eliminados en las políticas de AWS](https://repost.aws/articles/ARSqFcxvd7R9u-gcFD9nmA5g/understanding-aws-s-handling-of-deleted-iam-roles-in-policies).

De forma alternativa, puede especificar la entidad principal de rol como la entidad principal en una política basada en recursos o [crear una política de permisos amplios](#principal-anonymous) que utilice la clave de condición `aws:PrincipalArn`. Cuando utiliza esta clave, a la entidad principal de la sesión de rol se le otorgan los permisos en función del ARN del rol asumido y no del ARN de la sesión resultante. Debido a que AWS no convierte los ARN de clave de condición en ID, los permisos concedidos al ARN del rol persisten si elimina el rol y, a continuación, crea un nuevo rol con el mismo nombre. Los permisos concedidos mediante la clave de condición `aws:PrincipalArn` con un comodín (\$1) en el elemento `Principal` no están limitados por los tipos de políticas basadas en identidad, tales como límites de permisos o políticas de sesión, a menos que las políticas basadas en la identidad contengan una denegación explícita.

## Entidades principales de sesión de rol
<a name="principal-role-session"></a>

Puede especificar sesiones de roles en el elemento `Principal` de una política basada en recursos o en claves de condición que admitan entidades principales. Cuando una entidad principal o una identidad asume un rol, recibe credenciales de seguridad temporales con los permisos del rol asumido. Cuando utiliza esas credenciales de sesión para realizar operaciones en AWS, pasa a ser una *entidad principal de sesión de rol*.

El formato que utilice para una entidad principal de sesión de rol depende de la operación de AWS STS que se utilizó para asumir el rol.

**importante**  
AWS recomienda, en lo posible, utilizar las [entidades principales del rol de IAM](#principal-roles) en sus políticas en lugar de las entidades principales del rol de sesión. Utilice las declaraciones `Condition` y las claves de condición para restringir aún más el acceso cuando sea necesario.

Para especificar el ARN de la entidad principal del rol de sesión o en el elemento `Principal`, utilice el siguiente formato:

```
"Principal": { "AWS": "arn:aws:sts::AWS-account-ID:assumed-role/role-name/role-session-name" }
```

Además, los administradores pueden diseñar un proceso para controlar cómo se emiten las sesiones de roles. Por ejemplo, pueden proporcionar una solución con un solo clic para sus usuarios que cree un nombre de sesión predecible. Si su administrador lo hace, puede utilizar las entidades principales de sesión de rol en sus políticas o claves de condición. De lo contrario, puede especificar el ARN del rol como entidad principal en la clave de condición `aws:PrincipalArn`. La forma en que especifica el rol como entidad principal puede cambiar los permisos efectivos para la sesión resultante. Para obtener más información, consulte [Entidades principales de rol de IAM](#principal-roles). 

## Entidades principales federadas OIDC
<a name="principal-federated-web-identity"></a>

Una entidad principal federada de OIDC es la entidad principal que se utiliza cuando se llama a la API de AWS STS `AssumeRoleWithWebIdentity` con un token web JSON (JWT) desde un IDP compatible con OIDC, también conocido como proveedor de OpenID (OP), para solicitar credenciales de AWS temporales. Una entidad principal federada de OIDC puede representar a un IDP de OIDC en su cuenta de AWS, o a los cuatro proveedores de identidad integrados: Login with Amazon, Google, Facebook y [Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/role-based-access-control.html).

Los usuarios, las cargas de trabajo o los sistemas a los que su IDP de OIDC les haya emitido un JWT pueden llamar a `AssumeRoleWithWebIdentity` con el JWT para solicitar credenciales de seguridad de AWS temporales para un rol de IAM configurado para confiar en el IDP de OIDC que emitió el JWT. El JWT puede ser un token de identificación, un token de acceso o un token JWT entregado por cualquier otro método, siempre que cumpla con los [requisitos enumerados en AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc.html#manage-oidc-provider-prerequisites). Para obtener más información, consulte [Escenarios habituales](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_federation_common_scenarios.html) y [Solicitud de credenciales a través de un proveedor de OIDC](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity).

Utilice este tipo de entidad principal en su política de confianza de funciones para permitir o denegar permisos para llamar a `AssumeRoleWIthWebIdentity` con un IDP de OIDC que exista en su cuenta de Cuenta de AWS o uno de los cuatro IDP integrados. Para especificar el ARN de la entidad principal federada de OICD en el elemento `Principal` de una política de confianza de rol, utilice los siguientes cuatro formatos para los IDP de OIDC integrados:

```
"Principal": { "Federated": "cognito-identity.amazonaws.com" }
```

```
"Principal": { "Federated": "www.amazon.com" }
```

```
"Principal": { "Federated": "graph.facebook.com" }
```

```
"Principal": { "Federated": "accounts.google.com" }
```

Cuando utiliza un proveedor de OIDC que agrega a su cuenta, como GitHub, especifique el ARN del proveedor en la política de confianza de rol. Esta configuración le permite escribir políticas de IAM que controlen el acceso específicamente para los usuarios autenticados a través de su proveedor de identidad personalizado.

```
"Principal": { "Federated": "arn:aws:iam::AWS-account-ID:oidc-provider/full-OIDC-identity-provider-URL" }
```

Por ejemplo, si GitHub fuera el proveedor de identidad web de confianza, el ARN de la sesión de rol de OICD en el elemento `Principal` de una política de confianza de rol, utiliza el siguiente formato:

```
"Principal": { "Federated": "arn:aws:iam::AWS-account-ID:oidc-provider/tokens.actions.githubusercontent.com" }
```

Consulte [Configurar OpenID Connect en Amazon Web Services](https://docs.github.com/en/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services) para obtener más información.

Las entidades principales federadas de OIDC no son compatibles con otros tipos de políticas que no sean las políticas de confianza de roles.

## Entidades principales federadas SAML
<a name="principal-saml"></a>

Una *entidad principal federada de SAML* es una entidad principal que se utiliza cuando se llama a la API de AWS STS `AssumeRoleWithSAML` para solicitar credenciales temporales de AWS mediante una aserción de SAML. Puede utilizar un proveedor de identidades (IDP) SAML para iniciar sesión y, a continuación, asumir un rol de IAM mediante esta operación. Al igual que `AssumeRoleWithWebIdentity`, `AssumeRoleWithSAML` no requiere credenciales de AWS para la autenticación. En su lugar, los usuarios primero se autentican con su proveedor de identidad SAML y, a continuación, realizan la llamada a la API de `AssumeRoleWithSAML` con su aserción de SAML, o son redirigidos a la página de inicio de sesión/SAML de AWS para iniciar sesión en la Consola de administración de AWS. Para obtener más información acerca de qué entidades principales pueden asumir un rol mediante esta operación, consulte [Comparación de credenciales AWS STS](id_credentials_sts-comparison.md).

Utilice este tipo de entidad principal en su política de confianza de rol para permitir o denegar permisos con base en el proveedor de identidad SAML de confianza. Para especificar el ARN de sesión de rol de identidad SAML en el elemento `Principal` de una política de confianza de rol, utilice el siguiente formato:

```
"Principal": { "Federated": "arn:aws:iam::AWS-account-ID:saml-provider/provider-name" }
```

## Entidades principales de usuario de IAM
<a name="principal-users"></a>

Puede especificar a los usuarios de IAM en el elemento `Principal` de una política basada en recursos o en claves de condición que admitan entidades principales.

**nota**  
En un elemento `Principal`, la parte del nombre de usuario del [*Nombre de recurso de Amazon* (ARN)](reference_identifiers.md#identifiers-arns) distingue entre mayúsculas y minúsculas.

```
"Principal": { "AWS": "arn:aws:iam::AWS-account-ID:user/user-name" }
```

```
"Principal": {
  "AWS": [
    "arn:aws:iam::AWS-account-ID:user/user-name-1", 
    "arn:aws:iam::AWS-account-ID:user/user-name-2"
  ]
}
```

Cuando especifica usuarios en un elemento `Principal`, no puede utilizar un comodín (`*`) para designar a “todos los usuarios”. Las entidades principales siempre tienen que designar a usuarios específicos. 

**importante**  
Si el elemento `Principal` de una política de confianza de rol contiene un ARN que apunta a un usuario de IAM concreto, IAM transforma al ARN en el ID principal exclusivo del usuario al guardar la política. Esto es útil para reducir el riesgo de que alguien aumente sus privilegios al eliminar y volver a crear el rol. Normalmente este ID no se muestra en la consola, ya que también existe una transformación inversa al ARN del usuario cuando se muestra la política de confianza. Sin embargo, si elimina el usuario, la relación se desvincula. La política ya no se aplica, incluso aunque vuelva a crear el usuario. Esto se debe a que el usuario nuevo tiene un ID de entidad principal nuevo que no coincide con el ID almacenado en la política de confianza. Cuando esto ocurre, el ID de la entidad principal aparece en las políticas basadas en recursos porque AWS ya no puede asignarlo a un ARN válido. El resultado final es que, si elimina y vuelve a crear un rol al que se hace referencia en un elemento `Principal` de la política de confianza, deberá editar el rol para sustituir el ID de la entidad principal que ahora es incorrecto por el ARN correcto. IAM transforma una vez más el ARN en el nuevo ID principal del usuario al guardar la política.

## Entidades principales de IAM Identity Center
<a name="principal-identity-users"></a>

En IAM Identity Center, la entidad principal en una política basada en recursos debe definirse como la entidad principal de Cuenta de AWS. Para especificar el acceso, haga referencia al ARN del rol del conjunto de permisos en el bloque de condiciones. Para obtener más información, consulte [Hacer referencia a los conjuntos de permisos en las políticas de recursos, Amazon EKS y AWS KMS](https://docs.aws.amazon.com/singlesignon/latest/userguide/referencingpermissionsets.html) en la *Guía del usuario de IAM Identity Center*.

## Entidades principales de usuarios federados de AWS STS
<a name="sts-session-principals"></a>

Puede especificar *sesiones de usuarios federados* en el elemento `Principal` de una política basada en recursos o en claves de condición que admitan entidades principales.

**importante**  
AWS recomienda limitar el uso de sesiones de usuarios federados de AWS STS. En su lugar, utilice [roles de IAM](IAM/latest/UserGuide/tutorial_cross-account-with-roles.html).

Una entidad principal de AWS STS de usuario federado se crea a través de la operación `GetFederationToken` llamada con credenciales de IAM de larga duración. Los permisos de usuario federado son la intersección de la entidad principal que llamó a `GetFederationToken` y las políticas de sesión pasadas como parámetros a la API de `GetFederationToken`.

En AWS, los usuarios de IAM o un Usuario raíz de la cuenta de AWS pueden autenticarse mediante claves de acceso a largo plazo. Para conocer las entidades principales que pueden federarse mediante esta operación, consulte [Comparación de credenciales AWS STS](id_credentials_sts-comparison.md).
+ **Usuario federado de IAM**: un usuario de IAM se federa mediante la operación `GetFederationToken` que da como resultado una sesión de usuario federado para dicho usuario de IAM.
+ **Usuario raíz federado**: un Usuario raíz se federa mediante la operación `GetFederationToken` que da como resultado una sesión de usuario federado para dicho Usuario raíz.

Cuando un usuario de IAM o usuario raíz solicita credenciales temporales de AWS STS mediante esta operación, inicia una sesión de usuario federado temporal. El ARN de esta sesión se basa en la identidad original que se federó.

Para especificar el ARN de sesión de usuario federado en el elemento `Principal`, utilice el siguiente formato:

```
"Principal": { "AWS": "arn:aws:sts::AWS-account-ID:federated-user/user-name" }
```

## AWSEntidad principal del servicio de
<a name="principal-services"></a>

Puede especificar servicios de AWS en el elemento `Principal` de una política basada en recursos o en claves de condición que admitan entidades principales. Una *entidad principal del servicio* es un identificador de un servicio. 

Los roles de IAM que puede asumir un servicio de AWS se denominan *[roles de servicio](id_roles.md#iam-term-service-role)*. Los roles de servicio deben incluir una política de confianza. Las *políticas de confianza* son políticas basadas en recursos que se asocian a un rol que define qué entidades principales pueden asumir el rol. Algunos roles de servicio tienen políticas de confianza predefinidas. Sin embargo, en algunos casos, debe especificar la entidad principal del servicio en la política de confianza. La entidad principal de servicio de una política de IAM no puede ser `"Service": "*"`.

**importante**  
El identificador de la entidad principal de un servicio incluye el nombre del servicio y suele tener el siguiente formato:  
`service-name.amazonaws.com`

El servicio define la entidad principal de servicio. Puede encontrar la entidad principal del servicio para algunos servicios al abrir [Servicios de AWS que funcionan con IAM](reference_aws-services-that-work-with-iam.md), comprobar si el servicio tiene **Sí **en la columna **Rol vinculado al servicio** y abrir el vínculo **Sí** a fin de ver la documentación del rol vinculado al servicio para ese servicio. Consulte la sección **Permisos de rol vinculados a servicios** de ese servicio para ver la entidad principal del servicio.

En el siguiente ejemplo, se muestra una política que puede asociarse a un rol de servicio. La política permite que dos servicios, Amazon ECS y Elastic Load Balancing, asuman el rol. Los servicios pueden realizar las tareas concedidas por la política de permisos asignada al rol (no se muestra). Para especificar varios elementos principales del servicio, no debe especificar dos elementos `Service`; solo puede tener uno. En cambio, utilice una gama de varios elementos principales del servicio como el valor de un único elemento `Service`.

```
"Principal": {
    "Service": [
        "ecs.amazonaws.com",
        "elasticloadbalancing.amazonaws.com"
   ]
}
```

## Entidades principales de servicios de AWS en regiones registradas
<a name="principal-services-in-opt-in-regions"></a>

Puede lanzar recursos en varias regiones de AWS, y debe registrarse en algunas de esas regiones. Para obtener una lista completa de las regiones en las que debe registrarse, consulte [Administración de regiones de AWS](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html) en la *Guía de Referencia general de AWS*.

Cuando un servicio de AWS de una región registrada realiza una solicitud dentro de la misma región, el formato del nombre de la entidad principal del servicio se identifica como la versión no regionalizada del nombre de la entidad principal del servicio:

`service-name.amazonaws.com`

Cuando un servicio de AWS de una región registrada realiza una solicitud interregional a otra región, el formato del nombre de la entidad principal del servicio se identifica como la versión regionalizada del nombre de la entidad principal del servicio:

`service-name.{region}.amazonaws.com`

Por ejemplo, supongamos que tiene un tema de Amazon SNS ubicado en la región `ap-southeast-1` y un bucket de Amazon S3 ubicado en la región registrada `ap-east-1`. Desea configurar las notificaciones del bucket de S3 para que puedan publicar mensajes en el tema de SNS. Para permitir que el servicio S3 publique mensajes en el tema de SNS, debe conceder permiso `sns:Publish` a la entidad principal del servicio S3 mediante la política de acceso basada en recursos del tema.

Si especifica la versión no regionalizada de la entidad principal del servicio S3, `s3.amazonaws.com`, en la política de acceso del tema, se producirá un error en la solicitud `sns:Publish` del bucket al tema. En el siguiente ejemplo, se especifica la entidad principal del servicio S3 no regionalizada en el elemento de política `Principal` de la política de acceso del tema de SNS.

```
"Principal": { "Service": "s3.amazonaws.com" }
```

Dado que el bucket se encuentra en una región registrada y la solicitud se realiza fuera de esa misma región, la entidad principal del servicio S3 aparece como nombre la entidad principal del servicio regionalizado, `s3.ap-east-1.amazonaws.com`. Debe utilizar el nombre de la entidad principal del servicio regionalizado cuando un servicio de AWS de una región registrada realice una solicitud a otra región. Una vez que se especifica el nombre de la entidad principal del servicio regionalizado, si el bucket realiza una solicitud `sns:Publish` al tema de SNS ubicado en otra región, la solicitud se procesará correctamente. En el siguiente ejemplo, se especifica la entidad principal del servicio S3 regionalizada en el elemento de política `Principal` de la política de acceso del tema de SNS.

```
"Principal": { "Service": "s3.ap-east-1.amazonaws.com" }
```

Las listas de autorizaciones basadas en políticas de recursos o entidades principales de servicios para solicitudes interregionales de una región registrada a otra región solo se procesarán correctamente si se especifica el nombre de la entidad principal del servicio regionalizado.

**nota**  
Para las políticas de confianza de roles de IAM, se recomienda utilizar el nombre de la entidad principal del servicio no regionalizado. Los recursos de IAM son globales, de modo que se puede utilizar el mismo rol en cualquier región.

## Todas las entidades principales
<a name="principal-anonymous"></a>

Puede utilizar un comodín (\$1) para especificar todas las entidades principales en el elemento `Principal` de una política basada en recursos o en claves de condición que admitan entidades principales. Los permisos de *concesión* de [Políticas basadas en recursos](access_policies.md#policies_resource-based) y las [claves de condición](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) se emplean para limitar las condiciones de una declaración de política.

**importante**  
Recomendamos encarecidamente que no utilice un comodín (\$1) en el elemento `Principal` de una política basada en recursos con un efecto `Allow` a menos que tenga la intención de conceder acceso público o anónimo. De lo contrario, especifique las entidades principales, servicios o cuentas de AWS en el elemento `Principal` y, a continuación, restrinja aún más el acceso en el elemento `Condition`. Esto es especialmente cierto para las políticas de confianza del rol de IAM, porque permiten que otras entidades principales lo sean también en su cuenta.

Para las políticas basadas en recursos, usar un comodín (\$1) con un efecto `Allow` concede acceso a todos los usuarios, incluidos los usuarios anónimos (acceso público). No se requieren otros permisos para las entidades principales de usuarios y rol de IAM dentro de su cuenta. Para las entidades principales de otras cuentas, también deben tener permisos basados en la identidad en su cuenta que les permitan acceder a su recurso. Esto se denomina [acceso entre cuentas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic-cross-account.html).

Para los usuarios anónimos, los siguientes elementos son equivalentes:

```
"Principal": "*"
```

```
"Principal" : { "AWS" : "*" }
```

No puede utilizar un carácter comodín para buscar coincidencias con parte de un nombre de entidad principal o ARN.

En el siguiente ejemplo se muestra una política basada en recursos que pueden utilizarse en lugar de [AWS Elemento de la política de JSON de: NotPrincipal](reference_policies_elements_notprincipal.md) para denegar explícitamente todas las entidades principales *excepto* para los especificados en el elemento `Condition`. Esta política debe [añadirse a un bucket de Amazon S3](https://docs.aws.amazon.com//AmazonS3/latest/userguide/add-bucket-policy.html).

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "UsePrincipalArnInsteadOfNotPrincipalWithDeny",
      "Effect": "Deny",
      "Action": "s3:*",
      "Principal": "*",
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/*",
        "arn:aws:s3:::amzn-s3-demo-bucket"
      ],
      "Condition": {
        "ArnNotEquals": {
          "aws:PrincipalArn": "arn:aws:iam::444455556666:user/user-name"
        }
      }
    }
  ]
}
```

------

## Más información
<a name="Principal_more-info"></a>

Para obtener más información, consulte los siguientes enlaces:
+ [Ejemplos de política de bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html) en la *Guía del usuario de Amazon Simple Storage Service*
+ [Políticas de ejemplo para Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/UsingIAMwithSNS.html#ExamplePolicies_SNS) en la *Guía para desarrolladores de Amazon Simple Notification Service*
+ [Ejemplos de políticas de Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSExamples.html) en la *Guía para desarrolladores de Amazon Simple Queue Service*
+ [Políticas de claves](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) en la *Guía para desarrolladores de AWS Key Management Service*
+ [Identificadores de cuenta](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html) en la *Referencia general de AWS*
+ [Federación OIDC](id_roles_providers_oidc.md)

# AWS Elemento de la política de JSON de: NotPrincipal
<a name="reference_policies_elements_notprincipal"></a>

El elemento `NotPrincipal` utiliza `"Effect":"Deny"` para denegar el acceso a todas las entidades principales ***excepto*** a la entidad principal especificada en el elemento `NotPrincipal`. Una entidad principal puede ser un usuario de IAM, una entidad principal de usuario federado de AWS STS, un rol de IAM, una sesión de rol asumido, Cuenta de AWS, un servicio de AWS u otro tipo de entidad principal. Para obtener más información sobre las entidades principales, consulte [AWS Elemento de la política de JSON de: Principal](reference_policies_elements_principal.md).

`NotPrincipal` se debe usar con `"Effect":"Deny"`. No se admite su uso con `"Effect":"Allow"`. 

**importante**  
No recomendamos el uso de `NotPrincipal` para políticas basadas en recursos nuevas como parte de la estrategia de autorización y seguridad. Cuando utilice `NotPrincipal`, puede ser difícil solucionar los efectos de varios tipos de política. En su lugar, recomendamos utilizar la clave de contexto `aws:PrincipalArn` con los operadores de condición de ARN.

## Puntos clave
<a name="notprincipal-key-points"></a>
+ El elemento `NotPrincipal` es compatible con políticas basadas en recursos para algunos servicios de AWS, incluidos los puntos de conexión de VPC. Las políticas basadas en recursos son políticas que se integran directamente en un recurso. No puede utilizar el elemento `NotPrincipal` en una política basada en identidad de IAM ni en una política de confianza de rol de IAM.
+ No utilice instrucciones de política basadas en recursos que incluyan un elemento de política `NotPrincipal` con un efecto `Deny` para los usuarios o roles de IAM que tengan una política de límite de permisos adjunta. El elemento `NotPrincipal` con efecto `Deny` siempre denegará cualquier entidad principal de IAM que tenga una política de límite de permisos adjunta, independientemente de los valores especificados en el elemento `NotPrincipal`. Esto provoca que algunos usuarios o roles de IAM que de otro modo tendrían acceso al recurso pierdan dicho acceso. Recomendamos cambiar las instrucciones de política basadas en recursos y utilizar el operador de condición [`ArnNotEquals`](reference_policies_elements_condition_operators.md#Conditions_ARN) con la clave de contexto [`aws:PrincipalArn`](reference_policies_condition-keys.md#condition-keys-principalarn) para limitar el acceso en lugar del elemento `NotPrincipal`. Para obtener información sobre los límites de permisos, consulte [Límites de permisos para las entidades de IAM](access_policies_boundaries.md).
+ Cuando utiliza `NotPrincipal`, también debe especificar el ARN de la cuenta de la entidad principal no denegada. De lo contrario, la política podría denegar el acceso a toda la cuenta que contenga el principal. En función del servicio que incluya en la política, AWS podría validar primero la cuenta y después al usuario. Si se está evaluando a un usuario de rol asumido (alguien que utiliza un rol), AWS podría validar primero la cuenta, después el rol y, por último, al usuario de rol asumido. El usuario de rol asumido se identifica mediante el nombre de la sesión de rol que se especifica cuando asumieron el rol. Por lo tanto, le recomendamos encarecidamente que incluya de forma explícita el ARN de la cuenta de un usuario, o que incluya tanto el ARN de un rol como el ARN de la cuenta que contenga dicho rol.
+ El elemento `NotPrincipal` no se admite en las políticas de control de servicios (SCP) ni en las políticas de control de recursos (RCP).

## Alternativas al elemento `NotPrincipal`
<a name="notprincipal-alternatives"></a>

Al administrar el control de acceso en AWS, puede haber casos en los que sea necesario denegar explícitamente el acceso de todas las entidades principales a un recurso, excepto para una o más entidades principales que especifique. AWS recomienda utilizar una instrucción Deny con claves de contexto de condición globales para un control más preciso y una solución de problemas más sencilla. En los siguientes ejemplos se muestran enfoques alternativos que utilizan operadores de condición, como `StringNotEquals` o `ArnNotEquals`, para denegar el acceso a todas las entidades principales excepto a las especificadas en el elemento Condition.

## Escenario de ejemplo con un rol de IAM
<a name="notprincipal-alternative-role"></a>

Puede utilizar una política basada en recursos con una instrucción Deny para impedir que todos los roles de IAM, excepto los especificados en el elemento Condition, accedan a sus recursos o los manipulen. Este enfoque sigue el principio de seguridad de AWS según el cual una denegación explícita siempre prevalece sobre cualquier instrucción Allow y ayuda a mantener el principio de privilegio mínimo en toda la infraestructura de AWS.

En lugar de utilizar `NotPrincipal`, se recomienda utilizar una instrucción Deny con claves de contexto de condición globales y un operador de condición como [`ArnNotEquals`](reference_policies_elements_condition_operators.md#Conditions_ARN) para permitir de forma explícita que un rol de IAM acceda a sus recursos. En el siguiente ejemplo, se usa [aws:PrincipalArn](reference_policies_condition-keys.md#condition-keys-principalarn) para permitir explícitamente que el rol `read-only-role` acceda a los buckets de Amazon S3 de la carpeta `Bucket_Account_Audit`.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyCrossAuditAccess",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::Bucket_Account_Audit",
        "arn:aws:s3:::Bucket_Account_Audit/*"
      ],
      "Condition": {
        "ArnNotEquals": {
          "aws:PrincipalArn": "arn:aws:iam::444455556666:role/read-only-role"
        }
      }
    }
  ]
}
```

------

## Escenario de ejemplo con una entidad principal de servicio
<a name="notprincipal-alternative-service-principal"></a>

Puede utilizar una instrucción Deny para impedir que todas las entidades principales de servicio, excepto las especificadas en el elemento `Condition`, accedan a sus recursos o los manipulen. Este enfoque resulta especialmente útil cuando necesita implementar controles de acceso detallados o establecer límites de seguridad entre los distintos servicios y aplicaciones en su entorno de AWS.

En lugar de utilizar `NotPrincipal`, se recomienda utilizar una instrucción Deny con claves de contexto de condición globales y el operador de condición [`StringNotEquals`](reference_policies_elements_condition_operators.md#Conditions_String) para permitir de forma explícita que una entidad principal de servicio acceda a sus recursos. En el siguiente ejemplo, se usa `aws:PrincipalServiceName` para permitir explícitamente que la entidad principal de servicio AWS CodeBuild acceda a los buckets de Amazon S3 de la carpeta `BUCKETNAME`.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyNotCodeBuildAccess",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::BUCKETNAME",
        "arn:aws:s3:::BUCKETNAME/*"
      ],
      "Condition": {
        "StringNotEqualsIfExists": {
          "aws:PrincipalServiceName": "codebuild.amazonaws.com"
        }
      }
    }
  ]
}
```

------

# Elementos de política JSON de IAM: Action
<a name="reference_policies_elements_action"></a>

El elemento `Action` describe la acción o las acciones específicas que se permitirán o denegarán. Las instrucciones deben incluir un elemento `Action` o un elemento `NotAction`. Cada servicio de AWS tiene su propio conjunto de acciones que describen las tareas que se pueden realizar con dicho servicio. Por ejemplo, la lista de acciones para Amazon S3 se puede encontrar en [Especificación de permisos en una política](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html) en la *Guía del usuario de Amazon Simple Storage Service*. Puede encontrar la lista de acciones de Amazon EC2 en la [Referencia de la API de Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/query-apis.html) y la lista de acciones de AWS Identity and Access Management se puede encontrar en la [Referencia de la API de IAM](https://docs.aws.amazon.com/IAM/latest/APIReference/API_Operations.html). Para encontrar la lista de acciones de otros servicios, consulte la [documentación](https://aws.amazon.com/documentation) de referencia de la API correspondiente al servicio.

AWS también proporciona información de referencia del servicio en formato JSON para agilizar la automatización de los flujos de trabajo de administración de políticas. Al contar con información de referencia del servicio, puede acceder a las acciones disponibles, recursos y condiciones clave en los Servicios de AWS desde archivos legibles por máquina. Para obtener más información, consulte [Información simplificada de Servicio de AWS para el acceso programático](https://docs.aws.amazon.com/service-authorization/latest/reference/service-reference.html) en la Referencia de autorización de servicio.

Los valores se especifican utilizando un espacio de nombres de servicio como un prefijo de acción (`iam`, `ec2`, `sqs`, `sns`, `s3`, etc.) seguido del nombre de la acción que debe permitirse o denegarse. El nombre debe coincidir con una acción compatible con el servicio. El prefijo y el nombre de acción no distinguen entre mayúsculas y minúsculas. Por ejemplo, `iam:ListAccessKeys` es igual que `IAM:listaccesskeys`. En los siguientes ejemplos se muestran elementos `Action` de diferentes servicios.

**Acción de Amazon SQS**

```
"Action": "sqs:SendMessage"
```

**Acción de Amazon EC**

```
"Action": "ec2:StartInstances"
```

**Acción de IAM**

```
"Action": "iam:ChangePassword"
```

**Acción de Amazon S**

```
"Action": "s3:GetObject"
```

Puede especificar varios valores para el elemento `Action`.

```
"Action": [ "sqs:SendMessage", "sqs:ReceiveMessage", "ec2:StartInstances", "iam:ChangePassword", "s3:GetObject" ]
```

Puede utilizar comodines de coincidencia de varios caracteres (`*`) y comodines de coincidencia de un solo carácter (`?`) para dar acceso a todas las acciones que ofrece el producto específico de AWS. Por ejemplo, el elemento `Action` siguiente se aplica a todas las acciones de S3.

```
"Action": "s3:*"
```

También puede utilizar comodines (`*` o `?`) como parte del nombre de la acción. Por ejemplo, el elemento `Action` siguiente se aplica a todas las acciones de IAM que contienen la cadena `AccessKey`, como `CreateAccessKey`, `DeleteAccessKey`, `ListAccessKeys` y `UpdateAccessKey`.

```
"Action": "iam:*AccessKey*"
```

Algunos servicios le permiten limitar las acciones que están disponibles. Por ejemplo, Amazon SQS le permite hacer que esté disponible solo un subconjunto de todas las acciones de Amazon SQS posibles. En ese caso, el comodín `*` no permite un control completo de la cola, simplemente permite únicamente el subconjunto de acciones que ha compartido. Para obtener más información, consulte [Explicación de permisos](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/acp-overview.html#PermissionTypes) en la *Guía del desarrollador de Amazon Simple Queue Service*.

# Elementos de política JSON de IAM: NotAction
<a name="reference_policies_elements_notaction"></a>

`NotAction` es un elemento de política avanzada que hace coincidir explícitamente todo, *salvo* la lista de acciones especificada. El uso de `NotAction` puede traducirse en una política abreviada; se publican únicamente unas cuantas acciones que no deben coincidir, en vez de publicar una larga lista de acciones que sí coincidirán. Las acciones especificadas en `NotAction` no se ven afectadas por el efecto `Allow` o `Deny` de una declaración de política. Esto, a su vez, significa que todas las acciones o servicios aplicables que no están en la lista están permitidos cuando se usa el efecto `Allow`. Además, las acciones o servicios que no están en la lista se deniegan cuando se usa el efecto `Deny`. Cuando se utiliza `NotAction` con el elemento `Resource`, proporciona el ámbito de la política. Esta es la forma en que AWS determina qué acciones o servicios son aplicables. Para obtener más información, consulte la siguiente política de ejemplo. 

**NotAction con Allow** 

Puede utilizar el elemento `NotAction` en una instrucción con `"Effect": "Allow"` para proporcionar acceso a todas las acciones de un servicio de AWS, salvo las acciones especificadas en `NotAction`. Puede utilizarla con el elemento `Resource` para proporcionar el ámbito de la política, limitando las acciones permitidas a las acciones que puede llevar a cabo en el recurso especificado.

En el siguiente ejemplo se permite a los usuarios obtener acceso a todas las acciones de Amazon S3 que se pueden realizar en cualquier recurso de S3, *salvo* la eliminación de un bucket. Esta política además no permite acciones en otros servicios, ya que otras acciones de servicio no son aplicables a los recursos de S3.

```
"Effect": "Allow",
"NotAction": "s3:DeleteBucket",
"Resource": "arn:aws:s3:::*",
```

En ocasiones, es posible que desee permitir el acceso a un gran número de acciones. El elemento `NotAction` le permite invertir la instrucción, lo que se traducirá en una lista de acciones más corta. Por ejemplo, debido al gran número de servicios de AWS, es posible que desee crear una política que permita al usuario hacer todo salvo obtener acceso a acciones de IAM.

En el siguiente ejemplo se permite a los usuarios obtener acceso a todas las acciones de todos los servicios de AWS, salvo IAM.

```
"Effect": "Allow",
"NotAction": "iam:*",
"Resource": "*"
```

Sea precavido al utilizar los elementos `NotAction` y `"Effect": "Allow"` en la misma instrucción o en otra instrucción de una misma política. `NotAction` hace coincidir todos los servicios y acciones que no se mencionan explícitamente en la lista o son aplicables al recurso especificado, lo que podría dar como resultado que se concediera a los usuarios más permisos de los que en realidad se pretendía.

**NotAction con Deny**

Puede utilizar el elemento `NotAction` en una instrucción con `"Effect": "Deny"` para denegar el acceso a todas los recursos de una lista, salvo las acciones especificadas en el elemento `NotAction`. Esta combinación no permite los elementos de la lista, pero deniega de forma explícita las acciones que no figuran en la lista. Debe seguir dando permiso las acciones que quiere permitir.

En el siguiente ejemplo condicional se deniega el acceso a las acciones no relacionadas con IAM cuando el usuario no ha iniciado la sesión con MFA. Si el usuario ha iniciado sesión con MFA, la condición `"Condition"` no se cumple y la instrucción `"Deny"` final no tiene efecto. Tenga en cuenta, sin embargo, que esto no supone conceder al usuario acceso a ninguna acción. Simplemente se deniegan explícitamente todas las acciones salvo las de IAM.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Sid": "DenyAllUsersNotUsingMFA",
        "Effect": "Deny",
        "NotAction": "iam:*",
        "Resource": "*",
        "Condition": {"BoolIfExists": {"aws:MultiFactorAuthPresent": "false"}}
    }]
}
```

------

Para ver una política de ejemplo que deniegue el acceso a las acciones fuera de las regiones especificadas, excepto las acciones de servicios determinados, consulte [AWS: deniega el acceso a AWS en función de la región solicitada.](reference_policies_examples_aws_deny-requested-region.md).

# Elementos de política JSON de IAM: Resource
<a name="reference_policies_elements_resource"></a>

El elemento `Resource` de una instrucción de política de IAM define el objeto o los objetos a los que se aplica la instrucción. Las instrucciones deben contener un elemento `Resource` o `NotResource`.

Especifica un recurso mediante un nombre de recurso de Amazon (ARN). El formato del ARN depende del Servicio de AWS y del recurso específico al que hace referencia. Si bien el formato del ARN varía, siempre se utiliza un ARN para identificar un recurso. Para obtener más información sobre el formato de los ARN, consulte [ARN de IAM](reference_identifiers.md#identifiers-arns). Para obtener información sobre cómo especificar un recurso, consulte la documentación del servicio para quiere escribir una instrucción.

**nota**  
Algunos Servicios de AWS no permiten especificar acciones para recursos individuales. En estos casos, cualquier acción que se enumere en el elemento `Action` o `NotAction` se aplica a todos los recursos de ese servicio. En ese caso, se utiliza el carácter comodín (`*`) en el elemento `Resource`.

El siguiente ejemplo hace referencia a una cola Amazon SQS específica.

```
"Resource": "arn:aws:sqs:us-east-2:account-ID-without-hyphens:queue1"
```

El siguiente ejemplo hace referencia al usuario de IAM llamado `Bob` en una Cuenta de AWS.

**nota**  
En un elemento de `Resource`, el nombre de usuario de IAM distingue entre mayúsculas y minúsculas.

```
"Resource": "arn:aws:iam::account-ID-without-hyphens:user/Bob"
```

## Uso de comodines en ARN de recursos
<a name="reference_policies_elements_resource_wildcards"></a>

Puede utilizar caracteres comodín (`*` y `?`) en los segmentos individuales de un ARN (las partes separadas por dos puntos) para representar:
+ Cualquier combinación de caracteres (`*`)
+ Cualquier carácter simple (`?`)

Puede utilizar varios caracteres `*` o `?` de cada segmento. Si el comodín `*` es el último carácter en un segmento de ARN de recurso, puede expandirse para que coincida más allá de los límites de los dos puntos. Le recomendamos que utilice comodines (`*` y `?`) en los segmentos de ARN, separados por dos puntos.

**nota**  
No se puede utilizar un carácter comodín en el segmento de servicio que identifica el producto de AWS. Para obtener más información sobre segmentos de ARN, consulte [Identificar los recursos de AWS con nombres de recursos de Amazon (ARN)](reference-arns.md).

El siguiente ejemplo hace referencia a todos los usuarios de IAM cuya ruta es `/accounting`. 

```
"Resource": "arn:aws:iam::account-ID-without-hyphens:user/accounting/*"
```

El siguiente ejemplo hace referencia a todos los elementos dentro de un bucket de Amazon S3 específico.

```
"Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
```

El carácter asterisco (`*`) puede expandirse para reemplazar todo dentro de un segmento, incluidos caracteres como una barra diagonal (`/`) que, de otro modo, podrían parecer delimitadores dentro de un espacio de nombres de servicio dado. Por ejemplo, considere el siguiente ARN de Amazon S3 como la misma lógica de expansión comodín que se aplica a todos los servicios.

```
"Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*/test/*"
```

Los comodines del ARN se aplican a todos los siguientes objetos del bucket, no solo al primer objeto de la lista.

```
amzn-s3-demo-bucket/1/test/object.jpg
amzn-s3-demo-bucket/1/2/test/object.jpg
amzn-s3-demo-bucket/1/2/test/3/object.jpg 
amzn-s3-demo-bucket/1/2/3/test/4/object.jpg
amzn-s3-demo-bucket/1///test///object.jpg
amzn-s3-demo-bucket/1/test/.jpg
amzn-s3-demo-bucket//test/object.jpg
amzn-s3-demo-bucket/1/test/
```

Considere los dos últimos objetos de la lista anterior. Un nombre de objeto de Amazon S3 puede comenzar o finalizar con el carácter de barra diagonal (`/`) que es delimitador convencional. Mientras que `/` funciona como delimitador, no hay ningún significado específico cuando este carácter se utiliza en un ARN de recurso. Se trata de la misma manera que a cualquier otro carácter válido. El ARN no coincidiría con los siguientes objetos:

```
amzn-s3-demo-bucket/1-test/object.jpg
amzn-s3-demo-bucket/test/object.jpg
amzn-s3-demo-bucket/1/2/test.jpg
```

## Especificación de varios recursos
<a name="reference_policies_elements_resource_multiple-resources"></a>

Puede especificar varios recursos en el elemento `Resource` mediante una matriz de ARN. El siguiente ejemplo hace referencia a dos tablas de DynamoDB.

```
"Resource": [
    "arn:aws:dynamodb:us-east-2:account-ID-without-hyphens:table/books_table",
    "arn:aws:dynamodb:us-east-2:account-ID-without-hyphens:table/magazines_table"
]
```

## Uso de variables de política en ARN de recursos
<a name="reference_policies_elements_resource_policy-variables"></a>

En el elemento `Resource`, puede utilizar [variables de política](reference_policies_variables.md) de JSON en la parte del ARN que identifica los recursos específicos (es decir, en la parte final del ARN). Por ejemplo, puede utilizar la clave `{aws:username}` como parte de un ARN de recurso para indicar que el nombre del usuario actual debe incluirse como parte del nombre del recurso. El siguiente ejemplo muestra cómo puede utilizar la clave `{aws:username}` en un elemento `Resource`. La política permite obtener acceso a una tabla de Amazon DynamoDB que coincide con el nombre de usuario actual.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": "dynamodb:*",
        "Resource": "arn:aws:dynamodb:us-east-2:111122223333:table/${aws:username}"
    }
}
```

------

Para obtener más información sobre las variables de las políticas de JSON, consulte [Elementos de la política de IAM: variables y etiquetas](reference_policies_variables.md).

# Elementos de política JSON de IAM: NotResource
<a name="reference_policies_elements_notresource"></a>

`NotResource` es un elemento de política avanzada que coincide explícitamente con todos los recursos excepto los especificados. El uso de `NotResource` puede traducirse en una política más abreviada; se publican únicamente unos cuantos recursos que no deben coincidir, en vez de incluir una larga lista de recursos que sí coincidirán. Esto resulta especialmente útil para las políticas que se aplican en un único servicio de AWS. 

Por ejemplo, supongamos que tiene un grupo denominado `HRPayroll`. Los miembros de `HRPayroll` no deben tener permiso para obtener acceso a todos los recursos de Amazon S3, a excepción de la carpeta `Payroll` del bucket `HRBucket`. La política siguiente deniega de forma explícita el acceso a todos los recursos de Amazon S3 que no sean los recursos publicados en la lista. Tenga en cuenta, sin embargo, que esta política no concede al usuario acceso a ningún recurso.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Deny",
    "Action": "s3:*",
    "NotResource": [
      "arn:aws:s3:::HRBucket/Payroll",
      "arn:aws:s3:::HRBucket/Payroll/*"
    ]
  }
}
```

------

Normalmente, para denegar explícitamente el acceso a un recurso debe escribir una política que utilice `"Effect":"Deny"` y que incluya un elemento `Resource` que enumere cada carpeta individualmente. Sin embargo, en dicho caso, cada vez que agregue una carpeta a `HRBucket` o agregue un recurso a Amazon S3; al que no se debe poder acceder, deberá agregar su nombre a la lista en el elemento `Resource`. Si, en su lugar, utiliza un elemento `NotResource`, se deniega automáticamente a los usuarios el acceso a las carpetas nuevas, salvo que añada los nombres de las carpetas al elemento `NotResource`. 

Cuando utilice `NotResource`, debe tener en cuenta que los recursos especificados en este elemento son los *únicos* recursos que no están limitados. Esto, a su vez, limita todos los recursos que se aplicarían a la acción. En el ejemplo anterior, la política solo afecta a las acciones de Amazon S3 y, por lo tanto, solo a los recursos de Amazon S3. Si el elemento `Action` también incluyera acciones de Amazon EC2, la política no denegaría el acceso a ninguno de los recursos de EC2 que no se especifiquen en el elemento `NotResource`. Para saber qué acciones de un servicio permiten especificar el ARN de un recurso, consulte [Acciones, recursos y claves de condición de los servicios de AWS](reference_policies_actions-resources-contextkeys.html).

## NotResource con otros elementos
<a name="notresource-element-combinations"></a>

**Nunca** debe utilizar los elementos `"Effect": "Allow"`, `"Action": "*"` y `"NotResource": "arn:aws:s3:::HRBucket"` de forma conjunta. Esta instrucción es muy peligrosa, ya que permite todas las acciones en AWS en todos los recursos excepto el bucket de S3 `HRBucket`. Esto incluso permitiría al usuario añadir una política a sí mismo que le permitiera obtener acceso a `HRBucket`. No lo haga. 

Sea precavido al utilizar los elementos `NotResource` y `"Effect": "Allow"` en la misma instrucción o en otra instrucción de una misma política. `NotResource` permite todos los servicios y recursos que no se mencionan explícitamente en la lista, lo que podría dar como resultado que se concediera a los usuarios más permisos de los que en realidad se pretendía. Con los elementos `NotResource` y `"Effect": "Deny"` en la misma declaración se deniegan los servicios y recursos que no se mencionan explícitamente.

# Elementos de política JSON de IAM: Condition
<a name="reference_policies_elements_condition"></a>

El elemento `Condition` (o el *bloque* `Condition`) permite especificar condiciones que se aplican cuando la política surte efecto. El elemento `Condition` es opcional. En el elemento `Condition`, se crean expresiones en las que se usan [operadores de condición](reference_policies_elements_condition_operators.md) (igual, menor que, etc.) para hacer coincidir las claves de contexto y los valores de la política con las claves y valores en el contexto de la solicitud. Para obtener más información sobre el contexto de la solicitud, consulte [Componentes de una solicitud](intro-structure.md#intro-structure-request).

```
"Condition" : { "{condition-operator}" : { "{condition-key}" : "{condition-value}" }}
```

La clave de contexto que especifique en una condición de política puede ser una [clave de contexto de condición global](reference_policies_condition-keys.md) o una clave de contexto específica de un servicio. Las claves de contexto de condición globales tienen el prefijo `aws:`. Las claves de contexto específicas de un servicio tienen el prefijo del servicio. Por ejemplo, Amazon EC2 le permite escribir una condición con la clave de contexto `ec2:InstanceType`, que es exclusiva de dicho servicio. Para ver las claves de contexto de IAM específicas del servicio con el prefijo `iam:`, consulte [Claves de contexto de condición de IAM y AWS STS](reference_policies_iam-condition-keys.md).

Los *nombres* de las claves de contexto no distinguen entre mayúsculas y minúsculas. Por ejemplo, la inclusión de la clave de contexto `aws:SourceIP` es equivalente a las pruebas de `AWS:SourceIp`. El uso de mayúsculas y minúsculas en los *valores* de la clave de contexto depende del [operador de condición](reference_policies_elements_condition_operators.md) que utilice. Por ejemplo, la siguiente condición incluye el operador `StringEquals` para garantizar que únicamente coincidan las solicitudes que realice `john`. A los usuarios denominados `John` se les niega el acceso.

```
"Condition" : { "StringEquals" : { "aws:username" : "john" }}
```

La siguiente condición utiliza el operador [`StringEqualsIgnoreCase`](reference_policies_elements_condition_operators.md#Conditions_String) para que coincida con los usuarios `john` o `John`.

```
"Condition" : { "StringEqualsIgnoreCase" : { "aws:username" : "john" }}
```

Algunas de las claves de contexto admiten los pares clave-valor, con los que puede especificar una parte del nombre de la clave. Entre los ejemplos se incluyen la clave de contexto [`aws:RequestTag/tag-key`](reference_policies_condition-keys.md#condition-keys-requesttag), la [https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-context](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-context) de AWS KMS y la clave de contexto [`ResourceTag/tag-key`](reference_policies_condition-keys.md#condition-keys-resourcetag) compatibles con varios servicios.
+ Si utiliza la clave de contexto `ResourceTag/tag-key` para un servicio como [Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-policy-structure.html#amazon-ec2-keys), debe especificar un nombre de clave para `tag-key`. 
+ **Los nombres de las claves no distinguen entre mayúsculas y minúsculas.** Esto significa que si especifica `"aws:ResourceTag/TagKey1": "Value1"` en el elemento de condición de su política, la condición coincidirá con una clave de etiqueta de recurso denominada `TagKey1` o `tagkey1`, pero no con ambas.
+ Los servicios de AWS que admiten estos atributos pueden permitirle crear varios nombres de clave que solo difieran por caso. Por ejemplo, puede etiquetar una instancia de Amazon EC2 con `ec2=test1` y `EC2=test2`. Cuando se utiliza una condición como `"aws:ResourceTag/EC2": "test1"` para permitir el acceso a dicho recurso, el nombre de clave coincide con ambas etiquetas, pero solo un valor coincide. Esto puede generar errores inesperados de la condición.

**importante**  
La práctica recomendada es que se asegure de que los miembros de su cuenta sigan una convención de nomenclatura coherente al nombrar los atributos de par clave-valor. Entre los ejemplos se incluyen etiquetas o contextos de cifrado de AWS KMS. Para imponer este comportamiento, utilice la clave de contexto [`aws:TagKeys`](reference_policies_condition-keys.md#condition-keys-tagkeys) para el etiquetado o [https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-context-keys](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-context-keys) para el contexto de cifrado de AWS KMS.
+ Para obtener una lista de todos los operadores de condición y una descripción de cómo funcionan, consulte [Operadores de condición](reference_policies_elements_condition_operators.md).
+ A menos que se especifique lo contrario, todas las claves de contexto pueden tener varios valores. Para ver una descripción de cómo gestionar las claves de contexto que tienen varios valores, consulte [Operadores de conjunto para claves de contexto multivalor](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).
+ Para obtener una lista de todas las claves de contexto disponibles en todo el mundo, consulte [Claves de contexto de condición globales de AWS](reference_policies_condition-keys.md).
+ Para conocer las claves de contexto de condición definidas por cada servicio, consulte [Acciones, recursos y claves de condición para servicios de AWS](reference_policies_actions-resources-contextkeys.html).

## El contexto de la solicitud
<a name="AccessPolicyLanguage_RequestContext"></a>

Cuando una [entidad principal](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html?icmpid=docs_homepage_addtlrcs#principal) realiza una [solicitud](intro-structure.md#intro-structure-request) a AWS, AWS recopila la información de la solicitud en un contexto de solicitud. El contexto de la solicitud incluye información sobre la entidad principal, los recursos, las acciones y otras propiedades del entorno. La evaluación de la política compara las propiedades de la política con las propiedades enviadas en la solicitud para evaluar y autorizar las acciones que puede realizar en AWS.

Puede utilizar el elemento `Condition` de una política JSON para probar claves de contexto específicas con respecto al contexto de la solicitud. Por ejemplo, puede crear una política que utilice la clave de contexto [aws:CurrentTime](reference_policies_condition-keys.md#condition-keys-currenttime) para [permitir a un usuario realizar acciones específicas solo durante un intervalo de fechas específico](reference_policies_examples_aws-dates.md).

En el siguiente ejemplo se muestra una representación del contexto de la solicitud cuando Martha Rivera envía una solicitud para desactivar su dispositivo de MFA.

```
Principal: AROA123456789EXAMPLE
Action: iam:DeactivateMFADevice
Resource: arn:aws:iam::user/martha
Context:
  – aws:UserId=AROA123456789EXAMPLE:martha
  – aws:PrincipalAccount=1123456789012
  – aws:PrincipalOrgId=o-example
  – aws:PrincipalARN=arn:aws:iam::1123456789012:assumed-role/TestAR
  – aws:MultiFactorAuthPresent=true
  – aws:MultiFactorAuthAge=2800
  – aws:CurrentTime=...
  – aws:EpochTime=...
  – aws:SourceIp=...
```

El contexto de la solicitud se compara con una política que permite a los usuarios eliminar su propio dispositivo de autenticación multifactor (MFA), pero solo si han iniciado sesión con la MFA en la última hora (3600 segundos).

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Sid": "AllowRemoveMfaOnlyIfRecentMfa",
        "Effect": "Allow",
        "Action": [
            "iam:DeactivateMFADevice"
        ],
        "Resource": "arn:aws:iam::*:user/${aws:username}",
        "Condition": {
            "NumericLessThanEquals": {"aws:MultiFactorAuthAge": "3600"}
        }
    }
}
```

------

En este ejemplo, la política coincide con el contexto de la solicitud: la acción es la misma, el recurso coincide con el comodín «\$1» y el valor para `aws:MultiFactorAuthAge` es 2800, que es inferior a 3600, por lo que la política permite esta solicitud de autorización.

AWS evalúa cada clave de contexto de la política y devuelve un valor de *verdadero* o *falso*. Una clave de contexto que no está presente en la solicitud no se considera una discordancia.

El contexto de la solicitud puede devolver los siguientes valores:
+ **True**: si el solicitante ha iniciado sesión con MFA en la última hora o menos, la condición devuelve *true*.
+ **False**: si el solicitante ha iniciado sesión con MFA hace más de una hora, la condición devuelve *false*.
  + **Not present**: si el solicitante realizó una solicitud con sus claves de acceso de usuario de IAM en la AWS CLI o la API de AWS, la clave no está presente. En este caso, la clave no está presente y no coincidirá.

**nota**  
En algunos casos, cuando el valor de la clave de condición no está presente, la condición puede devolver un valor verdadero. Por ejemplo, si agrega el calificador `ForAllValues`, la solicitud devuelve el valor verdadero si la clave de contexto no está en la solicitud. Para evitar que las claves de contexto que faltan o las claves de contexto con valores vacíos se evalúen como verdadero, puede incluir el [Operador de condición nula](reference_policies_elements_condition_operators.md#Conditions_Null) en su política con un valor `false` para comprobar si la clave de contexto existe y su valor no es nulo.

## El bloque de condición
<a name="AccessPolicyLanguage_ConditionBlock"></a>

En el siguiente ejemplo se muestra el formato básico de un elemento `Condition`:

```
"Condition": {"StringLike": {"s3:prefix": ["jane/*"]}}
```

Un valor de la solicitud está representado por una clave de contexto, en este caso `s3:prefix`. El valor de clave de contexto se compara con un valor que especifique como valor literal, como `jane/*`. El tipo de comparación que debe realizarse se especifica con el [operador de condición](reference_policies_elements_condition_operators.md) (aquí, `StringLike`). Puede crear condiciones para comparar cadenas, fechas, números, y más, mediante el uso de comparaciones booleanas típicas como igual, superior a e inferior a. Cuando se utilizan [operadores de cadena](reference_policies_elements_condition_operators.md#Conditions_String) u [operadores de ARN](reference_policies_elements_condition_operators.md#Conditions_ARN), también se puede utilizar una [variable de política](reference_policies_variables.md) en el valor de clave de contexto. El siguiente ejemplo incluye la variable `aws:username`. 

```
"Condition": {"StringLike": {"s3:prefix": ["${aws:username}/*"]}}
```

En determinadas circunstancias, las claves de contexto pueden contener múltiples valores. Por ejemplo, una solicitud a Amazon DynamoDB podría pedir la devolución o actualización de varios atributos de una tabla. Una política para obtener acceso a tablas de DynamoDB puede incluir la clave de contexto `dynamodb:Attributes`, que contiene todos los atributos indicados en la solicitud. Puede probar los diversos atributos de la solicitud con una lista de atributos permitidos de una política utilizando un conjunto de operadores del elemento `Condition`. Para obtener más información, consulte [Operadores de conjunto para claves de contexto multivalor](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys). 

Cuando se evalúa la política durante una solicitud, AWS sustituye la clave por el valor correspondiente de la solicitud. (En este ejemplo, AWS utilizaría la fecha y la hora de la solicitud). La condición se evalúa para devolver true o false, lo cual, a su vez, se examina para saber si la política en su conjunto permite o deniega la solicitud. 

### Múltiples valores en un elemento Condition
<a name="Condition-multiple-conditions"></a>

Un elemento `Condition` puede contener varios operadores de condición y cada uno de ellos puede contener, a su vez, varios pares de clave-valor de contexto. La siguiente figura ilustra este caso. 

![\[diagramas de bloques de operadores de dos condiciones. El primer bloque incluye dos marcadores de posición clave de contexto, cada uno con varios valores. El segundo bloque de condición incluye una clave de contexto con varios valores.\]](http://docs.aws.amazon.com/es_es/IAM/latest/UserGuide/images/AccessPolicyLanguage_Condition_Block.diagram.png)


Para obtener más información, consulte [Operadores de conjunto para claves de contexto multivalor](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys). 

# Elementos de la política de JSON de IAM: operadores de condición
<a name="reference_policies_elements_condition_operators"></a>

<a name="topiclist"></a>

Utilice operadores de condición en el elemento `Condition` para hacer coincidir la clave y el valor de la política con los valores del contexto de la solicitud. Para obtener más información sobre el parámetro `Condition`, consulte [Elementos de política JSON de IAM: Condition](reference_policies_elements_condition.md).

El operador de condición que puede utilizar en una política depende de la clave de condición que elija. Puede elegir una clave de condición global o una clave de condición específica del servicio. Para saber qué operador de condición puede utilizar para una clave de condición global, consulte [Claves de contexto de condición globales de AWS](reference_policies_condition-keys.md). Para saber qué operador de condición puede utilizar para una clave de condición específica de un servicio, consulte [Acciones, recursos y claves de condición para servicios de AWS](reference_policies_actions-resources-contextkeys.html) y elija el servicio que desea ver.

**importante**  
Si la clave especificada en una condición de política no está presente en el contexto de la solicitud, los valores no coincidirán y la condición es *falsa*. Si la condición de la política exige que la clave *no*coincida, como `StringNotLike` o `ArnNotLike` y la clave correcta no está presente, la condición es *verdadera*. Esta lógica se aplica a todos los operadores de condición excepto [...IfExists](#Conditions_IfExists) y [Null check](#Conditions_Null). Estos operadores prueban si la clave está presente (existe) en el contexto de la solicitud.

Los operadores de condición pueden agruparse en las categorías siguientes:
+ [cadena](#Conditions_String)
+ [Numérica](#Conditions_Numeric)
+ [Fecha y hora](#Conditions_Date)
+ [Booleano](#Conditions_Boolean)
+ [Binario](#Conditions_BinaryEquals)
+ [La dirección IP](#Conditions_IPAddress)
+ [Nombre de recurso de Amazon (ARN)](#Conditions_ARN) (disponible solo para determinados servicios).
+ [...IfExists](#Conditions_IfExists) (comprueba si el valor de clave existe como parte de otra comprobación)
+ [Null check](#Conditions_Null) (comprueba si el valor de clave existe como comprobación independiente)

## Operadores de condición de cadena
<a name="Conditions_String"></a>

Los operadores de condición de cadena le permiten desarrollar elementos `Condition` que restringen el acceso comparando una clave con el valor de una cadena.
+  **Variables de políticas**: [compatibles](reference_policies_variables.md)
+ **Caracteres comodín**: [compatibles](#Conditions_String-wildcard)


****  

| Operador de condición | Descripción | 
| --- | --- | 
|   `StringEquals`   |  Coincidencia exacta; distingue entre mayúsculas y minúsculas.  | 
|   `StringNotEquals`   |  Coincidencia negada.  | 
|   `StringEqualsIgnoreCase`   |  Coincidencia exacta; no distingue entre mayúsculas y minúsculas.  | 
|   `StringNotEqualsIgnoreCase`   |  Coincidencia negada; no distingue entre mayúsculas y minúsculas.  | 
|   `StringLike`   | Coincidencia que distingue entre mayúsculas y minúsculas. Los valores pueden incluir comodines de coincidencia de varios caracteres (\$1) y comodines de coincidencia de un único carácter (?) en cualquier parte de la cadena. Debe especificar caracteres comodín para lograr coincidencias de cadenas parciales.   Si una clave contiene varios valores, `StringLike` se puede calificar con un conjunto de operadores: `ForAllValues:StringLike` y `ForAnyValue:StringLike`. Para obtener más información, consulte [Operadores de conjunto para claves de contexto multivalor](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).   | 
|   `StringNotLike`   |  Coincidencia negada que distingue entre mayúsculas y minúsculas. Los valores pueden incluir comodines de coincidencia de varios caracteres (\$1) o comodines de coincidencia de un único carácter (?) en cualquier parte de la cadena.  | 

**Example operadores de condición de cadena**  
Por ejemplo, la instrucción siguiente contiene un elemento `Condition` que utiliza la clave [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principaltag](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principaltag) para especificar que el principal que realiza la solicitud debe etiquetarse con la categoría de trabajo `iamuser-admin`.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": "iam:*AccessKey*",
        "Resource": "arn:aws:iam::111122223333:user/*",
        "Condition": {
            "StringEquals": {
                "aws:PrincipalTag/job-category": "iamuser-admin"
            }
        }
    }
}
```
Si la clave especificada en una condición de política no está presente en el contexto de la solicitud, los valores no coincidirán. En este ejemplo, la clave `aws:PrincipalTag/job-category` está presente en el contexto de la solicitud si la entidad principal utiliza un usuario IAM con etiquetas asociadas. También se incluye para un principal con un rol de IAM con etiquetas o etiquetas de sesión asociadas. Si un usuario sin la etiqueta intenta ver o editar una clave de acceso, la condición devuelve `false` y la instrucción deniega la solicitud implícitamente.  
La siguiente tabla muestra cómo AWS evalúa esta política en función de los valores de clave de condición en su solicitud.  


| Condición de política | Contexto de la solicitud | Resultado | 
| --- | --- | --- | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/job-category": "iamuser-admin"<br />}</pre>  | <pre>aws:PrincipalTag/job-category:<br />  – iamuser-admin</pre>  |  Match | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/job-category": "iamuser-admin"<br />}</pre>  | <pre>aws:PrincipalTag/job-category:<br />  – dev-ops</pre>  | No match | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/job-category": "iamuser-admin"<br />}</pre>  |  No hay `aws:PrincipalTag/job-category` en el contexto de la solicitud.  | No match | 

**Example utilizar una variable de política con el operador de condición de cadena**  
En el siguiente ejemplo se utiliza el operador de condición `StringLike` para establecer una coincidencia de cadena con una [variable de política](reference_policies_variables.md) y crear una política que permita a un usuario de IAM utilizar la consola de Amazon S3 para administrar su propio "directorio principal" en un bucket de Amazon S3. La política permite las acciones especificadas en un bucket de S3, siempre y cuando `s3:prefix` coincida con uno de los patrones especificados.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListAllMyBuckets",
        "s3:GetBucketLocation"
      ],
      "Resource": "arn:aws:s3:::*"
    },
    {
      "Effect": "Allow",
      "Action": "s3:ListBucket",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
      "Condition": {
        "StringLike": {
          "s3:prefix": [
            "",
            "home/",
            "home/${aws:username}/"
          ]
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/home/${aws:username}",
        "arn:aws:s3:::amzn-s3-demo-bucket/home/${aws:username}/*"
      ]
    }
  ]
}
```
La siguiente tabla muestra cómo AWS evalúa esta política para diferentes usuarios en función del valor [aws:username](reference_policies_condition-keys.md#condition-keys-username) en el contexto de la solicitud.  


| Condición de política | El contexto de la solicitud | Resultado | 
| --- | --- | --- | 
|  <pre>"StringLike": {<br />  "s3:prefix": [<br />    "home/",<br />    "home/${aws:username}/"<br />  ]<br />}</pre>  | <pre>aws:username:<br />  – martha_rivera</pre>  | <pre>"StringLike": {<br />  "s3:prefix": [<br />    "home/",<br />    "home/martha_rivera/"<br />  ]<br />}</pre>  | 
|  <pre>"StringLike": {<br />  "s3:prefix": [<br />    "home/",<br />    "home/${aws:username}/"<br />  ]<br />}</pre>  |  <pre>aws:username:<br />  – nikki_wolf</pre>  |  <pre>"StringLike": {<br />  "s3:prefix": [<br />    "home/",<br />    "home/nikki_wolf/"<br />  ]<br />}</pre>  | 
|  <pre>"StringLike": {<br />  "s3:prefix": [<br />    "home/",<br />    "home/${aws:username}/"<br />  ]<br />}</pre>  |  No hay `aws:username` en el contexto de la solicitud.  | No match | 
Para ver un ejemplo de una política que muestre cómo utilizar el elemento `Condition` para restringir el acceso a recursos en función de un ID de aplicación y un ID de usuario de la federación de OIDC, consulte [Amazon S3: permite a los usuarios de Amazon Cognito obtener acceso a los objetos de su bucket](reference_policies_examples_s3_cognito-bucket.md). 

### Operadores de condición de cadena multivalor
<a name="conditions_string_multivalued"></a>

Si una clave de la solicitud contiene varios valores, los operadores de cadena pueden calificarse con operadores de conjunto `ForAllValues` y `ForAnyValue`. Para obtener más información sobre la lógica de evaluación de varias claves o valores de contexto, consulte [Operadores de conjunto para claves de contexto multivalor](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).


| Operador de condición | Descripción | 
| --- | --- | 
|  `ForAllValues:StringEquals` `ForAllValues:StringEqualsIgnoreCase`  |  Todos los valores de la clave de condición de la solicitud deben coincidir con al menos uno de los valores de su política.  | 
|  `ForAnyValue:StringEquals` `ForAnyValue:StringEqualsIgnoreCase`  |  Al menos un valor de clave de condición de la solicitud debe coincidir con uno de los valores de la política.  | 
|  `ForAllValues:StringNotEquals` `ForAllValues:StringNotEqualsIgnoreCase`  |  Coincidencia negada. Ninguno de los valores de la clave de contexto en la solicitud puede coincidir con ninguno de los valores de clave de contexto en su política.  | 
|  `ForAnyValue:StringNotEquals` `ForAnyValue:StringNotEqualsIgnoreCase`  |  Coincidencia negada. Al menos un valor de clave de contexto de la solicitud NO debe coincidir con ninguno de los valores de la clave de contexto de la política.  | 
|  `ForAllValues:StringLike`  |  Todos los valores de la clave de condición de la solicitud deben coincidir con al menos uno de los valores de su política.  | 
|  `ForAnyValue:StringLike`  |  Al menos un valor de clave de condición de la solicitud debe coincidir con uno de los valores de la política.  | 
|  `ForAllValues:StringNotLike`  |  Coincidencia negada. Ninguno de los valores de la clave de contexto en la solicitud puede coincidir con ninguno de los valores de clave de contexto en su política.  | 
|  `ForAnyValue:StringNotLike`  |  Coincidencia negada. Al menos un valor de clave de contexto de la solicitud NO debe coincidir con ninguno de los valores de la clave de contexto de la política.  | 

**Example usar `ForAnyValue` con un operador de condición de cadena**  
Este ejemplo muestra cómo podría crear una política basada en identidad que permite utilizar la acción `CreateTags` de Amazon EC2 para asociar etiquetas a una instancia. Cuando utilice `StringEqualsIgnoreCase`, puede asociar etiquetas solo si la etiqueta contiene la clave `environment` con los valores `preprod` o `storage`. Al anexar `IgnoreCase` al operador, se permite que cualquier capitalización de los valores de etiqueta existentes, como `preprod`, `Preprod` y `PreProd`, se resuelva como verdadero.  
Al añadir el modificador `ForAnyValue` con la clave de condición [aws:TagKeys](reference_policies_condition-keys.md#condition-keys-tagkeys), al menos un valor de clave de etiqueta de la solicitud debe coincidir con el valor `environment`. La comparación `ForAnyValue` distingue entre mayúsculas y minúsculas, lo que impide que los usuarios utilicen mayúsculas y minúsculas incorrectas para la clave de etiqueta, como utilizar `Environment` en lugar de `environment`.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": "ec2:CreateTags",
    "Resource": "arn:aws:ec2:*:*:instance/*",
    "Condition": {
      "StringEqualsIgnoreCase": {
        "aws:RequestTag/environment": [
          "preprod",
          "storage"
        ]
      },
      "ForAnyValue:StringEquals": {
        "aws:TagKeys": "environment"
      }
    }
  }
}
```
 La siguiente tabla muestra cómo AWS evalúa esta política en función de los valores de clave de condición en su solicitud.   


| Condición de política | El contexto de la solicitud | Resultado | 
| --- | --- | --- | 
|  <pre>"StringEqualsIgnoreCase": {<br />  "aws:RequestTag/environment": [<br />    "preprod",<br />    "storage"<br />  ]<br />},<br />"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "environment"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />aws:RequestTag/environment:<br />  – preprod</pre>  | Match  | 
|  <pre>"StringEqualsIgnoreCase": {<br />  "aws:RequestTag/environment": [<br />    "preprod",<br />    "storage"<br />  ]<br />},<br />"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "environment"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />  – costcenter<br />aws:RequestTag/environment:<br />  – PreProd</pre>  | Match  | 
|  <pre>"StringEqualsIgnoreCase": {<br />  "aws:RequestTag/environment": [<br />    "preprod",<br />    "storage"<br />  ]<br />},<br />"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "environment"<br />}</pre>  | <pre>aws:TagKeys:<br />  – Environment<br />aws:RequestTag/Environment:<br />  – preprod</pre>  | No match  | 
|  <pre>"StringEqualsIgnoreCase": {<br />  "aws:RequestTag/environment": [<br />    "preprod",<br />    "storage"<br />  ]<br />},<br />"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "environment"<br />}</pre>  | <pre>aws:TagKeys:<br />  – costcenter<br />aws:RequestTag/environment:<br />  – preprod</pre>  | No match  | 
|  <pre>"StringEqualsIgnoreCase": {<br />  "aws:RequestTag/environment": [<br />    "preprod",<br />    "storage"<br />  ]<br />},<br />"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "environment"<br />}</pre>  |  No hay `aws:TagKeys` en el contexto de la solicitud. <pre>aws:RequestTag/environment:<br />  – storage</pre>  | No match  | 
|  <pre>"StringEqualsIgnoreCase": {<br />  "aws:RequestTag/environment": [<br />    "preprod",<br />    "storage"<br />  ]<br />},<br />"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "environment"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment</pre> No hay `aws:RequestTag/environment` en el contexto de la solicitud.  | No match  | 
|  <pre>"StringEqualsIgnoreCase": {<br />  "aws:RequestTag/environment": [<br />    "preprod",<br />    "storage"<br />  ]<br />},<br />"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "environment"<br />}</pre>  |  No hay `aws:TagKeys` en el contexto de la solicitud. No hay `aws:RequestTag/environment` en el contexto de la solicitud.  | No match  | 

### Coincidencia de caracteres comodín
<a name="Conditions_String-wildcard"></a>

Los operadores de condición de cadena realizan una coincidencia sin patrones que no impone un formato predefinido. Los operadores de condición de ARN y fecha son un subconjunto de operadores de cadena que imponen una estructura al valor de la clave de condición.

Le recomendamos que utilice operadores de condición que se correspondan con los valores con los que está comparando las claves. Por ejemplo, debe utilizar [Operadores de condición de cadena](#Conditions_String) al comparar claves con valores de cadena. Del mismo modo, se debe utilizar [Operadores de condición de nombre de recurso de Amazon (ARN)](#Conditions_ARN) al comparar claves con valores de ARN.

**Example**  
Este ejemplo muestra cómo puede crear un límite alrededor de los recursos de su organización. La condición de esta política deniega el acceso a las acciones de Amazon S3 a menos que el recurso al que se accede se encuentre en un conjunto específico de unidades organizativas (OU) en AWS Organizations. Una ruta AWS Organizations es una representación de texto de la estructura de una entidad de la organización.  
La condición requiere que `aws:ResourceOrgPaths` contenga alguna de las rutas de OU enumeradas. Como `aws:ResourceOrgPaths` es una condición con varios valores, la política utiliza el operador `ForAllValues:StringNotLike` para comparar los valores de `aws:ResourceOrgPaths` con la lista de OU en la política.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyS3AccessOutsideMyBoundary",
      "Effect": "Deny",
      "Action": [
        "s3:*"
      ],
      "Resource": "*",
      "Condition": {
        "ForAllValues:StringNotLike": {
          "aws:ResourceOrgPaths": [
            "o-acorg/r-acroot/ou-acroot-mediaou/",
            "o-acorg/r-acroot/ou-acroot-sportsou/*"
          ] 
        }
      }
    }
  ]
}
```
La siguiente tabla muestra cómo AWS evalúa esta política en función de los valores de clave de condición en su solicitud.  


| Condición de política | El contexto de la solicitud | Resultado | 
| --- | --- | --- | 
|  <pre>"ForAllValues:StringNotLike": {<br />  "aws:ResourceOrgPaths": [<br />    "o-acorg/r-acroot/ou-acroot-mediaou/",<br />    "o-acorg/r-acroot/ou-acroot-sportsou/*"<br />  ] <br />}</pre>  | <pre>aws:ResourceOrgPaths:<br />  – o-acorg/r-acroot/ou-acroot-sportsou/costcenter/</pre>  | Match | 
|  <pre>"ForAllValues:StringNotLike": {<br />  "aws:ResourceOrgPaths": [<br />    "o-acorg/r-acroot/ou-acroot-mediaou/",<br />    "o-acorg/r-acroot/ou-acroot-sportsou/*"<br />  ] <br />}</pre>  | <pre>aws:ResourceOrgPaths:<br />  – o-acorg/r-acroot/ou-acroot-mediaou/costcenter/</pre>  | No match | 
|  <pre>"ForAllValues:StringNotLike": {<br />  "aws:ResourceOrgPaths": [<br />    "o-acorg/r-acroot/ou-acroot-mediaou/",<br />    "o-acorg/r-acroot/ou-acroot-sportsou/*"<br />  ] <br />}</pre>  |  No hay `aws:ResourceOrgPaths:` en la solicitud.  | Sin coincidencia | 

## Operadores de condición numérica
<a name="Conditions_Numeric"></a>

Los operadores de condición numérica le permiten desarrollar elementos `Condition` que restringen el acceso comparando una clave con un valor entero o un valor decimal.
+  **Variables de política**: no compatibles
+ **Caracteres comodín**: no compatibles


****  

| Operador de condición | Descripción | 
| --- | --- | 
|   `NumericEquals`   |  Coincidencia  | 
|   `NumericNotEquals`   |  Coincidencia negada.  | 
|   `NumericLessThan`   |  Coincidencia "menos que"  | 
|   `NumericLessThanEquals`   |  Coincidencia "menos que o igual"  | 
|   `NumericGreaterThan`   |  Coincidencia "más que"  | 
|   `NumericGreaterThanEquals`   |  Coincidencia "superior a o igual"  | 

Por ejemplo, la siguiente instrucción contiene un elemento `Condition` que utiliza el operador de condición `NumericLessThanEquals` con la clave `s3:max-keys` para especificar que el solicitante puede incluir en la lista *hasta* 10 objetos en `amzn-s3-demo-bucket` a la vez.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": "s3:ListBucket",
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
    "Condition": {"NumericLessThanEquals": {"s3:max-keys": "10"}}
  }
}
```

------

Si la clave especificada en una condición de política no está presente en el contexto de la solicitud, los valores no coincidirán. En este ejemplo, la clave `s3:max-keys` siempre está presente en la solicitud cuando se realiza la operación `ListBucket`. Si esta política permitía todas las operaciones de Amazon S3, solo se permitirían las operaciones que incluyen la clave de contexto `max-keys` con un valor inferior o igual a 10. 

## Operadores de condición de fecha
<a name="Conditions_Date"></a>

Los operadores de condición de fecha le permiten desarrollar elementos `Condition` que restringen el acceso comparando una clave con el valor de una fecha/hora. Los operadores de condición se usan con la clave [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-currenttime](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-currenttime) o la clave [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-epochtime](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-epochtime). Debe especificar valores de fecha y hora con una de las [implementaciones W3C de los formatos de fecha ISO 8601](http://www.w3.org/TR/NOTE-datetime) o en la fecha de inicio (UNIX). 
+  **Variables de política**: no compatibles
+ **Caracteres comodín**: no compatibles


****  

| Operador de condición | Descripción | 
| --- | --- | 
|   `DateEquals`   |  Coincidencia con una fecha específica.  | 
|   `DateNotEquals`   |  Coincidencia negada.  | 
|   `DateLessThan`   |  Coincidencia antes de una fecha y hora específicas.  | 
|   `DateLessThanEquals`   |  Coincidencia en una fecha y hora específicas o antes.  | 
|   `DateGreaterThan`   |  Coincidencia después de una fecha y hora específicas.  | 
|   `DateGreaterThanEquals`   |  Coincidencia en una fecha y hora específicas o después.  | 

Por ejemplo, la instrucción siguiente contiene un elemento `Condition` que utiliza el operador de condición `DateGreaterThan` con la clave [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tokenissuetime](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tokenissuetime). Esta condición especifica que las credenciales de seguridad temporales utilizadas para realizar la solicitud se emitieron en 2020. Esta política se puede actualizar mediante programación todos los días para asegurarse de que los miembros de la cuenta utilizan credenciales nuevas.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": "iam:*AccessKey*",
        "Resource": "arn:aws:iam::111122223333:user/*",
        "Condition": {
            "DateGreaterThan": {
                "aws:TokenIssueTime": "2020-01-01T00:00:01Z"
            }
        }
    }
}
```

------

Si la clave especificada en una condición de política no está presente en el contexto de la solicitud, los valores no coincidirán. La clave `aws:TokenIssueTime` está presente en el contexto de la solicitud solo cuando el principal utiliza credenciales temporales para realizar la solicitud. La clave no está presente en solicitudes de la AWS CLI, la API de AWS o el AWS SDK realizadas con claves de acceso. En este ejemplo, si un usuario de IAM intenta ver o editar una clave de acceso, se deniega la solicitud.

## Operadores de condición booleanos
<a name="Conditions_Boolean"></a>

Las condiciones booleanas le permiten crear elementos `Condition` que restringen el acceso comparando una clave con `true` o `false`.

Si una clave contiene varios valores, los operadores booleanos pueden calificarse con operadores de conjunto `ForAllValues` y `ForAnyValue`. Para obtener más información sobre la lógica de evaluación de varias claves o valores de contexto, consulte [Operadores de conjunto para claves de contexto multivalor](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).
+  **Variables de políticas**: [compatibles](reference_policies_variables.md)
+ **Caracteres comodín**: no compatibles


****  

| Operador de condición | Descripción | 
| --- | --- | 
|   `Bool`   |  Coincidencia booleana  | 
|   `ForAllValues:Bool`   |  Se utiliza con el tipo de datos Array of Bool. Todos los valores booleanos de los valores clave del contexto deben coincidir con los valores booleanos de la política. Para evitar que los operadores `ForAllValues` evalúen como permitidas claves de contexto omitidas o claves de contexto con valores vacíos, puede incluir el [Operador de condición nulo](#Conditions_Null) en su política.  | 
|   `ForAnyValue:Bool`   |  Se utiliza con el tipo de datos Array of Bool. Al menos uno de los valores booleanos de los valores clave del contexto debe coincidir con los valores booleanos de la política.  | 

**Example operadores de condición booleanos**  
La siguiente política basada en identidad utiliza el operador de condición `Bool` con la clave [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-securetransport](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-securetransport) para denegar la replicación de objetos y etiquetas de objetos en el bucket de destino y su contenido si la solicitud no se lleva a cabo a través de SSL.  
Esta política no permite ninguna acción. Utilice esta política en combinación con otras políticas que permiten acciones específicas.   
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "BooleanExample",
      "Action": "s3:ReplicateObject",
      "Effect": "Deny",
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket",
        "arn:aws:s3:::amzn-s3-demo-bucket/*"
      ],
      "Condition": {
        "Bool": {
          "aws:SecureTransport": "false"
        }
      }
    }
  ]
}
```
La siguiente tabla muestra cómo AWS evalúa esta política en función de los valores de clave de condición en su solicitud.  


| Condición de política | El contexto de la solicitud | Resultado | 
| --- | --- | --- | 
|  <pre>"Bool": {<br />  "aws:SecureTransport": "false"<br />}</pre>  | <pre>aws:SecureTransport:<br />  – false</pre>  | Match | 
|  <pre>"Bool": {<br />  "aws:SecureTransport": "false"<br />}</pre>  | <pre>aws:SecureTransport:<br />  – true</pre>  | No match | 
|  <pre>"Bool": {<br />  "aws:SecureTransport": "false"<br />}</pre>  |  No hay `aws:SecureTransport` en el contexto de la solicitud.  | No match | 

## Operadores de condición binaria
<a name="Conditions_BinaryEquals"></a>

El operador de condición `BinaryEquals` le permite crear elementos `Condition` que prueban valores de clave que están en formato binario. Compara el valor del byte de la clave especificada con una representación codificada en [base 64](https://en.wikipedia.org/wiki/Base64) del valor binario de la política. Si la clave especificada en una condición de política no está presente en el contexto de la solicitud, los valores no coincidirán.
+  **Variables de política**: no compatibles
+ **Caracteres comodín**: no compatibles

```
"Condition" : {
  "BinaryEquals": {
    "key" : "QmluYXJ5VmFsdWVJbkJhc2U2NA=="
  }
}
```


| Condición de política | El contexto de la solicitud | Resultado | 
| --- | --- | --- | 
|  <pre>"BinaryEquals": {<br />  "key" : "QmluYXJ5VmFsdWVJbkJhc2U2NA=="<br />}</pre>  | <pre>key:<br />  – QmluYXJ5VmFsdWVJbkJhc2U2NA==</pre>  | Match | 
|  <pre>"BinaryEquals": {<br />  "key" : "QmluYXJ5VmFsdWVJbkJhc2U2NA=="<br />}</pre>  | <pre>key:<br />  – ASIAIOSFODNN7EXAMPLE</pre>  | No match | 
|  <pre>"BinaryEquals": {<br />  "key" : "QmluYXJ5VmFsdWVJbkJhc2U2NA=="<br />}</pre>  |  No hay `key` en el contexto de la solicitud.  | No match | 

## Operadores de condición de dirección IP
<a name="Conditions_IPAddress"></a>

Los operadores de condición de la dirección IP le permiten crear elementos `Condition` que restringen el acceso basándose en una comparación de una clave con una dirección IPv4 o IPv6 o un rango de direcciones IP. Puede utilizarlos con la clave [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceip](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceip). El valor debe tener el formato CIDR estándar (por ejemplo, 203.0.113.0/24 o 2001: DB8:1234:5678::/64). Si especifica una dirección IP sin el prefijo de enrutamiento asociado, IAM utiliza el valor del prefijo predeterminado `/32`.

Algunos dispositivos AWS admiten IPv6 utilizando :: para representar un rango de 0. Para saber si un servicio es compatible con IPv6, consulte la documentación correspondiente a dicho servicio.
+  **Variables de política**: no compatibles
+ **Caracteres comodín**: no compatibles


****  

| Operador de condición | Descripción | 
| --- | --- | 
|   `IpAddress`   |  La dirección o el rango IP especificado  | 
|   `NotIpAddress`   |  Todas las direcciones IP, salvo la dirección o el rango IP especificado  | 

**Example Operador de condición de dirección IP**  
La siguiente instrucción utiliza el operador de condición `IpAddress` con la clave `aws:SourceIp` para especificar que la solicitud debe provenir del rango IP 203.0.113.0 a 203.0.113.255.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": "iam:*AccessKey*",
        "Resource": "arn:aws:iam::111122223333:user/*",
        "Condition": {
            "IpAddress": {
                "aws:SourceIp": "203.0.113.0/24"
            }
        }
    }
}
```
La clave de condición `aws:SourceIp` se resuelve en la dirección IP de la que proviene la solicitud. Si la solicitud se origina en una instancia de Amazon EC2, `aws:SourceIp` toma el valor de la dirección IP pública de la instancia.   
Si la clave especificada en una condición de política no está presente en el contexto de la solicitud, los valores no coincidirán. La clave `aws:SourceIp` se incluye siempre en el contexto de la solicitud, excepto cuando el solicitante utiliza un punto de enlace de la VPC para realizar la solicitud. En este caso, la condición devuelve `false` y la instrucción deniega la solicitud implícitamente.  
La siguiente tabla muestra cómo AWS evalúa esta política en función de los valores de clave de condición en su solicitud.  


| Condición de política | El contexto de la solicitud | Resultado | 
| --- | --- | --- | 
|  <pre>"IpAddress": {<br />  "aws:SourceIp": "203.0.113.0/24"<br />}</pre>  | <pre>aws:SourceIp:<br />  – 203.0.113.1</pre>  | Match | 
|  <pre>"IpAddress": {<br />  "aws:SourceIp": "203.0.113.0/24"<br />}</pre>  | <pre>aws:SourceIp:<br />  – 198.51.100.1</pre>  | No match | 
En el siguiente ejemplo se muestra cómo combinar direcciones IPv4 e IPv6 para incluir todas las direcciones IP válidas de su organización. Le recomendamos que actualice las políticas de su organización con los rangos de direcciones IPv6 además de los rangos de IPv4 que ya tiene para asegurarse de que las políticas seguirán funcionando a medida que realiza la transición a IPv6.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": "someservice:*",
    "Resource": "*",
    "Condition": {
      "IpAddress": {
        "aws:SourceIp": [
          "203.0.113.0/24",
          "2001:DB8:1234:5678::/64"
        ]
      }
    }
  }
}
```
La clave de condición `aws:SourceIp` funciona solo en una política JSON si se llama a la API que se está probando directamente como usuario. Si en su lugar utiliza un servicio para llamar al servicio de destino en su nombre, el servicio de destino verá la dirección IP del servicio de llamada en lugar de la dirección IP del usuario de origen. Esto puede ocurrir, por ejemplo, si utiliza AWS CloudFormation para llamar a Amazon EC2 para crear instancias en su lugar. Actualmente no se puede transferir la dirección IP de origen mediante un servicio de llamada al servicio de destino para que lo evalúe una política de JSON. En este tipo de llamadas a la API de servicio, no utilice la clave de condición `aws:SourceIp`.

## Operadores de condición de nombre de recurso de Amazon (ARN)
<a name="Conditions_ARN"></a>

Los operadores de condición de nombre de recurso de Amazon (ARN) le permiten crear elementos `Condition` que restringen el acceso comparando una clave con un ARN. El ARN se considera una cadena.
+  **Variables de políticas**: [compatibles](reference_policies_variables.md)
+ **Caracteres comodín**: [compatibles](reference_policies_elements_resource.md#reference_policies_elements_resource_wildcards)


****  

| Operador de condición | Descripción | 
| --- | --- | 
|   `ArnEquals`, `ArnLike`  |  Coincidencia del ARN que distingue entre mayúsculas y minúsculas. Cada uno de los seis componentes del ARN delimitados por dos puntos se comprueba por separado y cada uno de ellos puede incluir comodines de coincidencia de varios caracteres (\$1) o comodines de coincidencia de un único carácter (?). Los operadores de condición `ArnEquals` y `ArnLike` se comportan de forma idéntica.  | 
|   `ArnNotEquals`, `ArnNotLike`  |  Coincidencia negada del ARN. Los operadores de condición `ArnNotEquals` y `ArnNotLike` se comportan de forma idéntica.  | 

**Example Operador de condición de ARN**  
En el siguiente ejemplo de política basada en recursos se muestra una política asociada a una cola de Amazon SQS a la que desea enviar mensajes SNS. Da a Amazon SNS permiso para enviar mensajes a la cola (o colas) de su elección, pero solo si el servicio envía los mensajes en nombre de un determinado tema (o temas) de Amazon SNS. La cola se especifica en el campo `Resource` y el tema de Amazon SNS se especifica como el valor de la clave `SourceArn`.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Principal": {
            "Service": "sns.amazonaws.com"
        },
        "Action": "SQS:SendMessage",
        "Resource": "arn:aws:sqs:us-east-1:123456789012:QUEUE-ID",
        "Condition": {
            "ArnEquals": {
                "aws:SourceArn": "arn:aws:sns:us-east-1:123456789012:TOPIC-ID"
            }
        }
    }
}
```
La clave [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) está presente en el contexto de la solicitud solo si un recurso activa un servicio para llamar a otro servicio en nombre del propietario del recurso. Si un usuario de IAM intenta realizar esta operación directamente, la condición devuelve `false` y la instrucción deniega la solicitud implícitamente.  
La siguiente tabla muestra cómo AWS evalúa esta política en función de los valores de clave de condición en su solicitud.  


| Condición de política | El contexto de la solicitud | Resultado | 
| --- | --- | --- | 
|  <pre>"ArnEquals": {<br />  "aws:SourceArn": "arn:aws:sns:us-west-2:123456789012:TOPIC-ID"<br />}</pre>  | <pre>aws:SourceArn:<br />  – arn:aws:sns:us-west-2:123456789012:TOPIC-ID</pre>  | Match | 
|  <pre>"ArnEquals": {<br />  "aws:SourceArn": "arn:aws:sns:us-west-2:123456789012:TOPIC-ID"<br />}</pre>  | <pre>aws:SourceArn:<br />  – arn:aws:sns:us-west-2:777788889999:TOPIC-ID</pre>  | No match | 
|  <pre>"ArnEquals": {<br />  "aws:SourceArn": "arn:aws:sns:us-west-2:123456789012:TOPIC-ID"<br />}</pre>  |  No hay `aws:SourceArn` en el contexto de la solicitud.  | No match | 

### Operadores de condición de ARN de varios valores
<a name="conditions_arn_multivalued"></a>

Si una clave en la solicitud contiene varios valores, los operadores ARN pueden calificarse con operadores de conjunto `ForAllValues` y `ForAnyValue`. Para obtener más información sobre la lógica de evaluación de varias claves o valores de contexto, consulte [Operadores de conjunto para claves de contexto multivalor](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).


| Operador de condición | Descripción | 
| --- | --- | 
|  `ForAllValues:ArnEquals` `ForAllValues:ArnLike`  |  Todos los ARN del contexto de la solicitud deben coincidir con al menos uno de los patrones de ARN de su política.  | 
|  `ForAnyValue:ArnEquals` `ForAnyValue:ArnLike`  |  Al menos un ARN en el contexto de la solicitud debe coincidir con uno de los patrones de ARN de su política.  | 
|  `ForAllValues:ArnNotEquals` `ForAllValues:ArnNotLike`  |  Coincidencia negada. Ninguno de los ARN del contexto de la solicitud puede coincidir con ningún patrón de ARN de cadena de su política.  | 
|  `ForAnyValue:ArnNotEquals` `ForAnyValue:ArnNotLike`  |  Coincidencia negada. Al menos un ARN en el contexto de la solicitud NO debe coincidir con ninguno de los patrones de ARN de su política.  | 

**Example uso de `ForAllValues` con un operador de condición ARN**  
En el siguiente ejemplo se utiliza `ForAllValues:ArnLike` para crear o actualizar una origen de entrega lógica para los registros de Amazon CloudWatch Logs. En el bloque de condiciones se incluye la clave de condición [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchlogs.html#amazoncloudwatchlogs-policy-keys](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchlogs.html#amazoncloudwatchlogs-policy-keys) para filtrar los ARN de los recursos generadores de registros incluidos en la solicitud. Con este operador de condición, todos los ARN de la solicitud deben coincidir con al menos un ARN de la política.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "logs:PutDeliverySource",
            "Resource": "arn:aws:logs:us-east-1:123456789012:delivery-source:*",
            "Condition": {
                "ForAllValues:ArnLike": {
                    "logs:LogGeneratingResourceArns": [
                        "arn:aws:cloudfront::123456789012:distribution/*",
                        "arn:aws:cloudfront::123456789012:distribution/support*"
                    ]
                }
            }
        }
    ]
}
```
La siguiente tabla muestra cómo AWS evalúa esta política en función de los valores de clave de condición en su solicitud.  


| Condición de política | El contexto de la solicitud | Resultado | 
| --- | --- | --- | 
|  <pre>"ForAllValues:ArnLike": {<br />  "logs:LogGeneratingResourceArns": [<br />    "arn:aws::cloudfront:123456789012:distribution/*",<br />    "arn:aws::cloudfront:123456789012:distribution/support*"<br />  ]<br />}</pre>  | <pre>logs:LogGeneratingResourceArns:<br />  – arn:aws::cloudfront:123456789012:distribution/costcenter</pre>  | Match | 
|  <pre>"ForAllValues:ArnLike": {<br />  "logs:LogGeneratingResourceArns": [<br />    "arn:aws::cloudfront:123456789012:distribution/*",<br />    "arn:aws::cloudfront:123456789012:distribution/support*"<br />  ]<br />}</pre>  | <pre>logs:LogGeneratingResourceArns:<br />  – arn:aws::cloudfront:123456789012:distribution/costcenter<br />  – arn:aws::cloudfront:123456789012:distribution/support2025</pre>  | Match | 
|  <pre>"ForAllValues:ArnLike": {<br />  "logs:LogGeneratingResourceArns": [<br />    "arn:aws::cloudfront:123456789012:distribution/*",<br />    "arn:aws::cloudfront:123456789012:distribution/support*"<br />  ]<br />}</pre>  | <pre>logs:LogGeneratingResourceArns:<br />  – arn:aws::cloudfront:123456789012:distribution/costcenter<br />  – arn:aws::cloudfront:123456789012:distribution/admin</pre>  | No match | 
|  <pre>"ForAllValues:ArnLike": {<br />  "logs:LogGeneratingResourceArns": [<br />    "arn:aws::cloudfront:123456789012:distribution/*",<br />    "arn:aws::cloudfront:123456789012:distribution/support*"<br />  ]<br />}</pre>  | <pre>logs:LogGeneratingResourceArns:<br />  – arn:aws::cloudfront:777788889999:distribution/costcenter</pre>  | No match | 
|  <pre>"ForAllValues:ArnLike": {<br />  "logs:LogGeneratingResourceArns": [<br />    "arn:aws::cloudfront:123456789012:distribution/*",<br />    "arn:aws::cloudfront:123456789012:distribution/support*"<br />  ]<br />}</pre>  |  No hay `logs:LogGeneratingResourceArns` en el contexto de la solicitud.  | Match  | 
El calificador `ForAllValues` devuelve verdadero si no hay claves de contexto en la solicitud o si los valores de clave de contexto se resuelven en un conjunto de datos nulo, como una cadena vacía. Para evitar que las claves de contexto que faltan o las claves de contexto con valores vacíos se evalúen como verdadero, puede incluir el [Operador de condición nula](#Conditions_Null) en su política con un valor `false` para comprobar si la clave de contexto existe y su valor no es nulo.

## Operadores de condición …IfExists
<a name="Conditions_IfExists"></a>

Puede agregar `IfExists` al final de cualquier nombre de operador de condición, salvo la condición `Null` por ejemplo, `StringLikeIfExists`. El objetivo es decir lo siguiente: “Si la clave de la condición está presente en el contexto de la solicitud, se debe procesar la clave según se indica en la política. Si la clave no está presente, el elemento de condición se evalúa en verdadero". Otros elementos de condición de la instrucción pueden seguir sin obtener una coincidencia, pero no una clave que falte cuando se comprueba con `...IfExists`. Si utiliza un elemento `"Effect": "Deny"` con un operador de condición negada como `StringNotEqualsIfExists`, la solicitud se sigue denegando incluso si la clave de condición no se encuentra presente.

**Ejemplo de uso de `IfExists`**

Muchas claves de condición describen información sobre un determinado tipo de recurso y solo existen cuando se obtiene acceso a ese tipo de recurso. Estas claves de condición no están presentes en otros tipos de recursos. Esto no crea ningún problema cuando la instrucción de la política se aplica únicamente a un tipo de recurso. Sin embargo, en algunos casos una única instrucción se aplica a varios tipos de recursos, como, por ejemplo, cuando la instrucción de la política hace referencia a acciones de varios servicios o cuando una acción determinada de un servicio obtiene acceso a diferentes tipos de recursos en el mismo servicio. En estos casos, la inclusión de una clave de condición que se aplique únicamente a uno de los recursos de la instrucción de la política puede hacer que el elemento `Condition` de la instrucción dé un error y que su `"Effect"` no se aplique.

Por ejemplo, tomemos el siguiente ejemplo de política:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Sid": "THISPOLICYDOESNOTWORK",
    "Effect": "Allow",
    "Action": "ec2:RunInstances",
    "Resource": "*",
    "Condition": {"StringLike": {"ec2:InstanceType": [
      "t1.*",
      "t2.*",
      "m3.*"
    ]}}
  }
}
```

------

El *propósito* de la política anterior es habilitar al usuario para que pueda lanzar cualquier instancia de tipo `t1`, `t2` o `m3`. Sin embargo, lanzar una instancia requiere poder obtener acceso a muchos recursos además de la instancia en sí; por ejemplo, imágenes, pares de claves, grupos de seguridad, entre otros. Toda la instrucción se evalúa con respecto a todos los recursos exigidos para lanzar la instancia. Estos recursos adicionales no tienen la clave de condición `ec2:InstanceType`, por lo que la comprobación `StringLike` da un error y no se concede al usuario la capacidad para lanzar *cualquier* tipo de instancia. 

Para solucionar este problema, utilice en su lugar el operador de condición `StringLikeIfExists`. De esta forma, la prueba solo se realiza si la clave de condición existe. Podría leer la siguiente política como: “Si el recurso que se está comprobando tiene una clave de condición ‘`ec2:InstanceType`’, permita la acción solo si el valor de clave comienza por `t1.`, `t2.` o `m3.`. Si el recurso que se está comprobando no tiene esta clave de condición, no deberá tenerse en cuenta”. El asterisco (\$1) de los valores de la clave de condición, cuando se usa con el operador de condición `StringLikeIfExists`, se interpreta como un comodín para lograr coincidencias parciales de cadenas. La instrucción `DescribeActions` incluye las acciones requeridas para ver la instancia en la consola.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "RunInstance",
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": "*",
      "Condition": {
        "StringLikeIfExists": {
          "ec2:InstanceType": [
            "t1.*",
            "t2.*",
            "m3.*"
          ]
        }
      }
    },
    {
      "Sid": "DescribeActions",
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeImages",
        "ec2:DescribeInstances",
        "ec2:DescribeVpcs",
        "ec2:DescribeKeyPairs",
        "ec2:DescribeSubnets",
        "ec2:DescribeSecurityGroups"
      ],
      "Resource": "*"
    }
  ]
}
```

------

La siguiente tabla muestra cómo AWS evalúa esta política en función de los valores de clave de condición en su solicitud.


| Condición de política | El contexto de la solicitud | Resultado | 
| --- | --- | --- | 
|  <pre>"StringLikeIfExists": {<br />  "ec2:InstanceType": [<br />    "t1.*",<br />    "t2.*",<br />    "m3.*"<br />  ]<br />}</pre>  | <pre>ec2:InstanceType:<br />  – t1.micro</pre>  | Match | 
|  <pre>"StringLikeIfExists": {<br />  "ec2:InstanceType": [<br />    "t1.*",<br />    "t2.*",<br />    "m3.*"<br />  ]<br />}</pre>  | <pre>ec2:InstanceType:<br />  – m2.micro</pre>  | No match | 
|  <pre>"StringLikeIfExists": {<br />  "ec2:InstanceType": [<br />    "t1.*",<br />    "t2.*",<br />    "m3.*"<br />  ]<br />}</pre>  |  No hay `ec2:InstanceType` en el contexto de la solicitud.  | Match | 

## Operador de condición para comprobar la existencia de claves de condición
<a name="Conditions_Null"></a>

Utilice un operador de condición `Null` para comprobar si una clave de condición está ausente en el momento de la autorización. En la instrucción de la política, utilice `true` (la clave no existe es nula) o `false` (la clave existe y su valor no es nulo).

No puede utilizar una [variable de política](reference_policies_variables.md) con el operador de condición `Null`.

Por ejemplo, puede utilizar este operador de condición para determinar si un usuario utiliza credenciales temporales o sus propias credenciales para realizar una solicitud. Si el usuario utiliza credenciales temporales, la clave `aws:TokenIssueTime` existe y tiene un valor. En el siguiente ejemplo se muestra una condición que establece que el usuario debe utilizar credenciales temporales (la clave no puede estar ausente) para utilizar la API de Amazon EC2.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement":{
      "Action":"ec2:*",
      "Effect":"Allow",
      "Resource":"*",
      "Condition":{"Null":{"aws:TokenIssueTime":"false"}}
  }
}
```

------

# Condiciones con varias claves de contexto o valores
<a name="reference_policies_condition-logic-multiple-context-keys-or-values"></a>

Puede utilizar el elemento `Condition` de una política para probar varias claves de contexto o valores para una única clave de contexto en una solicitud. Cuando se realiza una solicitud a AWS, ya sea mediante programación o a través de la Consola de administración de AWS, la solicitud incluye información sobre la entidad principal, la operación, las etiquetas y mucho más. Puede utilizar las claves de contexto para probar los valores de las claves de contexto coincidentes de la solicitud, con las claves de contexto especificadas en la condición de política. Para conocer la información y los datos incluidos en una solicitud, consulte [El contexto de la solicitud](reference_policies_elements_condition.md#AccessPolicyLanguage_RequestContext).

**Topics**
+ [Lógica de evaluación para varias claves de contexto o valores](#reference_policies_multiple-conditions-eval)
+ [Lógica de evaluación de los operadores de condición con coincidencia negada](#reference_policies_multiple-conditions-negated-matching-eval)

## Lógica de evaluación para varias claves de contexto o valores
<a name="reference_policies_multiple-conditions-eval"></a>

Un elemento `Condition` puede contener varios operadores de condición y cada uno de ellos puede contener, a su vez, varios pares de clave-valor de contexto. La mayoría de las claves de contexto admiten el uso de varios valores, a menos que se especifique lo contrario.
+ Si su instrucción de política tiene varios [operadores de condición](reference_policies_elements_condition_operators.md), los operadores de condición se evalúan mediante un operador lógico `AND`.
+ Si su instrucción de política tiene varias claves de contexto asociadas a un único operador de condición, las claves de contexto se evalúan mediante un operador lógico `AND`.
+ Si un operador de condición contiene varios valores para una clave de contexto, esos valores se evalúan mediante un operador lógico `OR`.
+ Si un operador de condición con coincidencia negada contiene varios valores para una clave de contexto, esos valores se evalúan mediante un operador lógico `NOR`. 

Todas las claves de contexto de un bloque de elementos de condición deben resolverse como verdaderas para invocar el efecto `Allow` o `Deny` deseado. En la siguiente figura, se ilustra la lógica de evaluación de una condición con varios operadores de condición y pares clave-valor de contexto.

![\[Bloque de condición que muestra cómo se aplican AND y OR a varias claves de contexto y valores\]](http://docs.aws.amazon.com/es_es/IAM/latest/UserGuide/images/AccessPolicyLanguage_Condition_Block_AND_2.diagram.png)


Por ejemplo, la siguiente política de bucket de S3 ilustra cómo se representa la figura anterior en una política. El bloque de condición incluye los operadores de condición `StringEquals` y `ArnLike` y las claves de contexto `aws:PrincipalTag` y `aws:PrincipalArn`. Para invocar el efecto `Allow` o `Deny` deseado, todas las claves de contexto en el bloque de condición deben resolverse como verdaderas. El usuario que realiza la solicitud debe tener ambas claves de etiqueta de las entidades principales, *departamento* y *rol*, que incluyen uno de los valores de clave de etiqueta especificados en la política. Además, el ARN de la entidad principal del usuario que realiza la solicitud debe coincidir con uno de los valores `aws:PrincipalArn` especificados en la política que se evaluarán como verdaderos.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "ExamplePolicy",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::222222222222:root"
      },
      "Action": "s3:ListBucket",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalTag/department": [
            "finance",
            "hr",
            "legal"
          ],
          "aws:PrincipalTag/role": [
            "audit",
            "security"
          ]
        },
        "ArnLike": {
          "aws:PrincipalArn": [
            "arn:aws:iam::222222222222:user/Ana",
            "arn:aws:iam::222222222222:user/Mary"
          ]
        }
      }
    }
  ]
}
```

------

La siguiente tabla muestra cómo AWS evalúa esta política en función de los valores de clave de condición en su solicitud.


| Condición de política | Contexto de la solicitud | Resultado | 
| --- | --- | --- | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | <pre>aws:PrincipalTag/department: legal<br />aws:PrincipalTag/role: audit<br />aws:PrincipalArn: <br />  arn:aws:iam::222222222222:user/Mary</pre>  |  **Match** | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | <pre>aws:PrincipalTag/department: hr<br />aws:PrincipalTag/role: audit<br />aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Nikki</pre>  | **No match** | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | <pre>aws:PrincipalTag/department: hr<br />aws:PrincipalTag/role: payroll<br />aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Mary</pre>  | **No match** | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  |  No hay `aws:PrincipalTag/role` en el contexto de la solicitud. <pre>aws:PrincipalTag/department: hr<br />aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Mary</pre>  | **No match**  | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | No hay `aws:PrincipalTag` en el contexto de la solicitud. <pre>aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Mary</pre>  | **No match**  | 

## Lógica de evaluación de los operadores de condición con coincidencia negada
<a name="reference_policies_multiple-conditions-negated-matching-eval"></a>

Algunos [operadores de condición,](reference_policies_elements_condition_operators.md) como `StringNotEquals` o `ArnNotLike`, utilizan la coincidencia negada para comparar los pares clave-valor de contexto de su política con los pares clave-valor de contexto de una solicitud. Cuando se especifican varios valores para una clave de contexto única en una política con operadores de condición con coincidencia negada, los permisos vigentes funcionan como un operador lógico `NOR`. En la coincidencia negada, un operador lógico `NOR` o `NOT OR` devuelve verdadero solo si todos los valores se evalúan como falsos.

En la siguiente figura, se ilustra la lógica de evaluación de una condición con varios operadores de condición y pares clave-valor de contexto. La figura incluye un operador de condición con coincidencia negada para la clave de contexto 3.

![\[Bloque de condición que muestra cómo se aplican AND y OR a varias claves de contexto y valores cuando se utiliza un operador de condición con coincidencia negada\]](http://docs.aws.amazon.com/es_es/IAM/latest/UserGuide/images/AccessPolicyLanguage_Condition_Block_AND_Negated_NOR_2.diagram.png)


Por ejemplo, la siguiente política de bucket de S3 ilustra cómo se representa la figura anterior en una política. El bloque de condición incluye los operadores de condición `StringEquals` y `ArnNotLike` y las claves de contexto `aws:PrincipalTag` y `aws:PrincipalArn`. Para invocar el efecto `Allow` o `Deny` deseado, todas las claves de contexto en el bloque de condición deben resolverse como verdaderas. El usuario que realiza la solicitud debe tener ambas claves de etiqueta de las entidades principales, *departamento* y *rol*, que incluyen uno de los valores de clave de etiqueta especificados en la política. Dado que el operador de condición `ArnNotLike` usa la coincidencia negada, el ARN de la entidad principal del usuario que realiza la solicitud no debe coincidir con ninguno de los valores `aws:PrincipalArn` especificados en la política que se evaluarán como verdaderos.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "ExamplePolicy",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::222222222222:root"
      },
      "Action": "s3:ListBucket",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalTag/department": [
            "finance",
            "hr",
            "legal"
          ],
          "aws:PrincipalTag/role": [
            "audit",
            "security"
          ]
        },
        "ArnNotLike": {
          "aws:PrincipalArn": [
            "arn:aws:iam::222222222222:user/Ana",
            "arn:aws:iam::222222222222:user/Mary"
          ]
        }
      }
    }
  ]
}
```

------

La siguiente tabla muestra cómo AWS evalúa esta política en función de los valores de clave de condición en su solicitud.


| Condición de política | Contexto de la solicitud | Resultado | 
| --- | --- | --- | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnNotLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | <pre>aws:PrincipalTag/department: legal<br />aws:PrincipalTag/role: audit<br />aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Nikki<br /></pre>  |  **Match** | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnNotLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | <pre>aws:PrincipalTag/department: hr<br />aws:PrincipalTag/role: audit<br />aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Mary</pre>  | **No match** | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnNotLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | <pre>aws:PrincipalTag/department: hr<br />aws:PrincipalTag/role: payroll<br />aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Nikki</pre>  | **No match** | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnNotLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | >No hay `aws:PrincipalTag/role` en el contexto de la solicitud. <pre>aws:PrincipalTag/department: hr<br />aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Nikki</pre>  | **No match** | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnNotLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | No hay `aws:PrincipalTag` en el contexto de la solicitud. <pre>aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Nikki</pre>  | **No match**  | 

# Claves de contexto de valor único y multivalor
<a name="reference_policies_condition-single-vs-multi-valued-context-keys"></a>

La diferencia entre las claves de contexto de valor único y de valor múltiple depende de la cantidad de valores en el [contexto de la solicitud](intro-structure.md#intro-structure-request), no de la cantidad de valores en la condición de la política.
+ Las claves de contexto de condición *de valor único* tienen como máximo un valor en el contexto de la solicitud. Por ejemplo, cuando etiqueta recursos en AWS, cada etiqueta de recurso se almacena como un par de clave-valor. Como una clave de etiqueta de recurso solo puede tener un valor de etiqueta único, [aws:ResourceTag/*tag-key*](reference_policies_condition-keys.md#condition-keys-resourcetag) es una clave de contexto de valor único. No utilice un operador de conjunto de condiciones con una clave de contexto de un solo valor.
+ Las claves de contexto de condición *multivalor* pueden tener varios valores en el contexto de la solicitud. Por ejemplo, cuando etiqueta recursos en AWS, puede incluir varios pares de etiquetas de clave-valor en una única solicitud. Por lo tanto, [aws:TagKeys](reference_policies_condition-keys.md#condition-keys-tagkeys) es una clave de contexto multivalor. Las claves de contexto multivalor requieren un operador de conjunto de condiciones.

Por ejemplo, una solicitud puede originarse a lo sumo de un punto de conexión de VPC, por lo que [aws:SourceVpce](reference_policies_condition-keys.md#condition-keys-sourcevpce) es una clave de contexto de valor único. Dado que un servicio puede tener más de un nombre de entidad principal de servicio que pertenece al servicio, [aws:PrincipalServiceNamesList](reference_policies_condition-keys.md#condition-keys-principalservicenameslist) es una clave de contexto multivalor.

**importante**  
La diferencia entre las claves de contexto de valor único y multivalor depende del número de valores en el contexto de la solicitud, no de la cantidad de valores de la condición de política.

## Puntos clave
<a name="reference_policies_condition-key-points"></a>
+ Las clasificaciones *Valor único* y *Multivalor* se incluyen en la descripción de cada clave de contexto de condición como *Tipo de valor* en el tema [Claves de contexto de condición globales de AWS](reference_policies_condition-keys.md).
+ Las claves de contexto multivalor en la [Referencia de autorizaciones de servicio](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html) utilizan un prefijo `ArrayOf` seguido de la categoría del operador de condición, como `ArrayOfString` o `ArrayOfARN`, lo que indica que la solicitud puede incluir múltiples valores para una clave de contexto de condición.
+ Puede utilizar cualquier clave de contexto de valor único disponible como variable de política, pero no puede utilizar una clave de contexto de valor múltiple como variable de política. Para obtener más información sobre las variables de las políticas, consulte [Elementos de la política de IAM: variables y etiquetas](reference_policies_variables.md).
+ Cuando utiliza claves de contexto que incluyen pares de clave-valor, es importante tener en cuenta que, si bien puede haber varios valores de etiqueta y clave, cada `tag-key` solo puede tener un valor.
  + [aws:PrincipalTag/*tag-key*](reference_policies_condition-keys.md#condition-keys-principaltag), [aws:RequestTag/*tag-key*](reference_policies_condition-keys.md#condition-keys-requesttag) y [aws:ResourceTag/*tag-key*](reference_policies_condition-keys.md#condition-keys-resourcetag) son claves de contexto de valor único.
  + [aws:TagKeys](reference_policies_condition-keys.md#condition-keys-tagkeys) define qué claves de etiqueta están permitidas en una solicitud, pero no incluye los valores de las claves de etiqueta. Dado que puede incluir varios pares de clave-valor de etiqueta en una solicitud, `aws:TagKeys` es una clave de contexto multivalor.
+ Las claves de contexto multivalor requieren un operador de conjunto de condiciones. No utilice los operadores de conjunto de condiciones `ForAllValues` o `ForAnyValue` con claves de contexto de un solo valor. El uso de operadores de conjuntos de condiciones con claves de contexto de valor único puede dar lugar a políticas demasiado permisivas.

## Operadores de conjunto para claves de contexto multivalor
<a name="reference_policies_condition-multi-valued-context-keys"></a>

Para comparar su clave de contexto de condición con un [contexto de solicitud](intro-structure.md#intro-structure-request) con varios valores, debe utilizar los operadores de conjunto `ForAllValues` o `ForAnyValue`. Estos operadores de conjunto se utilizan para comparar dos conjuntos de valores, como el conjunto de etiquetas en una solicitud y el conjunto de etiquetas en una condición de política.

Los calificadores `ForAllValues` y `ForAnyValue` agregan la funcionalidad de operación de conjunto al operador de condición para que pueda probar claves de contexto de solicitudes con varios valores y compararlos con varias claves de contexto de valor en una condición de política. Además, si incluye una clave de contexto multivalor en su política con un comodín o una variable, también debe utilizar el [operador de condición](reference_policies_elements_condition_operators.md#Conditions_String) `StringLike`. Las múltiples claves de contexto de valor se deben escribir entre corchetes como una [matriz](reference_policies_grammar.md#policies-grammar-json), por ejemplo, `"Key2":["Value2A", "Value2B"]`.

### ForAllValues
<a name="reference_policies_condition-forallvalues"></a>

El calificador `ForAllValues` comprueba si el valor de cada miembro del contexto de solicitud coincide con el operador de condición que sigue al calificador. La condición devuelve un resultado `true` si cada clave de contexto de valor de la solicitud coincide con una clave de contexto de valor de la política. También devuelve `true` si no hay claves de contexto en la solicitud.

**importante**  
Tenga cuidado si utiliza `ForAllValues` con un efecto `Allow`, ya que puede resultar demasiado permisivo si la presencia de claves de contexto ausentes en el contexto de la solicitud es inesperada. Siempre debe incluir el operador de condición [`Null`](reference_policies_elements_condition_operators.md#Conditions_Null) en su política con un valor `false` para comprobar si la clave de contexto existe y su valor no es nulo. Para ver un ejemplo, consulta [Control del acceso en función de las claves de etiqueta](access_tags.md#access_tags_control-tag-keys).

#### Ejemplo de operador de conjunto ForAllValues
<a name="reference_policies_condition-forallvalues-example"></a>

En el siguiente ejemplo, ForAllValues se utiliza con aws:TagKeys para permitir a los usuarios eliminar etiquetas específicas asignadas a una instancia de EC2. Esta política permite a los usuarios eliminar solo las etiquetas `environment` y `cost-center`. Puede eliminarlas por separado o juntas. Las claves de etiqueta en la solicitud deben coincidir exactamente con las claves especificadas en la política.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:DeleteTags",
            "Resource": "arn:aws:ec2:us-east-1:111122223333:instance/*",
            "Condition": {
                "ForAllValues:StringEquals": {
                    "aws:TagKeys": [
                        "environment",
                        "cost-center"
                    ]
                },
                "Null": {
                    "aws:TagKeys": "false"
                }
            }
        }
    ]
}
```

------

La siguiente tabla muestra cómo AWS evalúa esta política en función de los valores de clave de condición en su solicitud.


| Condición de política | Contexto de la solicitud | Resultado | 
| --- | --- | --- | 
|  <pre>"ForAllValues:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />},<br />"Null": {<br />  "aws:TagKeys": "false"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment</pre>  |  **Match**  | 
|  <pre>"ForAllValues:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />},<br />"Null": {<br />  "aws:TagKeys": "false"<br />}</pre>  | <pre>aws:TagKeys:<br />  – cost-center</pre>  |  **Match**  | 
|  <pre>"ForAllValues:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />},<br />"Null": {<br />  "aws:TagKeys": "false"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />  – cost-center</pre>  |  **Match**  | 
|  <pre>"ForAllValues:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />},<br />"Null": {<br />  "aws:TagKeys": "false"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />  – dept</pre>  |  **No match**  | 
|  <pre>"ForAllValues:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />},<br />"Null": {<br />  "aws:TagKeys": "false"<br />}</pre>  |  No hay `aws:TagKeys` en el contexto de la solicitud.  |  **No match**  | 

Tenga en cuenta que, en el último ejemplo, el resultado es “No hay coincidencia” porque la comprobación de la condición nula impide que haya coincidencias cuando falta la clave de contexto. Esta es una práctica recomendada para evitar políticas demasiado permisivas.

### ForAnyValue
<a name="reference_policies_condition-foranyvalue"></a>

El calificador `ForAnyValue` prueba si al menos un miembro del conjunto de valores de clave de contexto de la solicitud coincide con al menos un miembro del conjunto de valores de la clave de contexto de su política. La condición devuelve un resultado `true` si una de las claves de contexto de valor en la solicitud coincide con alguna de las claves de contexto de valor en la política. Si no hay una clave de contexto que coincida o si la clave no existe, la condición devuelve `false`.

**importante**  
Cuando se usa `ForAnyValue` con un efecto `Deny`, si la clave de contexto no está presente en la solicitud, la política se evalúa como **Sin coincidencia**. Para lograr un comportamiento coherente, agregue una comprobación de condición [`Null`](reference_policies_elements_condition_operators.md#Conditions_Null) explícita en su política para verificar si existe la clave de contexto. 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).

#### Ejemplo de operador de conjunto ForAnyValue
<a name="reference_policies_condition-foranyvalue-example"></a>

En el siguiente ejemplo, ForAnyValue se utiliza con aws:TagKeys para permitir a los usuarios eliminar etiquetas específicas asignadas a una instancia de EC2. Esta política permite a los usuarios eliminar etiquetas de una instancia si las claves de etiqueta especificadas en la solicitud incluyen `environment` o `cost-center`. La solicitud puede incluir claves de etiquetas adicionales a las especificadas en la política, pero debe incluir al menos una de las claves especificadas para que cumpla con la condición.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:DeleteTags",
            "Resource": "arn:aws:ec2:us-east-1:111122223333:instance/*",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "aws:TagKeys": [
                        "environment",
                        "cost-center"
                    ]
                }
            }
        }
    ]
}
```

------

La siguiente tabla muestra cómo AWS evalúa esta política en función de los valores de clave de condición en su solicitud.


| Condición de política | Contexto de la solicitud | Resultado | 
| --- | --- | --- | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment</pre>  |  **Match**  | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – cost-center</pre>  |  **Match**  | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />  – cost-center</pre>  |  **Match**  | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />  – dept</pre>  |  **Match**  | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – dept</pre>  |  **No match**  | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />}</pre>  |  No hay `aws:TagKeys` en el contexto de la solicitud.  |  **No match**  | 

# Ejemplos de políticas de condiciones
<a name="reference_policies_condition_examples"></a>

En las políticas de IAM, puede especificar varios valores para las claves de contexto de un solo valor y multivalor para compararlos con el contexto de la solicitud. El siguiente conjunto de ejemplos de políticas muestra condiciones de políticas con varias claves de contexto y valores.

**nota**  
Si desea enviar una política para que se incluya en esta guía de referencia, utilice el botón **Feedback (Comentarios)** de la parte inferior de esta página. Para ver ejemplos de políticas basadas en identidad de IAM, consulte [Ejemplos de políticas basadas en identidad de IAM](access_policies_examples.md).

## Ejemplos de política de condición: claves de contexto con un solo valor
<a name="reference_policies_condition_example_library_single-valued"></a>
+ Varios bloques de condiciones con claves de contexto de un solo valor. ([Ver este ejemplo](reference_policies_condition_examples-single-valued-context-keys.md#reference_policies_condition_examples-single-valued-context-keys-1)).
+ Un bloque de condiciones con varias claves de contexto de un solo valor y varios valores. ([Ver este ejemplo](reference_policies_condition_examples-single-valued-context-keys.md#reference_policies_condition_examples-single-valued-context-keys-2)).

## Ejemplos de política de condición: claves de contexto multivalor
<a name="reference_policies_condition_example_library_multi-valued"></a>
+ Política de denegación con el operador de conjunto de condiciones `ForAllValues`. ([Ver este ejemplo](reference_policies_condition_examples-multi-valued-context-keys.md#reference_policies_condition_examples-multi-valued-context-keys-1)).
+ Política de denegación con el operador de conjunto de condiciones `ForAnyValue`. ([Ver este ejemplo](reference_policies_condition_examples-multi-valued-context-keys.md#reference_policies_condition_examples-multi-valued-context-keys-2)).

# Ejemplos de clave de contexto multivalor
<a name="reference_policies_condition_examples-multi-valued-context-keys"></a>

El siguiente conjunto de ejemplos de políticas muestra cómo crear condiciones de políticas con claves de contexto multivalor.

## Ejemplo: política de denegación con el operador de conjunto de condiciones ForAllValues
<a name="reference_policies_condition_examples-multi-valued-context-keys-1"></a>

En el siguiente ejemplo se muestra cómo usar una política basada en identidad para negar el uso de acciones de etiquetado de IAM cuando se incluyen prefijos de clave de etiqueta específicos en la solicitud. Los valores para [`aws:TagKeys`](reference_policies_condition-keys.md#condition-keys-tagkeys) incluyen un comodín (\$1) para la coincidencia parcial de cadenas. La política incluye el operador de conjunto `ForAllValues` con la clave de contexto `aws:TagKeys`, porque la clave de contexto de la solicitud puede incluir varios valores. Para que la clave de contexto `aws:TagKeys` coincida, cada valor en el contexto de solicitud debe coincidir con al menos un valor de la política.

El operador de conjunto `ForAllValues` también devuelve verdadero si no hay claves de contexto en la solicitud.

Puede evitar que las claves de contexto faltantes o las claves de contexto con valores vacíos se evalúen como verdaderas, al incluir un operador de condición `Null` en su política con un valor `false` para comprobar si la clave de contexto en la solicitud existe y su valor no es nulo. 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).

**importante**  
Esta política no permite ninguna acción. Utilice esta política en combinación con otras políticas que permiten acciones específicas.

**Example Cómo denegar un único valor de condición de política para una clave de contexto multivalor**  
En el siguiente ejemplo, la política deniega las solicitudes en las que los valores para `aws:TagKeys` en la solicitud no incluyen el prefijo **key1**. El contexto de la solicitud puede tener varios valores, pero debido al operador de conjunto de condiciones `ForAllValues`, todos los valores de claves de etiqueta del contexto de la solicitud deben empezar con el prefijo **key1**.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyRestrictedTags",
      "Effect": "Deny",
      "Action": [
        "iam:Tag*",
        "iam:UnTag*"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "ForAllValues:StringNotLike": {
          "aws:TagKeys": "key1*"
        }
      }
    }
  ]
}
```
La siguiente tabla muestra cómo AWS evalúa esta política en función de los valores de clave de condición en su solicitud. En el caso de una instrucción Deny, Match se deniega y No match no se deniega, por lo que es posible que otra instrucción la permita.  


| Condición de política | Contexto de la solicitud | Resultado | 
| --- | --- | --- | 
|  <pre>"ForAllValues:StringNotLike": {<br />  "aws:TagKeys": "key1*"<br />}</pre>  | <pre>aws:TagKeys:<br />  – key1:legal</pre>  |  **No match** Puede estar permitido por otra instrucción. | 
| <pre>"ForAllValues:StringNotLike": {<br />  "aws:TagKeys": "key1*"<br />}</pre>  | <pre>aws:TagKeys:<br />  – key1:hr<br />  – key1:personnel</pre>  | **No match** Puede estar permitido por otra instrucción. | 
| <pre>"ForAllValues:StringNotLike": {<br />  "aws:TagKeys": "key1*"<br />}</pre>  | <pre>aws:TagKeys:<br />  – key2:audit</pre>  | **Match** | 
| <pre>"ForAllValues:StringNotLike": {<br />  "aws:TagKeys": "key1*"<br />}</pre>  | No hay `aws:TagKeys` en el contexto de la solicitud.  | **Match** | 

**Example Cómo denegar varios valores de condiciones de política para una clave de contexto multivalor**  
En el siguiente ejemplo, la política deniega las solicitudes en las que los valores para `aws:TagKeys` en la solicitud no incluyen el prefijo **key1** ni **key2**. El contexto de la solicitud puede tener varios valores, pero debido al operador de conjunto de condiciones `ForAllValues`, todos los valores de las claves de etiqueta del contexto de la solicitud deben empezar con el prefijo **key1** o **key2**.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyRestrictedTags",
      "Effect": "Deny",
      "Action": [
        "iam:Tag*",
        "iam:UnTag*"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "ForAllValues:StringNotLike": {
          "aws:TagKeys": [
            "key1*",
            "key2*"
          ]
        }
      }
    }
  ]
}
```
La siguiente tabla muestra cómo AWS evalúa esta política en función de los valores de clave de condición en su solicitud. En el caso de una instrucción Deny, Match se deniega y No match no se deniega, por lo que es posible que otra instrucción la permita.  


| Condición de política | Contexto de la solicitud | Resultado | 
| --- | --- | --- | 
|  <pre>"ForAllValues:StringNotLike": {<br />  "aws:TagKeys": [<br />    "key1*",<br />    "key2*"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – key1:legal</pre>  |  **No match** Puede estar permitido por otra instrucción. | 
| <pre>"ForAllValues:StringNotLike": {<br />   "aws:TagKeys": [<br />    "key1*",<br />    "key2*"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – key1:hr<br />  – key1:personnel</pre>  | **No match** Puede estar permitido por otra instrucción. | 
| <pre>"ForAllValues:StringNotLike": {<br />   "aws:TagKeys": [<br />    "key1*",<br />    "key2*"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – key1:hr<br />  – key2:audit</pre>  | **No match** Puede estar permitido por otra instrucción. | 
| <pre>"ForAllValues:StringNotLike": {<br />   "aws:TagKeys": [<br />    "key1*",<br />    "key2*"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – key3:legal</pre>  | **Match**  | 
| <pre>"ForAllValues:StringNotLike": {<br />   "aws:TagKeys": [<br />    "key1*",<br />    "key2*"<br />  ]<br />}</pre>  | No hay `aws:TagKeys` en el contexto de la solicitud.  | **Match** | 

## Ejemplo: política de denegación con el operador de conjunto de condiciones ForAnyValue
<a name="reference_policies_condition_examples-multi-valued-context-keys-2"></a>

El siguiente ejemplo de política basada en identidad niega la creación de instantáneas de volúmenes de instancias de EC2 si alguna instantánea está etiquetada con una de las claves de etiqueta especificadas en la política, `environment` o `webserver`. La política incluye el operador de conjunto `ForAnyValue` con la clave de contexto `aws:TagKeys`, porque la clave de contexto de la solicitud puede incluir varios valores. Si su solicitud de etiquetado incluye alguno de los valores de clave de etiqueta especificados en la política, la clave de contexto `aws:TagKeys` devuelve verdadero e invoca el efecto de la política de denegación.

**importante**  
Esta política no permite ninguna acción. Utilice esta política en combinación con otras políticas que permiten acciones específicas.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "ec2:CreateSnapshot",
        "ec2:CreateSnapshots"
      ],
      "Resource": "arn:aws:ec2:us-west-2::snapshot/*",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "aws:TagKeys": "webserver"
        }
      }
    }
  ]
}
```

------

La siguiente tabla muestra cómo AWS evalúa esta política en función de los valores de clave de condición en su solicitud. En el caso de una instrucción Deny, Match se deniega y No match no se deniega, por lo que es posible que otra instrucción la permita.


| Condición de política | Contexto de la solicitud | Resultado | 
| --- | --- | --- | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "webserver"<br />}</pre>  | <pre>aws:TagKeys:<br />  – webserver</pre>  | **Match** | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "webserver"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />  – webserver<br />  – test</pre>  |  **Match** | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "webserver"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />  – test</pre>  | **No match** Puede estar permitido por otra instrucción. | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "webserver"<br />}</pre>  | No hay `aws:TagKeys` en el contexto de la solicitud.  | **No match** Puede estar permitido por otra instrucción.  | 

# Ejemplos de políticas de claves de contexto con un solo valor
<a name="reference_policies_condition_examples-single-valued-context-keys"></a>

El siguiente conjunto de ejemplos de políticas muestra cómo crear condiciones de políticas con claves de contexto de valor único.

## Ejemplo: varios bloques de condiciones con claves de contexto de un solo valor
<a name="reference_policies_condition_examples-single-valued-context-keys-1"></a>

Cuando un bloque de condiciones tiene varias condiciones, cada una con una única clave de contexto, todas las claves de contexto deben resolverse como verdaderas para que se invoque el efecto `Allow` o `Deny` deseado. Cuando se utilizan operadores de condición con coincidencia negada, la lógica de evaluación del valor de la condición se invierte.

El siguiente ejemplo permite a los usuarios crear volúmenes de EC2 y aplicar etiquetas a los volúmenes durante la creación de estos. El contexto de la solicitud debe incluir un valor para la clave de contexto `aws:RequestTag/project`, y el valor de la clave de contexto `aws:ResourceTag/environment` puede ser cualquiera excepto el de producción.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "ec2:CreateVolume",
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "ec2:CreateTags",
      "Resource": "arn:aws:ec2:us-east-1:123456789012:volume/*",
      "Condition": {
        "StringLike": {
          "aws:RequestTag/project": "*"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": "ec2:CreateTags",
      "Resource": "arn:aws:ec2:us-east-1:123456789012:*/*",
      "Condition": {
        "StringNotEquals": {
          "aws:ResourceTag/environment": "production"
        }
      }
    }
  ]
}
```

------

El contexto de la solicitud debe incluir un valor de etiqueta del proyecto y no se puede crear para que un recurso de producción invoque el efecto `Allow`. El siguiente volumen de EC2 se creó correctamente porque el nombre del proyecto es `Feature3` con una etiqueta de recurso `QA`.

```
aws ec2 create-volume \
    --availability-zone us-east-1a \
    --volume-type gp2 \
    --size 80 \
    --tag-specifications 'ResourceType=volume,Tags=[{Key=project,Value=Feature3},{Key=environment,Value=QA}]'
```

## Ejemplo: un bloque de condiciones con varias claves de contexto de un solo valor y varios valores
<a name="reference_policies_condition_examples-single-valued-context-keys-2"></a>

Cuando un bloque de condiciones contiene varias claves de contexto y cada clave de contexto tiene varios valores, cada clave de contexto debe resolverse como verdadera para que se invoque al menos un valor de clave para el efecto `Allow` o `Deny` deseado. Cuando se utilizan operadores de condición con coincidencia negada, la lógica de evaluación del valor de la clave de contexto se invierte.

El siguiente ejemplo permite a los usuarios iniciar y ejecutar tareas en los clústeres de Amazon Elastic Container Service.
+ El contexto de la solicitud debe incluir `production` **O** `prod-backup` para la clave de contexto `aws:RequestTag/environment` **AND**.
+ La clave de contexto `ecs:cluster` asegura que las tareas se ejecuten en cualquiera de los clústeres de ECS con ARN `default1` **O** `default2`.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ecs:RunTask",
        "ecs:StartTask"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/environment": [
            "production",
            "prod-backup"
          ]
        },
        "ArnEquals": {
          "ecs:cluster": [
            "arn:aws:ecs:us-east-1:111122223333:cluster/default1",
            "arn:aws:ecs:us-east-1:111122223333:cluster/default2"
          ]
        }
      }
    }
  ]
}
```

------

La siguiente tabla muestra cómo AWS evalúa esta política en función de los valores de clave de condición en su solicitud.


| Condición de política | El contexto de la solicitud | Resultado | 
| --- | --- | --- | 
|  <pre>"StringEquals": {<br />  "aws:RequestTag/environment": [<br />    "production",<br />    "prod-backup"<br />  ]<br />},<br />"ArnEquals": {<br />  "ecs:cluster": [<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default1",<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default2"<br />  ]<br />}</pre>  | <pre>aws:RequestTag: environment:production<br />ecs:cluster:<br />  arn:aws:ecs:us-east-1:111122223333:cluster/default1</pre>  | Match | 
| <pre>"StringEquals": {<br />  "aws:RequestTag/environment": [<br />    "production",<br />    "prod-backup"<br />  ]<br />},<br />"ArnEquals": {<br />  "ecs:cluster": [<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default1",<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default2"<br />  ]<br />}</pre>  | <pre>aws:RequestTag: environment:prod-backup<br />ecs:cluster:<br />  arn:aws:ecs:us-east-1:111122223333:cluster/default2</pre>  | Match | 
| <pre>"StringEquals": {<br />  "aws:RequestTag/environment": [<br />    "production",<br />    "prod-backup"<br />  ]<br />},<br />"ArnEquals": {<br />  "ecs:cluster": [<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default1",<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default2"<br />  ]<br />}</pre>  | <pre>aws:RequestTag: webserver:production<br />ecs:cluster:<br />  arn:aws:ecs:us-east-1:111122223333:cluster/default2</pre>  | No match | 
| <pre>"StringEquals": {<br />  "aws:RequestTag/environment": [<br />    "production",<br />    "prod-backup"<br />  ]<br />},<br />"ArnEquals": {<br />  "ecs:cluster": [<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default1",<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default2"<br />  ]<br />}</pre>  |  No hay `aws:RequestTag` en el contexto de la solicitud. <pre>ecs:cluster<br />  arn:aws:ecs:us-east-1:111122223333:cluster/default2</pre>  | No match | 

# Elementos de la política de IAM: variables y etiquetas
<a name="reference_policies_variables"></a>

Utilice las variables de las políticas de AWS Identity and Access Management (IAM) como marcadores de posición cuando no sepa el valor exacto de un recurso o una clave de condición al escribir la política.

**nota**  
Si AWS no puede resolver una variable, esto puede provocar que toda la declaración no sea válida. Por ejemplo, si utiliza la variable `aws:TokenIssueTime`, la variable se resuelve a un valor solo cuando el solicitante se ha autenticado mediante credenciales temporales (un rol de IAM). Para evitar que las variables causen declaraciones no válidas, utilice el [operador de condición IfExist.](reference_policies_elements_condition_operators.md#Conditions_IfExists)

**Topics**
+ [Introducción](#policy-vars-intro)
+ [Uso de variables en políticas](#policy-vars-using-variables)
+ [Etiquetas como variables de la política](#policy-vars-tags)
+ [Dónde puede utilizar variables de política](#policy-vars-wheretouse)
+ [Variables de política sin valor](#policy-vars-no-value)
+ [Información de la solicitud que puede utilizar para variables de políticas](#policy-vars-infotouse)
+ [Especificación de valores predeterminados](#policy-vars-default-values)
+ [Para obtener más información](#policy-vars-formoreinfo)

## Introducción
<a name="policy-vars-intro"></a>

En las políticas de IAM, hay muchas acciones que le permiten asignar un nombre para los recursos concretos cuyo acceso desea controlar. Por ejemplo, la siguiente política permite a los usuarios enumerar y escribir objetos en el bucket de S3 `amzn-s3-demo-bucket` para proyectos de `marketing`.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:ListBucket"],      
      "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket"],
      "Condition": {"StringLike": {"s3:prefix": ["marketing/*"]}}
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:PutObject"
      ],      
      "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket/marketing/*"]
    }
  ]
}
```

------

Puede darse el caso de que no sepa el nombre exacto del recurso cuando escribe la política. Es posible que le interese generalizar la política de modo que se adapte a muchos usuarios sin necesidad de realizar una única copia de la política para cada usuario. En lugar de crear una política independiente para cada usuario, le recomendamos que cree una única política de grupo que sirva para todos los usuarios de ese grupo. 

## Uso de variables en políticas
<a name="policy-vars-using-variables"></a>

Puede definir valores dinámicos dentro de las políticas mediante *variables de política* que establezcan marcadores de posición en una política.

Las variables se marcan mediante un prefijo **`$`** seguido de un par de llaves (**`{ }`**) que incluyen el nombre de la variable del valor de la solicitud.

Cuando se evalúa una política, las variables de la política se sustituyen por valores procedentes de las claves de contexto condicionales pasadas en la solicitud. Las variables se pueden usar en [políticas basadas en identidades, políticas de recursos, políticas de control de servicios, políticas de sesión](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) y [políticas de punto de conexión de VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html). Las políticas basadas en identidades que se utilizan como límites de permisos también admiten variables de política. 

Las claves de contexto de condición global se pueden utilizar como variables en las solicitudes en los servicios de AWS. Las claves de condición específicas del servicio también se pueden usar como variables al interactuar con los recursos de AWS, pero solo están disponibles cuando se realizan solicitudes a los recursos que las admiten. Para obtener una lista de las claves de contexto disponibles para cada servicio y recurso de AWS, consulte la [https://docs.aws.amazon.com/service-authorization/latest/reference/reference.html](https://docs.aws.amazon.com/service-authorization/latest/reference/reference.html). En determinadas circunstancias, no puede rellenar las claves de contexto de condición global con un valor. Para obtener más información sobre cada clave, consulte [Claves de contexto de condición global de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html).

**importante**  
Los nombres de clave no distinguen entre mayúsculas y minúsculas. Por ejemplo, `aws:CurrentTime` equivale a `AWS:currenttime`.
Puede utilizar cualquier clave de condición de valor único como variable. No se puede utilizar una clave de condición multivalor como variable.

En el siguiente ejemplo, se muestra una política para un usuario o rol de IAM que reemplaza un nombre de recurso específico con una variable de política. Puede reutilizar esta política si utiliza la clave de condición `aws:PrincipalTag`. Cuando se evalúa esta política, `${aws:PrincipalTag/team}` permite la acción solo si el nombre del bucket termina con un nombre de equipo de la etiqueta de entidad principal `team`.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:ListBucket"],      
      "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket"],
      "Condition": {"StringLike": {"s3:prefix": ["${aws:PrincipalTag/team}/*"]}}
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:PutObject"
      ],      
      "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket/${aws:PrincipalTag/team}/*"]
    }
  ]
}
```

------

La variable se marca con un prefijo `$` seguido de un par de llaves (`{ }`). Dentro de los caracteres `${ }`, se puede incluir el nombre del valor de la solicitud que quiere utilizar en la política. Los valores que puede utilizar se tratan más adelante en esta página.

Para obtener más información sobre esta clave de condición global, consulte [aws:PrincipalTag/*tag-key*](reference_policies_condition-keys.md#condition-keys-principaltag) en la lista de claves de condición globales.

**nota**  
Para poder utilizar las variales de políticas debe incluir el `Version` el elemento en una declaración, y la versión debe ser una que admita las variables de la política. Variables se introdujeron en la versión `2012-10-17`. Las versiones anteriores del lenguaje de políticas no son compatibles con las variables de políticas. Si no incluye el elemento `Version` ni lo establece en la fecha correspondiente a esta versión, las variables como `${aws:username}` se tratarán como cadenas literales en la política.   
El elemento de política `Version` es diferente de la versión de una política. El elemento de política `Version` se utiliza en una política y define la versión del lenguaje de la política. Una versión de política, por otro lado, se crea al cambiar una política administrada por el cliente en IAM. La política modificada no anula la política existente. En cambio, IAM crea una nueva versión de la política administrada. Para obtener más información sobre el elemento de política `Version`, consulte [Elementos de política JSON de IAM: Version](reference_policies_elements_version.md). Para obtener más información sobre las versiones de política, consulte [Control de versiones de políticas de IAM](access_policies_managed-versioning.md).

Una política que permite a una entidad principal obtener objetos de la ruta /David de un bucket de S3 tiene el siguiente aspecto:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject"
      ],
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/David/*"
      ]
    }
  ]
}
```

------

Si utiliza una política que se ha adjuntado al usuario `David`, dicho usuario obtiene objetos de su propio bucket de S3, pero usted tendrá que crear una política individual para cada usuario que incluya el nombre del usuario. Después, tendrá que asociar cada política a los usuarios individuales.

Si utiliza una variable de política, puede crear políticas reutilizables. La siguiente política permite al usuario obtener objetos de un bucket de Amazon S3 si el valor de la clave de etiqueta `aws:PrincipalTag` coincide con el valor de la clave de etiqueta `owner` introducido en la solicitud. 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [{
    "Sid": "AllowUnlessOwnedBySomeoneElse",
    "Effect": "Allow",
    "Action": ["s3:GetObject"],    
    "Resource": ["*"],
    "Condition": {
        "StringEquals": {
          "s3:ExistingObjectTag/owner": "${aws:PrincipalTag/owner}"
        }
      }
    }
  ]
}
```

------

Cuando utiliza una variable de política en lugar de un usuario de este tipo, no tiene que tener una política independiente para cada usuario individual. En el siguiente ejemplo, la política se adjunta a un rol de IAM que asumen los gerentes de producto mediante credenciales de seguridad temporales. Cuando un usuario solicita agregar un objeto de Amazon S3, IAM sustituye el valor de etiqueta `dept` de la solicitud actual por la variable `${aws:PrincipalTag}` y evalúa la política. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowOnlyDeptS3Prefix",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/${aws:PrincipalTag/dept}/*"
            ]
        }
    ]
}
```

------

## Etiquetas como variables de la política
<a name="policy-vars-tags"></a>

En algunos servicios de AWS puede asociar sus propios atributos personalizados a los recursos creados por dichos servicios. Por ejemplo, puede aplicar etiquetas a buckets de Amazon S3 o a usuarios de IAM. Estas etiquetas son pares clave-valor. Puede definir el nombre de la clave de la etiqueta y el valor que es asociado a dicho nombre de clave. Podría, por ejemplo, crear una etiqueta con una clave **department** y un valor **Human Resources**. Para obtener más información sobre la etiquetación de entidades de IAM, consulte [Etiquetas para recursos de AWS Identity and Access Management](id_tags.md). Para obtener información acerca de cómo etiquetar recursos creados por otros servicios de AWS, consulte la documentación de dicho servicio. Para obtener más información acerca de cómo utilizar Tag Editor, consulte [Uso de Tag Editor](https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/tag-editor.html) en la *Guía del usuario de Consola de administración de AWS*.

Puede etiquetar recursos de IAM para simplificar la detección, la organización y el seguimiento de recursos de IAM. También puede etiquetar identidades de IAM para controlar el acceso a recursos o para el etiquetado en sí. Para obtener más información sobre cómo utilizar etiquetas de para controlar el acceso, consulte [Control de acceso a usuarios y roles de IAM y para ellos mediante etiquetas](access_iam-tags.md). 

## Dónde puede utilizar variables de política
<a name="policy-vars-wheretouse"></a>

 Puede utilizar variables de política en el elemento `Resource` y en la comparación de cadenas en el elemento `Condition`.

### Elemento de recurso
<a name="policy-vars-resourceelement"></a>

Puede utilizar una variable de política en el elemento `Resource`, pero solo en la parte de recurso del ARN. Esta parte del ARN aparece después de los quintos dos puntos (:). No puede utilizar una variable para reemplazar partes del ARN antes de los quintos dos puntos, como el servicio o la cuenta. Para obtener más información sobre el formato del ARN, consulte [ARN de IAM](reference_identifiers.md#identifiers-arns).

Para reemplazar parte de un ARN por un valor de etiqueta, incluya el prefijo y el nombre de clave entre `${ }`. Por ejemplo, el siguiente elemento de recurso se refiere únicamente a un bucket que tiene el mismo nombre que el valor en la solicitud de la etiqueta de departamento del usuario.

`"Resource": ["arn:aws::s3:::amzn-s3-demo-bucket/${aws:PrincipalTag/department}"]`

Muchos recursos de AWS utilizan ARN que contienen un nombre creado por el usuario. La siguiente política de IAM garantiza que solo los usuarios previstos con valores de etiquetas de acceso, proyecto, aplicación y entorno de acceso coincidentes puedan modificar sus recursos. Además, al utilizar [coincidencias con caracteres comodín \$1](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_resource.html), pueden permitir sufijos de nombres de recursos personalizados. 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowAccessBasedOnArnMatching",
      "Effect": "Allow",
      "Action": [
        "sns:CreateTopic",
        "sns:DeleteTopic"],      
      "Resource": ["arn:aws:sns:*:*:${aws:PrincipalTag/access-project}-${aws:PrincipalTag/access-application}-${aws:PrincipalTag/access-environment}-*"
      ]
    }
  ]
}
```

------

### Elemento de condición
<a name="policy-vars-conditionelement"></a>

Puede utilizar una variable de política para valores de `Condition` en cualquier condición que involucre a los operadores de cadena o a los operadores ARN. Los operadores de cadena incluyen `StringEquals`, `StringLike` y `StringNotLike`. Los operadores ARN incluyen `ArnEquals` y `ArnLike`. No se puede utilizar una variable de política con otros operadores como operadores `Numeric`, `Date`, `Boolean`, `Binary`, `IP Address` o `Null`. Para obtener más información acerca de los operadores de condición, consulte [Elementos de la política de JSON de IAM: operadores de condición](reference_policies_elements_condition_operators.md).

Al hacer referencia a una etiqueta en una expresión del elemento `Condition`, utilice el prefijo y el nombre de la clave pertinentes como clave de condición. A continuación, utilice el valor que desea probar en el valor de condición.

Por ejemplo, el siguiente ejemplo de política permite el acceso completo a recursos, solo si la etiqueta `costCenter` se ha asociado al usuario. La etiqueta también debe tener un valor de `12345` o `67890`. Si la etiqueta no tiene ningún valor o tiene algún otro valor, se producirá un error en la solicitud.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
          "iam:*user*"
       ],
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "iam:ResourceTag/costCenter": [ "12345", "67890" ]
        }
      }
    }
  ]
}
```

------

## Variables de política sin valor
<a name="policy-vars-no-value"></a>

Cuando las variables de política hacen referencia a una clave de contexto de condición que no tiene ningún valor o no está presente en el contexto de autorización de una solicitud, el valor es efectivamente nulo. No hay un valor igual o similar. Es posible que las claves de contexto de condición no estén presentes en el contexto de autorización cuando:
+ Utiliza claves de contexto de condición específicas del servicio en las solicitudes a recursos que no admiten esa clave de condición.
+ Las etiquetas de las entidades principales, las sesiones, los recursos o las solicitudes de IAM no están presentes.
+ Se presentan otras circunstancias, tal como se enumeran para cada contexto de condición global en [Claves de contexto de condición globales de AWS](reference_policies_condition-keys.md).

Cuando utiliza una variable sin valor en el elemento de condición de una política de IAM, [Elementos de la política de JSON de IAM: operadores de condición](reference_policies_elements_condition_operators.md) como `StringEquals` o `StringLike` no coinciden y la instrucción de política no entra en vigor.

Los operadores de condición invertida como `StringNotEquals` o `StringNotLike` coinciden con un valor nulo, ya que el valor de la clave de condición con la que están realizando la prueba no es igual o similar al valor realmente nulo.

En el siguiente ejemplo, `aws:principaltag/Team` debe ser igual a `s3:ExistingObjectTag/Team` para permitir el acceso. El acceso se deniega explícitamente cuando `aws:principaltag/Team` no está configurado. Si se utiliza una variable que no tiene ningún valor en el contexto de autorización como parte del elemento `Resource` o `NotResource` de una política, el recurso que incluye una variable de política sin valor no coincidirá con ningún recurso.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
   {
    "Effect": "Deny", 
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
    "Condition": {
      "StringNotEquals": {
        "s3:ExistingObjectTag/Team": "${aws:PrincipalTag/Team}"
       }
      }
    }
  ]
}
```

------

## Información de la solicitud que puede utilizar para variables de políticas
<a name="policy-vars-infotouse"></a>

 Puede utilizar el elemento `Condition` de una política JSON para comparar las claves de la [solicitud de contexto](reference_policies_evaluation-logic_policy-eval-reqcontext.md) con los valores de claves que especifique en su política. Cuando se utiliza una variable de política, AWS sustituye un valor de la clave de contexto de solicitud en lugar de la variable de su política.

### Valores clave principales
<a name="principaltable"></a>

Los valores de `aws:username`, `aws:userid` y `aws:PrincipalType` dependen del tipo de principal que inició la solicitud. Por ejemplo, la solicitud podría realizarse con las credenciales de un usuario de IAM, un rol de IAM o el Usuario raíz de la cuenta de AWS. La tabla siguiente muestra los valores de estas claves para diferentes tipos de entidades principales. 


****  

| Principal | `aws:username` | `aws:userid` | `aws:PrincipalType` | 
| --- | --- | --- | --- | 
| Usuario raíz de la cuenta de AWS | (ausente) | Cuenta de AWSID de  | Account | 
| Usuario de IAM | Nombre-usuario-IAM | [ID único](reference_identifiers.md#identifiers-unique-ids) | User | 
| Entidad principal de usuario federado de AWS STS | (ausente) | cuenta:nombre-especificado-por-intermediario | FederatedUser | 
| Entidad principal federada de OIDC Para obtener más información acerca de las claves de la política que están disponibles cuando usa la federación de identidades web, consulte [Claves disponibles para las federaciones de identidades AWS de OIDC](reference_policies_iam-condition-keys.md#condition-keys-wif).  | (ausente) |   *role-id*:*caller-specified-role-name*  donde `role-id` es el [identificador exclusivo del rol](reference_identifiers.md#identifiers-unique-ids) y el nombre del rol especificado por el intermediario se indica mediante el [parámetro RoleSessionName](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AssumeRole.html#API_AssumeRoleWithWebIdentity_RequestParameters) pasado a la solicitud AssumeRoleWithWebIdentity.  | AssumedRole | 
| Entidad principal federada de SAML Para obtener más información acerca de las claves de política que están disponibles cuando usa la federación SAML, consulte [Identificación única de los usuarios en la federación basada en SAML](id_roles_providers_saml.md#CreatingSAML-userid).  | (ausente) |  *role-id*:*caller-specified-role-name* donde el `role-id` es el [id exclusivo del rol](reference_identifiers.md#identifiers-unique-ids) y el nombre-de-rol-especificado-por-intermediario se especifica mediante el elemento Attribute con el [nombre de atributo](id_roles_providers_create_saml_assertions.md) establecido en https://aws.amazon.com/SAML/attributes/RoleSessionName.  | AssumedRole | 
| Rol asumido | (ausente) |  *role-id*:*caller-specified-role-name* donde `role-id` es el [identificador exclusivo del rol](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids) y el nombre del rol especificado por el intermediario se indica mediante el [parámetro RoleSessionName](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html#API_AssumeRole_RequestParameters) pasado a la solicitud AssumeRole.  | AssumedRole | 
| Rol asignado a una instancia de Amazon EC2 | (ausente) |  *id-rol*:*id-instancia-ec2* donde `role-id` es el [identificador exclusivo del rol](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids) y ec2-instance-id es el [identificador exclusivo de la instancia EC2](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html).  | AssumedRole | 
| Persona que llama de manera anónima (Amazon SQS, Amazon SNS y Amazon S3) | (ausente) | anonymous | Anonymous | 

Para los elementos de esta tabla , lista tenga en cuenta lo siguiente:
+ *ausente* significa que el valor actual no está en la información de solicitud actual y que cualquier intento de asociarlo dará un error y hará que la declaración no sea válida. 
+ *id-rol* es un identificador exclusivo asignado a cada rol en el momento de su creación. Puede visualizar el ID de rol con el comando de AWS CLI: `aws iam get-role --role-name rolename`
+ *nombre-especificado-por-intermediario* y *nombre-de-rol-especificado-por-intermediario* son nombres (como una aplicación o un servicio) que el proceso de llamada transmite cuando realiza una llamada para obtener credenciales temporales.
+ *id-instancia-ec2* es un valor asignado a la instancia cuando esta se lanza y aparece en la página **Instancias** de la consola de Amazon EC2. También puede mostrar el ID de instancia ejecutando el comando de AWS CLI: `aws ec2 describe-instances`

### Información disponible en las solicitudes para entidades principales federadas
<a name="policy-vars-infoWIF"></a>

Las entidades principales federadas son usuarios autenticados mediante un sistema distinto de IAM. Por ejemplo, una empresa puede tener una aplicación para su uso interno que realiza llamadas a AWS. Puede ser poco práctico dar una identidad de IAM a todos los usuarios de la empresa que usen la aplicación. En lugar de ello, la empresa puede utilizar una aplicación proxy (nivel intermedio) que tenga una única identidad de IAM o la empresa puede utilizar un proveedor de identidades (IdP) SAML. La aplicación proxy o el proveedor de identidades SAML autentican a usuarios individuales que utilizan la red corporativa. Una aplicación proxy puede, pues, utilizar su identidad de IAM para obtener credenciales de seguridad temporales para usuarios individuales. Un proveedor de identidades SAML puede efectivamente intercambiar información de identidad para credenciales de seguridad temporales de AWS. En ese caso, las credenciales temporales pueden utilizarse para obtener acceso a los recursos de AWS. 

Del mismo modo, puede crear una aplicación para un dispositivo móvil en el que la aplicación necesite obtener acceso a recursos de AWS. En ese caso, puede utilizar las *federaciones OIDC*, donde la aplicación autentifica al usuario mediante un proveedor de identidades popular como Inicio de sesión con Amazon, Amazon Cognito, Facebook o Google. Entonces, la aplicación puede utilizar la información de autenticación del usuario de estos proveedores para obtener credenciales de seguridad temporales para obtener acceso a recursos de AWS. 

La manera recomendada de utilizar las federaciones OIDC consiste en aprovechar Amazon Cognito y los SDK para móviles de AWS. Para obtener más información, consulte lo siguiente:
+ [Guía del usuario de Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html) 
+ [Escenarios habituales en las credenciales temporales](id_credentials_temp.md#sts-introduction)

### Caracteres especiales
<a name="policy-vars-specialchars"></a>

Hay algunas variables de política predefinidas especiales que tienen valores fijos que le permiten representar caracteres que, de otro modo, tendrían un significado especial. Si estos caracteres especiales forman parte de la cadena que intenta hacer corresponder y se insertan literalmente, es posible que se interpreten erróneamente. Por ejemplo, insertar un \$1 asterisco en la cadena se interpretaría como un comodín que coincide con cualquier carácter, salvo un \$1 literal. En estos casos puede utilizar las variables de política predefinidas siguientes:
+ **\$1\$1\$1\$1** - debe utilizarse cuando se necesite un carácter \$1 (asterisco).
+ **\$1\$1?\$1** - debe utilizarse cuando se necesite carácter ? (signo de interrogación).
+ **\$1\$1\$1\$1** - debe utilizarse cuando necesite un carácter \$1 (signo de dólar).

Estas variables de política predefinida se pueden utilizar en todas las cadenas donde pueda utilizar variables de política estándar.

## Especificación de valores predeterminados
<a name="policy-vars-default-values"></a>

Para agregar un valor predeterminado a una variable, rodee el valor predeterminado entre comillas simples (`' '`), y separe el texto de la variable y el valor predeterminado con una coma y un espacio (`, `).

Por ejemplo, si una entidad principal está etiquetada con `team=yellow`, puede acceder al bucket de Amazon S3 de `ExampleCorp's` llamado `amzn-s3-demo-bucket-yellow`. Una política con este recurso permite a los miembros del equipo acceder al bucket su equipo, pero no al de otros equipos. Para los usuarios sin etiquetas de equipo, establece un valor predeterminado de `company-wide` para el nombre del bucket. Estos usuarios solo pueden acceder al bucket de `amzn-s3-demo-bucket-company-wide` en el que pueden ver información amplia, como instrucciones para unirse a un equipo.

```
"Resource":"arn:aws:s3:::amzn-s3-demo-bucket-${aws:PrincipalTag/team, 'company-wide'}"
```

## Para obtener más información
<a name="policy-vars-formoreinfo"></a>

Para obtener más información acerca de las políticas, consulte los siguientes temas: 
+  [Políticas y permisos en AWS Identity and Access Management](access_policies.md) 
+  [Ejemplos de políticas basadas en identidad de IAM](access_policies_examples.md) 
+  [Referencia de los elementos de la política de JSON de IAM](reference_policies_elements.md) 
+  [Lógica de evaluación de políticas](reference_policies_evaluation-logic.md) 
+  [Federación OIDC](id_roles_providers_oidc.md)

# Elementos de la política de JSON de IAM: tipos de datos compatibles
<a name="reference_policies_elements_datatypes"></a>

En esta sección se presentan los tipos de datos que son compatibles al especificar valores en las políticas de JSON. El lenguaje de política no admite todos los tipos de elementos de política. Para obtener información sobre cada elemento, consulte las secciones anteriores.
+ Cadenas
+ Números (Ints y Floats)
+ Booleano
+ Nulo
+ Listas
+ Mapas
+ Structs (que son simplemente Maps anidados)

En la siguiente tabla se relaciona cada tipo de datos a su serialización. Tenga en cuenta que todas las políticas deben estar en UTF-8. Para obtener información sobre los tipos de datos JSON, diríjase a [RFC 4627](https://datatracker.ietf.org/doc/html/rfc4627).


****  

| Tipo | JSON | 
| --- | --- | 
|  Cadena  |  Cadena  | 
|  Entero  |  Número  | 
|  Flotante  |  Número  | 
|  Booleano  |  true false  | 
|  Nulo  |  null  | 
|  Date  |  String que cumple con [W3C Profile of ISO 8601](http://www.w3.org/TR/NOTE-datetime)  | 
|  IpAddress  |  String que cumple con [RFC 4632](https://datatracker.ietf.org/doc/html/rfc4632)  | 
|  Enumeración  |  Matriz  | 
|  Objeto  |  Objeto  | 

# Lógica de evaluación de políticas
<a name="reference_policies_evaluation-logic"></a>

Cuando una entidad principal intenta utilizar la Consola de administración de AWS, la API de AWS o la AWS CLI, la entidad principal envía una *solicitud* a AWS. Cuando un servicio de AWS recibe la solicitud, AWS lleva a cabo varios pasos para determinar si debe permitir o denegar la solicitud.

1. **Autenticación** – AWS primero autentica la entidad principal que realiza la solicitud, si fuera necesario. Este paso no es necesario para algunos servicios, como Amazon S3, que permiten algunas solicitudes de usuarios anónimos.

1. **[Procesamiento del contexto de la solicitud](reference_policies_evaluation-logic_policy-eval-reqcontext.md)** – AWS procesa la información recopilada en la solicitud para determinar las políticas que se aplican a esta.

1. **[Cómo la lógica del código de aplicación de AWS evalúa las solicitudes para permitir o denegar el acceso](reference_policies_evaluation-logic_policy-eval-denyallow.md)**: AWS evalúa todos los tipos de políticas y el orden de las políticas afecta a cómo se evalúan. A continuación, AWS procesa las políticas con el contexto necesario para determinar si se permite o se deniega la solicitud.

## Evaluación de políticas basadas en identidad con políticas basadas en recursos
<a name="policy-eval-basics-id-rdp"></a>

Las políticas basadas en identidad y las políticas basadas en recursos conceden permisos referidos a las identidades o recursos a los que están asociadas. Cuando una entidad de IAM (usuario o rol) solicita acceso a un recurso de la misma cuenta, AWS evalúa todos los permisos concedidos por las políticas basadas en identidad y las basadas en recursos. Los permisos resultantes son la unión de aplicar los dos tipos. Si una política basada en identidad, una política basada en recursos, o ambas, permiten una acción, entonces AWS permite la acción. Una denegación explícita en una de estas políticas anulará el permiso.

![\[Evaluación de políticas basadas en identidad y políticas basadas en recursos\]](http://docs.aws.amazon.com/es_es/IAM/latest/UserGuide/images/permissions_policies_effective.png)


## Evaluación de políticas basadas en identidad con límites de permisos
<a name="policy-eval-basics-id-bound"></a>

Cuando AWS evalúa las políticas basadas en identidad y el límite de permisos para un usuario, los permisos resultantes son la intersección de las dos categorías. Esto significa que, cuando se añade un límite de permisos a un usuario que ya tiene políticas de permisos basadas en identidad, es posible que se reduzca el número de acciones que puede realizar. Del mismo modo, al eliminar un límite de permisos de un usuario, es posible que aumente el número de acciones que este puede realizar. Una denegación explícita en una de estas políticas anulará el permiso. Para ver información acerca del modo en que se evalúan otros tipos de políticas con los límites de permisos, consulte [Evaluación de los permisos efectivos cuando se usan límites](access_policies_boundaries.md#access_policies_boundaries-eval-logic).

![\[Evaluación de políticas basadas en identidad y límites de permisos\]](http://docs.aws.amazon.com/es_es/IAM/latest/UserGuide/images/permissions_boundary.png)


## Evaluación de políticas basadas en identidad con SCP o RCP de AWS Organizations
<a name="policy-eval-basics-id-scp"></a>

Cuando un usuario pertenece a una cuenta que es miembro de una organización y accede a un recurso que no tiene configurada una política basada en recursos, los permisos resultantes son la intersección de las políticas del usuario, las políticas de control de servicios (SCP) y la política de control de recursos (RCP). Esto significa que los tres tipos de políticas deben permitir una acción. Una denegación explícita en la política basada en la identidad, una SCP o una RCP anula la autorización.

![\[Evaluación de políticas basadas en identidad y SCP o RCP\]](http://docs.aws.amazon.com/es_es/IAM/latest/UserGuide/images/permissions_scp-idp.png)


Puede saber [si su cuenta es miembro de una organización](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_details.html#orgs_view_account) en AWS Organizations. Los miembros de la organización podrían verse afectados por una SCP o RCP. Para ver estos datos a través del comando AWS CLI u operación de la API de AWS, debe tener permisos para la acción `organizations:DescribeOrganization` para su entidad AWS Organizations. Debe tener permisos adicionales para realizar la operación en la consola AWS Organizations. Para saber si una SCP o RCP deniega el acceso a una solicitud específica o para cambiar los permisos efectivos, póngase en contacto con su administrador de AWS Organizations.

# Procesamiento del contexto de la solicitud
<a name="reference_policies_evaluation-logic_policy-eval-reqcontext"></a>

Cuando AWS evalúa y autoriza una solicitud, reúne la información de la solicitud en un *contexto de solicitud*. El contexto de la solicitud contiene cualquier información que se pueda utilizar en la evaluación de políticas.
+ **Entidad principal**: el usuario, rol o entidad principal de usuario federado que envió la solicitud. La información sobre la entidad principal incluye las políticas asociada a dicha entidad principal. 
+ **Acciones**: una o más acciones que la entidad principal desea realizar.
+ **Recursos**: uno o más objetos de recurso de AWS sobre el que se realizan las acciones u operaciones.
+ **Datos de recursos**: datos relacionados con el recurso que se está solicitando. Esto puede incluir información como, por ejemplo, un nombre de tabla de DynamoDB o una etiqueta de una instancia Amazon EC2.
+ **Datos de entorno**: información sobre la dirección IP, el agente de usuario, el estado de habilitación de SSL o la hora del día.

Esta información se compara con las políticas aplicables para determinar si se debe permitir o denegar la solicitud. Puede organizar esta información de propiedades mediante el modelo **Entidad principal**, **Acción**, **Recurso** y **Condición** (PARC) para comprender mejor cómo se evalúan las políticas de AWS.

## Descripción del modelo PARC
<a name="reqcontext_parc-model"></a>

El modelo PARC representa el contexto de la solicitud en función de los cuatro elementos JSON del lenguaje de políticas:
+ [Principal](reference_policies_elements_principal.md): la entidad que realiza la solicitud. Una entidad principal representa a un usuario humano o carga de trabajo programática que se puede autenticar y, luego, autorizar para realizar acciones en Cuentas de AWS.
+ [Action](reference_policies_elements_action.md): la operación que se está realizando. A menudo, la acción se corresponderá con una acción de la API.
+ [Resource](reference_policies_elements_resource.md): el recurso de AWS en el que se está llevando a cabo la acción.
+ [Condition](reference_policies_elements_condition.md): restricciones adicionales que deben cumplirse para que se permita la solicitud.

A continuación se muestra un ejemplo de cómo el modelo PARC podría representar un contexto de solicitud:

```
Principal: AIDA123456789EXAMPLE
Action: s3:CreateBucket
Resource: arn:aws:s3:::amzn-s3-demo-bucket1
Context:
- aws:UserId=AIDA123456789EXAMPLE:BobsSession
- aws:PrincipalAccount=123456789012
- aws:PrincipalOrgId=o-example
- aws:PrincipalARN=arn:aws:iam::AIDA123456789EXAMPLE:role/HR
- aws:MultiFactorAuthPresent=true
- aws:CurrentTime=...
- aws:EpochTime=...
- aws:SourceIp=...
- aws:PrincipalTag/dept=123
- aws:PrincipalTag/project=blue
- aws:RequestTag/dept=123
```

## Importancia del contexto de la solicitud
<a name="reqcontext_importance"></a>

Comprender el contexto de la solicitud y cómo esta interactúa con la evaluación de la política es crucial para lo siguiente:
+ Solucionar problemas de acceso 
+ Diseñar políticas eficaces y seguras
+ Comprender el alcance completo de los permisos que concede una política
+ Predecir el resultado de las evaluaciones de políticas en diferentes escenarios

Al visualizar el contexto de la solicitud mediante el modelo PARC, puede comprender con mayor facilidad cómo AWS toma las decisiones de autorización y diseñar sus políticas de manera más eficaz.

## Uso de AWS del contexto de la solicitud
<a name="reqcontext_usage"></a>

Al evaluar las políticas, AWS compara la información del contexto de la solicitud con la información especificada en todas las políticas aplicables. Esto incluye las políticas basadas en identidades, las políticas basadas en recursos, los límites de permisos de IAM, las SCP de Organizations, las RCP de Organizations y las políticas de sesión.

Para cada tipo de política, AWS utiliza el contexto de la solicitud para comprobar lo siguiente:
+ Si la política se aplica a la solicitud en función de la entidad principal.
+ Si la acción solicitada se permite en el recurso especificado.
+ Si el contexto de la solicitud cumple alguna de las condiciones especificadas en la política.

El modo en que AWS evalúa las políticas depende de los tipos de las políticas aplicables al contexto de la solicitud. Estos tipos de políticas están disponibles para su uso dentro de una misma Cuenta de AWS. Para obtener más información acerca de estos tipos de políticas, consulte [Políticas y permisos en AWS Identity and Access Management](access_policies.md). Para obtener información sobre cómo AWS evalúa las políticas para el acceso entre cuentas, consulte [Lógica de evaluación de políticas entre cuentas](reference_policies_evaluation-logic-cross-account.md).
+ **Políticas de control de recursos (RCP) de AWS Organizations**: las RCP de AWS Organizations especifican los permisos máximos disponibles para los recursos en las cuentas de una organización o unidad organizativa (OU). Las RCP se aplican a los recursos de las cuentas de los miembros y afectan a los permisos efectivos de las entidades principales, incluida la Usuario raíz de la cuenta de AWS, independientemente de si las entidades principales pertenecen a la organización. Las RCP no se aplican a los recursos de la cuenta de administración de la organización ni a las llamadas realizadas por los roles vinculados al servicio. Si existe una RCP, los permisos otorgados por las políticas basadas en identidades y en recursos a los recursos de las cuentas de miembro solo tendrán efecto si la RCP también permite la acción.
+ **Políticas de control de servicio (SCP) de AWS Organizations**: las SCP de AWS Organizations especifican los permisos máximos disponibles para los principales dentro de las cuentas de una organización o unidad organizativa (OU). Las SCP se aplican a las entidades principales de las cuentas miembro, incluido cada Usuario raíz de la cuenta de AWS. Si existe una SCP, los permisos otorgados por las políticas basadas en identidades y en recursos a las entidades principales de las cuentas miembro solo tendrán efecto si la SCP también permite la acción. Las únicas excepciones son las entidades principales de la cuenta de administración de la organización y los roles vinculados al servicio.
+ **Políticas basadas en recursos**: las políticas basadas en recursos otorgan permisos a las entidades principales especificadas en la política. Los permisos definen lo que la entidad principal puede hacer con el recurso al que está asociada la política.
+ **Límites de permisos **: los límites de permisos son una característica que le permite establecer los permisos máximos que una política basada en identidades puede conceder a una entidad de IAM (usuario o rol). Al establecer un límite de permisos para una entidad, la entidad solo puede realizar las acciones que le permitan tanto sus políticas basadas en identidad como sus límites de permisos. En algunos casos, una denegación implícita en un límite de permisos puede limitar los permisos concedidos por una política basada en recursos. Para obtener más información, consulte [Cómo la lógica del código de aplicación de AWS evalúa las solicitudes para permitir o denegar el acceso](reference_policies_evaluation-logic_policy-eval-denyallow.md).
+ **Políticas basadas en identidad** - Las políticas basadas en identidad se asocian a una identidad de IAM (usuario, grupo de usuarios o rol) y conceden permisos a entidades de IAM (usuarios y roles). Cuando a una solicitud solo le son aplicables políticas basadas en identidad, AWS comprueba toda ellas para obtener al menos un permiso `Allow`.
+ **Políticas de sesión**: las políticas de sesión son políticas que se transfieren como parámetros al crear mediante programación una sesión temporal para un rol o una sesión de usuario federado. Para crear una sesión de rol mediante programación, utilice una de las operaciones de API `AssumeRole*`. Al hacerlo y pasar las políticas de sesión, los permisos de la sesión resultantes son la intersección de las políticas basadas en identidades de la entidad IAM y las políticas de la sesión. Para crear una sesión de un usuario federado, se usan las claves de acceso de un usuario de IAM para llamar mediante programación a la operación de API `GetFederationToken`. Para obtener más información, consulte [Políticas de sesión](access_policies.md#policies_session).

Recuerde que una denegación explícita en cualquiera de estas políticas anulará el permiso.

**nota**  
Las **políticas declarativas de AWS Organizations** le permiten declarar y aplicar de forma centralizada la configuración deseada para un determinado Servicio de AWS a escala en toda la organización. Como las políticas declarativas se aplican directamente por servicio, no afectan directamente a las solicitudes de evaluación de políticas y no se incluyen en el contexto de las solicitudes. Para obtener más información, consulte [Declarative policies](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative.html) en la Guía del usuario de AWS Organizations.

## Ejemplo de evaluación de política con el modelo PARC
<a name="reqcontext_example"></a>

Para ilustrar cómo el contexto de la solicitud interactúa con la evaluación de la política, consideremos un ejemplo de política:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:CreateBucket",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalTag/dept": "123"
        }
      }
    }
  ]
}
```

------

En este ejemplo, la política permitiría la acción `CreateBucket` solo cuando el contexto de la solicitud incluya un valor `aws:PrincipalTag/dept` de “123” y el recurso coincida con el nombre del bucket `amzn-s3-demo-bucket1`. La siguiente tabla muestra cómo AWS utiliza el contexto de la solicitud para evaluar esta política y tomar decisiones de autorización.


| Política | El contexto de la solicitud | Resultado de la evaluación | 
| --- | --- | --- | 
| <pre>"StringEquals": {<br />    "aws:PrincipalTag/dept": "123"<br />}</pre>  |  <pre>Principal: AIDA123456789EXAMPLE<br />Action: s3:CreateBucket<br />Resource: arn:aws:s3:::amzn-s3-demo-bucket1<br />Context:  <br />    - aws:PrincipalTag/dept=123</pre>  | **Match** | 
| <pre>"StringEquals": {<br />    "aws:PrincipalTag/dept": "123"<br />}</pre>  |  <pre>Principal: AIDA123456789EXAMPLE<br />Action: s3:DeleteBucket<br />Resource: arn:aws:s3:::amzn-s3-demo-bucket1<br />Context:  <br />    - aws:PrincipalTag/dept=123</pre>  | **No match** | 
| <pre>"StringEquals": {<br />    "aws:PrincipalTag/dept": "123"<br />}</pre>  |  <pre>Principal: AIDA123456789EXAMPLE<br />Action: s3:CreateBucket<br />Resource: arn:aws:s3:::amzn-s3-demo-bucket1<br />Context:  <br />    - aws:PrincipalTag/dept=321</pre>  | **No match** | 
| <pre>"StringEquals": {<br />    "aws:PrincipalTag/dept": "123"<br />}</pre>  |  <pre>Principal: AIDA123456789EXAMPLE<br />Action: s3:CreateBucket<br />Resource: arn:aws:s3:::amzn-s3-demo-bucket1<br />Context:</pre> No hay `aws:PrincipalTag` en la solicitud.  | **No match** | 

# Cómo la lógica del código de aplicación de AWS evalúa las solicitudes para permitir o denegar el acceso
<a name="reference_policies_evaluation-logic_policy-eval-denyallow"></a>

El código de aplicación de AWS decide si una solicitud que se envía a AWS debe autorizarse o denegarse. AWS evalúa todas las políticas que se aplican al contexto de la solicitud. A continuación, se proporciona un resumen de la lógica de evaluación de políticas de AWS:
+ De forma predeterminada, todas las solicitudes se deniegan de manera implícita a excepción de Usuario raíz de la cuenta de AWS, que tiene acceso completo.
+ Para que se admitan, las solicitudes deben estar permitidas explícitamente por una política o conjunto de políticas que sigan la lógica de evaluación que se indica a continuación.
+ Una denegación explícita invalida todos los permisos concedidos.

La evaluación de la política puede variar en función de si la solicitud se hace en una sola cuenta o en una solicitud entre cuentas. Para obtener detalles sobre cómo se toma una decisión de evaluación de políticas para un usuario o rol de IAM en una sola cuenta, consulte [Evaluación de políticas para solicitudes dentro de una misma cuenta](reference_policies_evaluation-logic_policy-eval-basics.md). Para obtener detalles sobre cómo se toma una decisión de evaluación de políticas para las solicitudes entre cuentas, consulte [Lógica de evaluación de políticas entre cuentas](reference_policies_evaluation-logic-cross-account.md).
+ **Denegar la evaluación** - De forma predeterminada, se deniegan todas las solicitudes. Esto se denomina [denegación implícita](reference_policies_evaluation-logic_AccessPolicyLanguage_Interplay.md). El código de aplicación del AWS evalúa todas las políticas de la cuenta aplicables a la solicitud. Esto incluye las SCP y RCP de AWS Organizations, las políticas basadas en recursos, las políticas basadas en identidad, los límites de permisos de IAM y las políticas de sesión. En todas estas políticas, el código de aplicación buscará una instrucción `Deny` que se aplique a la solicitud. Esto se denomina una [denegación explícita](reference_policies_evaluation-logic_AccessPolicyLanguage_Interplay.md). Si el código de aplicación encuentra una sola denegación explícita aplicable, devuelve como decisión final **Denegar**. Si no hay ninguna denegación explícita, la evaluación del código de aplicación continúa.
+ **RCP de AWS Organizations**: el código de aplicación evalúa las políticas de control de recursos de AWS Organizations que se aplican a la solicitud. Las RCP se aplican a los recursos de la cuenta a la que se adjuntan las RCP. Si el código de aplicación no encuentra ninguna instrucción `Allow` aplicable en las RCP, devuelve como decisión final **Denegar**. Tenga en cuenta que una política administrada de AWS llamada `RCPFullAWSAccess` se crea automáticamente y se adjunta a todas las entidades de su organización, incluida la raíz, cada OU y Cuenta de AWS cuando los RCP están habilitados. `RCPFullAWSAccess` no se puede separar, por lo que siempre habrá una instrucción de `Allow`. Si no hay ninguna RCP, o si la RCP permite la acción solicitada, la evaluación del código de aplicación continúa.
+ **SCP de AWS Organizations**: el código evalúa las políticas de control de servicio (SCP) de AWS Organizations que se aplican a la solicitud. Las SCP se aplican a las entidades principales de la cuenta a la que se asocian las SCP. Si el código de ejecución no encuentra ninguna instrucción `Allow` aplicable en las SCP, devuelve como decisión final **Denegar**. Si no hay ninguna SCP, o si la SCP permite la acción solicitada, la evaluación del código de aplicación continúa.
+ **Políticas basadas en recursos**: dentro de la misma cuenta, las políticas basadas en recursos tienen un impacto diferente en la evaluación de políticas según el tipo de entidad principal que acceda al recurso y que se permite en la política basada en recursos. Según el tipo de entidad principal, un `Allow` en una política basada en recursos puede dar lugar a una decisión final de `Allow`, incluso si existe una denegación implícita en una política basada en identidad, un límite de permisos o una política de sesión.

  Para la mayoría de los recursos, solo necesita un permiso explícito de `Allow` para la entidad principal en una política basada en identidades o en una política basada en recursos para conceder acceso. Las [políticas de confianza del rol de IAM](access_policies-cross-account-resource-access.md#access_policies-cross-account-delegating-resource-based-policies) y las [políticas de claves de KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) son excepciones a esta lógica, porque deben permitir explícitamente el acceso a [entidades principales](reference_policies_elements_principal.md). Las políticas basadas en recursos para servicios distintos que no sean IAM y AWS KMS también pueden requerir una instrucción `Allow` explícita en la misma cuenta para conceder el acceso. Para obtener más información, consulte la documentación del servicio específico con el que trabaja.

  Para las solicitudes de evaluación de políticas de una sola cuenta, la lógica de políticas basada en recursos difiere de otros tipos de políticas si la entidad principal especificada es un usuario de IAM, un rol de IAM o una entidad principal de sesión. Las entidades principales de sesión incluyen [sesiones de roles de IAM](reference_policies_elements_principal.md#principal-role-session) o [entidades principales de usuario federado de AWS STS](reference_policies_elements_principal.md#sts-session-principals). Si una política basada en recursos concede permiso directamente al usuario de IAM o a la entidad principal de sesión que realiza la solicitud, una denegación implícita en una política basada en identidad, un límite de permisos o una política de sesión no afecta a la decisión final.
  + **Rol de IAM**: las políticas basadas en recursos que otorgan permisos a un ARN de rol de IAM están limitadas por una denegación implícita en un límite de permisos o una política de sesión. Puede especificar el ARN del rol en el elemento de entidad principa o en la clave de condición `aws:PrincipalArn`. En ambos casos, la entidad principal que realiza la solicitud es la **sesión de rol de IAM**.

    Los límites de permisos y las políticas de sesión no limitan los permisos concedidos mediante la clave de condición `aws:PrincipalArn` con un comodín(\$1) en el elemento de entidad principal, a menos que las políticas basadas en identidad contengan una denegación explícita. Para obtener más información, consulte [Entidades principales de rol de IAM](reference_policies_elements_principal.md#principal-roles).

    **ARN de rol de ejemplo**

    ```
    arn:aws:iam::111122223333:role/examplerole
    ```
  + **Sesión de rol de IAM**: dentro de la misma cuenta, las políticas basadas en recursos que otorgan permisos a un ARN de sesión de rol de IAM otorgan permisos directamente a la sesión de rol asumida. Los permisos otorgados directamente a una sesión no están limitados por una denegación implícita en una política basada en la identidad, un límite de permisos ni una política de sesión. Cuando asume un rol y realiza una solicitud, la entidad principal que realiza la solicitud es el ARN de sesión de rol de IAM y no el ARN del rol en sí. Para obtener más información, consulte [Entidades principales de sesión de rol](reference_policies_elements_principal.md#principal-role-session).

    **Ejemplo ARN de sesión de rol**

    ```
    arn:aws:sts::111122223333:assumed-role/examplerole/examplerolesessionname
    ```
  + **Usuario de IAM**: dentro de la misma cuenta, las políticas basadas en recursos que otorgan permisos a un ARN de usuario de IAM (que no es una sesión de usuario federado) no están limitadas por una denegación implícita en una política basada en identidad o en un límite de permisos.

    **Ejemplo de ARN de usuario de IAM**

    ```
    arn:aws:iam::111122223333:user/exampleuser
    ```
  + **Entidad principal de usuario federado de AWS STS**: una sesión de usuario federado es una sesión creada mediante una llamada a [`GetFederationToken`](id_credentials_temp_request.md#api_getfederationtoken). Cuando un usuario federado realiza una solicitud, la entidad principal que realiza la solicitud es el ARN de usuario federado y no el ARN del usuario de IAM que se federó. En la misma cuenta, las políticas basadas en recursos que otorgan permisos a un ARN de usuario federado otorgan permisos directamente a la sesión. Los permisos otorgados directamente a una sesión no están limitados por una denegación implícita en una política basada en la identidad, un límite de permisos ni una política de sesión.

    Sin embargo, si una política basada en recursos concede permiso al ARN del usuario de IAM que se federó, las solicitudes realizadas por el usuario federado durante la sesión están limitadas por una denegación implícita en un límite de permisos o una política de sesión.

    **Ejemplo de ARN de sesión de usuario federado**

    ```
    arn:aws:sts::111122223333:federated-user/exampleuser
    ```
+ **Políticas basadas en identidad**: el código de aplicación comprueba las políticas basadas en la identidad de la entidad principal. En el caso de un usuario de IAM, se trata de las políticas del usuario y las políticas de los grupos a los que el usuario pertenece. Si no hay políticas ni instrucciones basadas en la identidad que permitan la acción solicitada, la solicitud se deniega implícitamente y el código de aplicación devuelve como decisión final **Denegar**. Si cualquier instrucción de cualquier política basada en identidad permite la acción solicitada, entonces la evaluación del código continúa.
+ **Límites de permisos de IAM**: el código de aplicación comprueba si la entidad de IAM utilizada por la entidad principal tiene un límite de permisos. Si la política empleada para establecer el límite de permisos no permite la acción solicitada, la solicitud se deniega implícitamente. El código devuelve como decisión final **Deny (Denegar)**. Si no hay ningún límite de permisos, o si el límite de permisos permite la acción solicitada, la evaluación del código continúa.
+ **Políticas de sesión**: el código comprueba si la entidad principal es una entidad principal de sesión. Las entidades principales de sesión incluyen una sesión de rol de IAM o una sesión de usuario federado de AWS STS. Si la entidad principal no es una entidad principal de sesión, el código de ejecución devuelve como decisión final **Permitir**.

  Para las entidades principales de sesión, el código de aplicación comprueba si se ha pasado una entidad principal de sesión en la solicitud. Puede transferir una política de sesión al usar la AWS CLI o la API de AWS para obtener credenciales temporales para un rol o una entidad principal de usuario federado de AWS STS. Si no ha pasado ninguna política de sesión, se crea una política de sesión predeterminada y el código de aplicación devuelve como decisión final **Permitir**.
  + Si existe una política de sesión y no permite la acción solicitada, la solicitud se deniega implícitamente. El código devuelve como decisión final **Deny (Denegar)**.
  + El código de aplicación comprueba si la entidad principal es una sesión de rol. Si la entidad principal es una sesión de rol, la solicitud se **permite**. De lo contrario, la solicitud se deniega implícitamente y el código de aplicación devuelve como decisión final **Denegar**.
  + Si una política de sesión está presente y permite la acción solicitada, entonces el código de aplicación devuelve una decisión final de **Allow**.

# Evaluación de políticas para solicitudes dentro de una misma cuenta
<a name="reference_policies_evaluation-logic_policy-eval-basics"></a>

## Evaluación de políticas para un rol de IAM
<a name="policy-eval-basics-single-account-role"></a>

En el siguiente diagrama de flujo se proporcionan detalles sobre cómo se toma una decisión de evaluación de políticas para un rol de IAM en una sola cuenta.

![\[Diagrama de flujo de evaluación para un rol de IAM en una sola cuenta\]](http://docs.aws.amazon.com/es_es/IAM/latest/UserGuide/images/PolicyEvaluationSingleAccountRole.png)


## Evaluación de políticas para un usuario de IAM
<a name="policy-eval-basics-single-account-user"></a>

En el siguiente diagrama de flujo se proporcionan detalles sobre cómo se toma una decisión de evaluación de políticas para un usuario de IAM en una sola cuenta.

![\[Diagrama de flujo de evaluación de un usuario de IAM en una sola cuenta\]](http://docs.aws.amazon.com/es_es/IAM/latest/UserGuide/images/PolicyevaluationSingleAccountUser.png)


## Ejemplo de evaluación de políticas basadas en identidad y políticas basadas en recursos
<a name="reference_policies_evaluation-logic_policies_evaluation_example"></a>

Los tipos de políticas más habituales son las políticas basadas en identidad y las políticas basadas en recursos. Cuando se solicita acceso a un recurso, AWS evalúa todos los permisos otorgados por las políticas para que haya **al menos un permiso** dentro de la misma cuenta. Una denegación explícita en cualquiera de las políticas anulará el permiso.

**importante**  
Si la política basada en identidad o la política basada en recursos de la misma cuenta permite la solicitud y la otra no, la solicitud aún está permitida.

Supongamos que Carlos tiene el nombre de usuario `carlossalazar` y que intenta guardar un archivo en el bucket de Amazon S3 `amzn-s3-demo-bucket-carlossalazar-logs`. 

Supongamos también que la política siguiente está asociada al usuario de IAM `carlossalazar`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowS3ListRead",
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketLocation",
                "s3:GetAccountPublicAccessBlock",
                "s3:ListAccessPoints",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "arn:aws:s3:::*"
        },
        {
            "Sid": "AllowS3Self",
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket-carlossalazar/*",
                "arn:aws:s3:::amzn-s3-demo-bucket-carlossalazar"
            ]
        },
        {
            "Sid": "DenyS3Logs",
            "Effect": "Deny",
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::*log*"
        }
    ]
}
```

------

La instrucción `AllowS3ListRead` de esta política permite a Carlos ver una lista de todos los buckets de la cuenta. La instrucción `AllowS3Self` concede a Carlos acceso completo al bucket que tiene el mismo nombre que su nombre de usuario. La instrucción `DenyS3Logs` deniega a Carlos el acceso a los buckets de S3 que contengan `log` en el nombre. 

Además, la siguiente política basada en recursos (denominada política de bucket) está asociada al bucket `amzn-s3-demo-bucket-carlossalazar`. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:user/carlossalazar"
            },
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket-carlossalazar/*",
                "arn:aws:s3:::amzn-s3-demo-bucket-carlossalazar"
            ]
        }
    ]
}
```

------

Esta política especifica que únicamente el usuario `carlossalazar` puede obtener acceso al bucket `amzn-s3-demo-bucket-carlossalazar`.

Cuando Carlos solicita guardar un archivo en el bucket `amzn-s3-demo-bucket-carlossalazar-logs`, AWS determina qué políticas se aplican a la solicitud. En este caso, solo se aplican la política basada en identidad y la política basada en recursos. Ambas son políticas de permisos. Debido a que no se aplica ningún límite de permisos, la lógica de evaluación se reduce a lo siguiente.

![\[Diagrama de evaluación\]](http://docs.aws.amazon.com/es_es/IAM/latest/UserGuide/images/EffectivePermissionsShort.png)


AWS comprueba en primer lugar si existe una instrucción `Deny` que se aplique al contexto de la solicitud. Encuentra una, ya que la política basada en identidad deniega explícitamente a Carlos el acceso a los buckets de S3 que se usan para el registro. A Carlos se le deniega el acceso. 

Supongamos que luego se da cuenta de su error e intenta guardar el archivo en el bucket `amzn-s3-demo-bucket-carlossalazar`. AWS comprueba si existe una instrucción `Deny` y no encuentra ninguna. A continuación, comprueba las políticas de permisos. Tanto la política basada en la identidad como la política basada en los recursos permiten la solicitud. Por lo tanto, AWS permite la solicitud. Si alguna de ellas denegase explícitamente la instrucción, la solicitud habría sido denegada. Si uno de los tipos de política permite la solicitud y el otro no, la solicitud sigue estando permitida.

# Lógica de evaluación de políticas entre cuentas
<a name="reference_policies_evaluation-logic-cross-account"></a>

Puede permitir que un principal de una cuenta acceda a los recursos de una segunda cuenta. Esto se denomina acceso entre cuentas. Cuando permite el acceso entre cuentas, la cuenta donde se encuentra el principal se denomina cuenta de *confianza*. La cuenta donde se encuentra el recurso es la cuenta de *confianza*. 

Para permitir el acceso entre cuentas, debe asociar una política basada en recursos al recurso que desea compartir. También debe asociar una política basada en identidad a la identidad que actúa como entidad principal en la solicitud. La política basada en recursos de la cuenta de confianza debe especificar la entidad principal de la cuenta de confianza que tendrá acceso al recurso. Puede especificar toda la cuenta o los usuarios de IAM, las entidades principales de usuario federado de AWS STS, los roles de IAM o las sesiones de rol asumido. También puede especificar un servicio de AWS como principal. Para obtener más información, consulte [Cómo especificar una entidad principal](reference_policies_elements_principal.md#Principal_specifying). 

La política basada en la identidad del principal debe permitir el acceso solicitado al recurso en el servicio de confianza. Para ello, puede especificar el ARN del recurso.

En IAM, puede asociar una política basada en recursos a un rol de IAM para permitir que los principales de otras cuentas asuman ese rol. La política basada en recursos del rol se denomina política de confianza de rol. Después de asumir ese rol, los principales permitidos pueden utilizar las credenciales temporales resultantes para acceder a varios recursos de la cuenta. Este acceso se define en la política de permisos basada en la identidad del rol. Para saber la diferencia entre permitir el acceso entre cuentas mediante roles y permitir el acceso entre cuentas mediante otras políticas basadas en recursos, consulte [Acceso a recursos entre cuentas en IAM](access_policies-cross-account-resource-access.md). 

**importante**  
Otros servicios pueden afectar a la lógica de evaluación de políticas. Por ejemplo, AWS Organizations admite [políticas de control de servicios](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) y [políticas de control de recursos](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html) que se pueden aplicar a entidades principales y recursos de una o varias cuentas. AWS Resource Access Manager admite [fragmentos de políticas](https://docs.aws.amazon.com/ram/latest/userguide/permissions.html) que controlan las acciones que las entidades principales pueden realizar en los recursos que se comparten con ellas.

## Determinación de si se permite una solicitud entre cuentas
<a name="policy-eval-cross-account"></a>

Para las solicitudes entre cuentas, el solicitante en la `AccountA` de confianza debe tener una política basada en la identidad. Dicha política debe permitirles hacer una solicitud al recurso en la de confianza `AccountB`. Además, la política basada en recursos en `AccountB` debe permitir al solicitante en `AccountA` obtener acceso al recurso.

Cuando realiza una solicitud entre cuentas, AWS realiza dos evaluaciones. AWS evalúa la solicitud en la cuenta de confianza y en la cuenta en que se confía. Para obtener más información acerca de cómo se evalúa una solicitud dentro de una sola cuenta, consulte [Cómo la lógica del código de aplicación de AWS evalúa las solicitudes para permitir o denegar el acceso](reference_policies_evaluation-logic_policy-eval-denyallow.md). La solicitud solo se permite si ambas evaluaciones devuelven una decisión de tipo `Allow`.

![\[Evaluación entre cuentas\]](http://docs.aws.amazon.com/es_es/IAM/latest/UserGuide/images/policy_cross-account-eval-simple.png)


1. Una solicitud entre cuentas es el proceso mediante el cual un principal de una cuenta realiza una solicitud para acceder a un recurso de otra cuenta.

1. El principal solicitante existe en la cuenta en la que se confía (`AccountA`). Cuando AWS evalúa esta cuenta, comprueba la política basada en la identidad y cualquier política que pueda limitar una política basada en la identidad. Para obtener más información, consulte [Evaluación de políticas basadas en identidad con límites de permisos](reference_policies_evaluation-logic.md#policy-eval-basics-id-bound).

1. El recurso solicitado existe en la cuenta de confianza (`AccountB`). Cuando AWS evalúa esta cuenta, comprueba la política basada en recursos que está asociada al recurso solicitado y cualquier política que pueda limitar una política basada en recursos. Para obtener más información, consulte [Evaluación de políticas basadas en identidad con políticas basadas en recursos](reference_policies_evaluation-logic.md#policy-eval-basics-id-rdp).

1. AWS permite la solicitud solo si ambas evaluaciones de políticas de cuenta permiten la solicitud.

En el siguiente diagrama de flujo se proporciona una ilustración más detallada de cómo se toma una decisión de evaluación de políticas para una solicitud entre cuentas. De nuevo, AWS permite la solicitud solo si ambas evaluaciones de políticas de cuenta permiten la solicitud.

![\[Evaluación de políticas entre cuentas detallada\]](http://docs.aws.amazon.com/es_es/IAM/latest/UserGuide/images/PolicyEvaluationCrossAccount.png)


## Ejemplo de evaluación de política entre cuentas
<a name="policies_evaluation_example-cross-account"></a>

En el ejemplo siguiente se muestra una situación en la que una política basada en recursos de una cuenta concede permisos a un rol de otra cuenta.

Supongamos que Carlos es un desarrollador con un rol de IAM denominado `Demo` en la cuenta 111111111111. Carlos quiere guardar un archivo en el bucket `amzn-s3-demo-bucket-production-logs` Amazon S3 de la cuenta 222222222222. 

Supongamos también que la política siguiente está asociada al rol de IAM `Demo`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowS3ListRead",
            "Effect": "Allow",
            "Action": "s3:ListAllMyBuckets",
            "Resource": "*"
        },
        {
            "Sid": "AllowS3ProductionObjectActions",
            "Effect": "Allow",
            "Action": "s3:*Object*",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket-production/*"
        },
        {
            "Sid": "DenyS3Logs",
            "Effect": "Deny",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::*log*",
                "arn:aws:s3:::*log*/*"
            ]
        }
    ]
}
```

------

La instrucción `AllowS3ListRead` de esta política permite a Carlos ver una lista de todos los buckets de Amazon S3. La instrucción `AllowS3ProductionObjectActions` concede a Carlos acceso completo al bucket `amzn-s3-demo-bucket-production`.

Además, la siguiente política basada en recursos (denominada política de bucket) está asociada al bucket `amzn-s3-demo-bucket-production` de la cuenta 222222222222. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject*",
                "s3:PutObject*",
                "s3:ReplicateObject",
                "s3:RestoreObject"
            ],
            "Principal": { "AWS": "arn:aws:iam::111111111111:role/Demo" },
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket-production/*"
        }
    ]
}
```

------

Esta política permite al rol `Demo` obtener acceso a los objetos del bucket `amzn-s3-demo-bucket-production`. El rol puede crear y editar, pero no eliminar los objetos del bucket. El rol no puede administrar el propio bucket.

Cuando Carlos solicita guardar un archivo en el bucket `amzn-s3-demo-bucket-production-logs`, AWS determina qué políticas se aplican a la solicitud. En este caso, la política basada en la identidad asociada al rol de `Demo` es la única política que se aplica en la cuenta `111111111111`. En la cuenta `222222222222`, no hay ninguna política basada en recursos asociada al bucket `amzn-s3-demo-bucket-production-logs`. Cuando AWS evalúa la cuenta `111111111111`, devuelve una decisión de tipo `Deny`. Esto se debe a que la instrucción `DenyS3Logs` de la política basada en la identidad deniega explícitamente el acceso a cualquier bucket de registro. Para obtener más información acerca de cómo se evalúa una solicitud dentro de una sola cuenta, consulte [Cómo la lógica del código de aplicación de AWS evalúa las solicitudes para permitir o denegar el acceso](reference_policies_evaluation-logic_policy-eval-denyallow.md).

Dado que la solicitud se deniega explícitamente dentro de una de las cuentas, la decisión final es denegar la solicitud.

![\[Solicitud al bucket amzn-s3-demo-bucket-production-logs\]](http://docs.aws.amazon.com/es_es/IAM/latest/UserGuide/images/policy_cross-account-eval-example.png)


Supongamos que Carlos se da cuenta de su error e intenta guardar el archivo en el bucket `Production`. AWS primero comprueba la cuenta `111111111111` para determinar si la solicitud está permitida. Solo se aplica la política basada en la identidad, que permite la solicitud. A continuación, AWS comprueba la cuenta `222222222222`. Solo se aplica la política basada en recursos asociada al bucket `Production`, que permite la solicitud. Dado que ambas cuentas permiten la solicitud, la decisión final es permitir la solicitud.

![\[Solicitud al bucket Production\]](http://docs.aws.amazon.com/es_es/IAM/latest/UserGuide/images/policy_cross-account-eval-example-correct.png)


# Diferencia entre denegaciones implícitas y explícitas
<a name="reference_policies_evaluation-logic_AccessPolicyLanguage_Interplay"></a>

Una solicitud da como resultado una denegación explícita si una política aplicable incluye una instrucción `Deny`. Si las políticas que se aplican a una solicitud incluyen una instrucción `Allow` y una instrucción `Deny`, la instrucción `Deny` prevalece sobre la instrucción `Allow`. La solicitud se deniega explícitamente.

Una denegación implícita se produce cuando no hay instrucciones `Deny` ni `Allow` aplicables. Dado que a los usuarios, roles o usuarios federados de IAM se les deniega el acceso de forma predeterminada, se les debe permitir explícitamente realizar una acción. De lo contrario, se les deniega implícitamente el acceso.

Al diseñar su estrategia de autorización, debe crear políticas con instrucciones `Allow` que permitan a las entidades principales realizar solicitudes sin problemas. Sin embargo, puede elegir cualquier combinación de denegaciones implícitas y explícitas. 

Por ejemplo, puede crear la siguiente política que incluye acciones permitidas, acciones denegadas implícitamente y acciones denegadas explícitamente. La declaración `AllowGetList` **permite** acceso de solo lectura a acciones de IAM que empiezan por los prefijos `Get` y `List`. Todas las demás acciones de IAM, como `iam:CreatePolicy` se **deniegan implícitamente**. La declaración `DenyReports` **deniega explícitamente** el acceso a los informes de IAM al denegar el acceso a acciones que incluyen el sufijo `Report`, como `iam:GetOrganizationsAccessReport`. Si alguien agrega otra política a esta entidad principal para otorgarle acceso a los informes de IAM, como `iam:GenerateCredentialReport`, las solicitudes relacionadas con informes se siguen denegando debido a esta denegación explícita.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowGetList",
            "Effect": "Allow",
            "Action": [
                "iam:Get*",
                "iam:List*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "DenyReports",
            "Effect": "Deny",
            "Action": "iam:*Report",
            "Resource": "*"
        }
    ]
}
```

------

# Gramática del lenguaje de la política JSON de IAM
<a name="reference_policies_grammar"></a>

En esta página se presenta una gramática formal del lenguaje que se utiliza para crear políticas JSON en IAM. Presentamos esta gramática para que pueda comprender cómo diseñar y validar políticas.

Para ver políticas de ejemplo, consulte los siguientes temas:
+ [Políticas y permisos en AWS Identity and Access Management](access_policies.md)
+ [Ejemplos de políticas basadas en identidad de IAM](access_policies_examples.md)
+ [Políticas de ejemplo para trabajar en la consola de Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-policies-ec2-console.html) y [políticas de ejemplo para trabajar con la CLI de AWS, la CLI de Amazon EC2 o un AWS SDK](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ExamplePolicies_EC2.html) en la *Guía del usuario de Amazon EC2*. 
+  [Ejemplos de política de bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html) y [Ejemplos de políticas de usuario](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-policies-s3.html) en la *Guía del usuario de Amazon Simple Storage Service*. 

Para ver ejemplos de políticas utilizadas en otros servicios de AWS, consulte la documentación de dichos servicios.

**Topics**
+ [El lenguaje de la política y JSON](#policies-grammar-json)
+ [Convenciones utilizadas en esta gramática](#policies-grammar-conventions)
+ [Gramática](#policies-grammar-bnf)
+ [Notas sobre la gramática de la política](#policies-grammar-notes)

## El lenguaje de la política y JSON
<a name="policies-grammar-json"></a>

Las políticas se expresan en JSON. Cuando usted crea o edita una política JSON, IAM puede realizar la validación de políticas para ayudarle a crear una política eficaz. IAM identifica errores de sintaxis JSON, mientras que Analizador de acceso de IAM proporciona verificaciones de políticas adicionales con recomendaciones para poder perfeccionar aún más las políticas. Para obtener más información acerca la validación de políticas, consulte [Validación de la política de IAM](access_policies_policy-validator.md). Para obtener más información acerca de las verificaciones de políticas de IAM Access Analyzer y las recomendaciones procesables, consulte [Validación de políticas de IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html). 

En este documento, no podemos proporcionar una descripción completa de lo que constituye un código JSON válido. Sin embargo, presentamos algunas reglas de JSON básicas:
+ Se permiten espacios en blanco entre entidades individuales.
+ Los valores se encierran entre comillas. El uso de las comillas es opcional para los valores numéricos y booleanos.
+ Muchos elementos (por ejemplo, `action_string_list` y `resource_string_list`) pueden utilizar una matriz JSON como valor. Las matrices pueden tener uno o varios valores. Si se incluye más de un valor, la matriz se encierra entre corchetes (`[` y `]`) y los valores se delimitan con comas, como en el siguiente ejemplo: 

  `"Action" : ["ec2:Describe*","ec2:List*"]`
+ Los tipos de datos JSON básicos (booleanos, número y cadena) se definen en [RFC 7159](https://datatracker.ietf.org/doc/html/rfc7159).

## Convenciones utilizadas en esta gramática
<a name="policies-grammar-conventions"></a>

En esta gramática se utilizan las siguientes convenciones:
+ Los siguientes caracteres son tokens de JSON y *se* incluyen en las políticas:

  `{ } [ ] " , :`
+ Los siguientes caracteres son caracteres especiales de la gramática y *no* se incluyen en las políticas: 

  `= < > ( ) |`
+ Si un elemento permite varios valores, se indicará mediante valores repetidos, un delimitador por comas y puntos suspensivos (`...`). Ejemplos:

  `[<action_string>, <action_string>, ...]`

  `<principal_map> = { <principal_map_entry>, <principal_map_entry>, ... }`

  Si se permiten múltiples valores, también se podrá incluir un solo valor. En el caso de un solo valor, se omite la coma final. Si el elemento tiene una matriz (marcada con [ y ]), pero solo incluye un valor, los paréntesis son opcionales. Ejemplos:

  `"Action": [<action_string>]`

  `"Action": <action_string>`
+ Un signo de interrogación (`?`) detrás de un elemento indica que dicho elemento es opcional. Ejemplo: 

  <`version_block?>`

  Sin embargo, consulte las notas relativas a la gramática que se muestran a continuación para obtener más información acerca de los elementos opcionales. 
+ Una línea vertical (`|`) entre elementos indica alternativas. En la gramática, los paréntesis definen el alcance de las alternativas. Ejemplo:

  `("Principal" | "NotPrincipal")` 
+ Los elementos que deben ser cadenas literales se encierran entre comillas dobles (`"`). Ejemplo:

  `<version_block> = "Version" : ("2008-10-17" | "2012-10-17" )`

Para notas adicionales, consulte la sección [Notas sobre la gramática de la política](#policies-grammar-notes) que se presenta tras la descripción de la gramática.

## Gramática
<a name="policies-grammar-bnf"></a>

En la siguiente lista se describe la gramática del lenguaje de la política. Para obtener más información sobre las convenciones utilizada aquí, consulte la sección anterior. Para obtener información adicional, consulte las siguientes notas.

**nota**  
Esta gramática describe las políticas marcadas con una versión del `2008-10-17 ` y `2012-10-17 `. El elemento de política `Version` es diferente de la versión de una política. El elemento de política `Version` se utiliza en una política y define la versión del lenguaje de la política. Una versión de política, por otro lado, se crea al realizar cambios en una política administrada por el cliente en IAM. La política modificada no anula la política existente. En cambio, IAM crea una nueva versión de la política administrada. Para obtener más información sobre el elemento de política `Version`, consulte [Elementos de política JSON de IAM: Version](reference_policies_elements_version.md). Para obtener más información sobre las versiones de política, consulte [Control de versiones de políticas de IAM](access_policies_managed-versioning.md).

```
policy  = {
     <version_block?>,
     <id_block?>,
     <statement_block>
}

<version_block> = "Version" : ("2008-10-17"		 	 	  | "2012-10-17"		 	 	 )

<id_block> = "Id" : <policy_id_string>

<statement_block> = "Statement" : [ <statement>, <statement>, ... ]

<statement> = { 
    <sid_block?>,
    <principal_block?>,
    <effect_block>,
    <action_block>,
    <resource_block>,
    <condition_block?>
}

<sid_block> = "Sid" : <sid_string>

<effect_block> = "Effect" : ("Allow" | "Deny")  

<principal_block> = ("Principal" | "NotPrincipal") : ("*" | <principal_map>)

<principal_map> = { <principal_map_entry>, <principal_map_entry>, ... }

<principal_map_entry> = ("AWS" | "Federated" | "Service" | "CanonicalUser") :   
    [<principal_id_string>, <principal_id_string>, ...]

<action_block> = ("Action" | "NotAction") : 
    ("*" | <action_string> | [<action_string>, <action_string>, ...])

<resource_block> = ("Resource" | "NotResource") : 
    : ("*" | <resource_string> | [<resource_string>, <resource_string>, ...])

<condition_block> = "Condition" : { <condition_map> }
<condition_map> = { 
  <condition_type_string> : { <condition_key_string> : <condition_value_list> },
  <condition_type_string> : { <condition_key_string> : <condition_value_list> }, ...
}  
<condition_value_list> = [<condition_value>, <condition_value>, ...]
<condition_value> = (<condition_value_string> | <condition_value_string> | <condition_value_string>)
```

## Notas sobre la gramática de la política
<a name="policies-grammar-notes"></a>
+ Una única política puede contener una matriz de instrucciones.
+ Las políticas tienen un tamaño máximo de entre 2 048 caracteres y 10 240 caracteres, dependiendo de a qué entidad está asociada la política. Para obtener más información, consulte [IAM y cuotas de AWS STS](reference_iam-quotas.md). Los cálculos del tamaño de la política no incluyen los espacios en blanco.
+ Los elementos individuales no deben contener varias instancias de la misma clave. Por ejemplo, no puede incluir el bloque `Effect` dos veces en la misma instrucción. 
+ Los bloques pueden seguir cualquier orden. Por ejemplo, `version_block` puede ir detrás de `id_block` en una política. Del mismo modo, `effect_block`, `principal_block` y `action_block` pueden aparecer en cualquier orden dentro de una instrucción.
+ El `id_block` es opcional en políticas basadas en recursos. *No* debe incluirse en políticas basadas en la identidad.
+ El elemento `principal_block` es necesario en las políticas basadas en recursos (por ejemplo, en las políticas de bucket de Amazon S3) y en las políticas de confianza para los roles de IAM. *No* debe incluirse en políticas basadas en la identidad.
+ El elemento `principal_map` de las políticas de bucket de Amazon S3 puede incluir el ID `CanonicalUser`. La mayoría de las políticas basadas en recursos no admiten este mapeo. Para obtener más información sobre el uso del ID de usuario canónico en una política de bucket, consulte [Especificación de una entidad principal en una política](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-bucket-user-policy-specifying-principal-intro.html) en la *Guía del usuario de Amazon Simple Storage Service*.
+ Cada valor de cadena (`policy_id_string`, `sid_string`, `principal_id_string`, `action_string`, `resource_string`, `condition_type_string`, `condition_key_string` y la versión de cadena de `condition_value`) puede tener sus propias restricciones de longitud mínima y máxima, permitir unos valores específicos o exigir un formato interno.

### Notas acerca de los valores de cadena
<a name="policies-grammar-notes-strings"></a>

En esta sección se proporciona información adicional sobre los valores de cadena que se utilizan en diferentes elementos de una política.

**`action_string`**  
Consta de un espacio de nombres del servicio, dos puntos y el nombre de una acción. Los nombres de acción pueden incluir comodines. Ejemplos:  

```
"Action":"ec2:StartInstances"

"Action":[
  "ec2:StartInstances",
  "ec2:StopInstances"
]

"Action":"cloudformation:*"

"Action":"*"

"Action":[
  "s3:Get*",
  "s3:List*"
]
```

**`policy_id_string`**  
Ofrece una forma de incluir información acerca de la política como conjunto. Algunos servicios, como Amazon SQS y Amazon SNS, utilizan el elemento `Id` como reserva. A menos que lo limite un servicio individual, policy\$1id\$1string puede incluir espacios. Algunos servicios requieren este valor para ser exclusivos dentro de una cuenta de AWS.   
El `id_block` está permitido en políticas basadas en recursos, pero no en políticas basadas en la identidad.
No existe ningún límite respecto a la longitud, aunque esta cadena contribuye a la longitud total de la política, que está limitada.   

```
"Id":"Admin_Policy"

"Id":"cd3ad3d9-2776-4ef1-a904-4c229d1642ee"
```

**`sid_string`**  
Ofrece una forma de incluir información acerca de una instrucción individual. Para las políticas de IAM, los caracteres alfanuméricos básicos (A-Z, a-z, 0-9) son los únicos caracteres permitidos en el valor `Sid`. Otros servicios de AWS que admiten las políticas de recursos pueden tener otros requisitos para el valor `Sid`. Por ejemplo, algunos servicios requieren este valor para ser únicos dentro de una Cuenta de AWS y algunos servicios permiten caracteres adicionales como espacios en el valor `Sid`.  

```
"Sid":"1" 

"Sid": "ThisStatementProvidesPermissionsForConsoleAccess"
```

**`principal_id_string`**  
Proporciona una forma de especificar una entidad principal utilizando el [*Nombre de recurso de Amazon* (ARN)](reference_identifiers.md#identifiers-arns) de la Cuenta de AWS, el usuario de IAM, el rol de IAM, el usuario federado o el usuario del rol asumido. Si se trata de una Cuenta de AWS, también puede utilizar el formulario abreviado `AWS:accountnumber` en lugar de todo el ARN. Para todas las opciones, incluidos los servicios de AWS, los roles asumidos, etc., consulte [Cómo especificar una entidad principal](reference_policies_elements_principal.md#Principal_specifying).  
Tenga en cuenta que puede utilizar \$1 solo para especificar "todo el mundo/anónimo". No puede utilizarlo para especificar parte de un nombre o ARN.

**`resource_string`**  
En la mayoría de los casos, se compone de un [Nombre de recurso de Amazon](reference_identifiers.md#identifiers-arns) (ARN). Puede utilizar comodines (\$1 y ?) en la porción de recursos del ARN. Para obtener más información acerca de cómo utilizar los comodines en loas ARN, consulte [Uso de caracteres comodines en rutas](reference-arns.md#arns-paths-wildcards).  
Cuando se especifica un ARN incompleto (uno con menos de los seis campos estándar) en una política basada en la identidad, AWS completa automáticamente el ARN mediante el agregado de caracteres comodín (\$1) a todos los campos que faltan. Por ejemplo, especificar que `arn:aws:sqs` es equivalente a `arn:aws:sqs:*:*:*`, lo que otorga acceso a todos los recursos de Amazon SQS en todas las regiones y cuentas.

```
"Resource":"arn:aws:iam::123456789012:user/Bob"

"Resource":"arn:aws:s3:::amzn-s3-demo-bucket/*"
```

**`condition_type_string`**  
Identifica el tipo de condición de prueba, como por ejemplo `StringEquals`, `StringLike`, `NumericLessThan`, `DateGreaterThanEquals`, `Bool`, `BinaryEquals`, `IpAddress`, `ArnEquals`, etc. Para obtener una lista completa de los tipos de condición, consulte [Elementos de la política de JSON de IAM: operadores de condición](reference_policies_elements_condition_operators.md).   

```
"Condition": {
  "NumericLessThanEquals": {
    "s3:max-keys": "10"
  }
}

"Condition": {
  "Bool": {
    "aws:SecureTransport": "true"
  }
}

"Condition": {
  "StringEquals": {
      "s3:x-amz-server-side-encryption": "AES256"
   }
}
```

**`condition_key_string`**  
Identifica la clave de condición cuyo valor se prueba para determinar si se cumple la condición. AWS define un conjunto de claves de condición que están disponibles en servicios de AWS, incluyendo `aws:PrincipalType`, `aws:SecureTransport`, y `aws:userid`.  
Para obtener una lista de las claves de condición de AWS, consulte [Claves de contexto de condición globales de AWS](reference_policies_condition-keys.md). Para conocer las claves de condición que son específicas de un servicio, consulte la documentación correspondiente a dicho servicio, por ejemplo:  
+ [Especificación de las condiciones de una política](https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazon-s3-policy-keys.html) en la *Guía del usuario de Amazon Simple Storage Service*
+ [Políticas de IAM para Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-policies-for-amazon-ec2.html) en la *Guía del usuario de Amazon EC2*.

```
"Condition":{
  "Bool": {
      "aws:SecureTransport": "true"
   }
}

"Condition": {
  "StringNotEquals": {
      "s3:x-amz-server-side-encryption": "AES256"
   }
}

"Condition": {
  "StringEquals": {
    "aws:ResourceTag/purpose": "test"
  }
}
```

**`condition_value_string`**  
Identifica el valor de la cadena condition\$1key\$1string que determina si se cumple la condición. Para obtener una lista completa de los valores válidos para un tipo de condición, consulte [Elementos de la política de JSON de IAM: operadores de condición](reference_policies_elements_condition_operators.md).  

```
"Condition":{
  "ForAnyValue:StringEquals": {
		"dynamodb:Attributes": [
			"ID",
			"PostDateTime"
  	      ]
  }
}
```

# AWSPolíticas administradas de para funciones de trabajo
<a name="access_policies_job-functions"></a>

Recomendamos utilizar políticas que [otorguen el menor privilegio](best-practices.md#grant-least-privilege), o que concedan solo los permisos necesarios para realizar una tarea. La forma más segura de conceder menos privilegios es escribir una política personalizada que tenga solamente los permisos necesarios para su equipo. Debe crear un proceso para permitir que su equipo solicite más permisos cuando sea necesario. Se necesita tiempo y experiencia para [crear políticas administradas por el cliente de IAM](access_policies_create-console.md) que proporcionen a su equipo solo los permisos necesarios.

Para comenzar a agregar permisos a sus identidades de IAM (usuarios, grupos de usuarios y roles), puede utilizar [AWSPolíticas administradas por](access_policies_managed-vs-inline.md#aws-managed-policies). Las políticas administradas de AWS cubren casos de uso comunes y están disponibles en su cuenta de Cuenta de AWS. Las políticas administradas de AWS no otorgan permisos de privilegios mínimos. Considere el riesgo de seguridad de conceder a sus entidades principales más permisos de los que necesitan para realizar su trabajo.

Puede adjuntar políticas administradas de AWS, incluidas las funciones de trabajo, a cualquier identidad de IAM. Para cambiar a permisos de privilegios mínimos, puede ejecutar AWS Identity and Access Management y Access Analyzer para supervisar las entidades principales con las políticas administradas de AWS. Después de saber qué permisos están utilizando, puede escribir una política personalizada o generar una política con solo los permisos necesarios para su equipo. Esto es menos seguro, pero proporciona más flexibilidad a medida que aprende cómo usa su equipo AWS.

AWSLas políticas administradas por de funciones se han creado para estar en consonancia con las funciones comunes del sector de TI. Puede utilizar estas políticas para conceder los permisos necesarios para realizar las tareas que se esperan de alguien en una determinada función. Estas políticas agrupan permisos para numerosos servicios en una única política, lo que facilita el trabajo, ya que los permisos no están diseminados en varias políticas.

**Uso de roles para combinar servicios**  
Algunas de las políticas utilizan los roles de servicio de IAM para sacar partido de las características de otros servicios de AWS. Estas políticas conceden acceso a `iam:passrole`, que permite a un usuario con la política transmitir un rol a un servicio de AWS. Este rol delega los permisos de IAM al servicio de AWS para llevar a cabo acciones en su nombre.

Debe crear los roles en función de sus necesidades. Por ejemplo, la política de administrador de red permite a un usuario con la política transmitir un rol denominado "flow-logs-vpc" al servicio de Amazon CloudWatch. CloudWatch utiliza dicho rol para registrar y capturar el tráfico IP de las VPC creadas por el usuario.

Para seguir las prácticas recomendadas de seguridad, las políticas de funciones incluyen filtros que limitan los nombres de roles válidos que pueden transmitirse. Esto evita la concesión de permisos innecesarios. Si los usuarios necesitan los roles de servicio opcionales, debe crear un rol que utilice la convención de nomenclatura especificada en la política. A continuación, conceda los permisos al rol. A continuación, el usuario podrá configurar el servicio para utilizar el rol, concediéndole cualquier permiso que el rol proporcione.

En las secciones siguientes, cada nombre de política es un enlace a la página de detalles de la política en la Consola de administración de AWS. Ahí puede ver el documento de la política y revisar los permisos que concede.

## Función de trabajo de administrador
<a name="jf_administrator"></a>

**Nombre de la política administrada por AWS:** [AdministratorAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AdministratorAccess)

**Caso de uso:** este usuario tiene acceso completo y puede delegar permisos a cada servicio y recurso de AWS.

**Actualizaciones de políticas:** AWS mantiene y actualiza esta política. Para obtener un historial de cambios para esta política, consulte la política en la consola de IAM y, a continuación, elija la pestaña **Versiones de políticas**. Para obtener más información acerca de las políticas de funciones de trabajo, consulte [Actualizaciones de políticas administradas de AWS para funciones de trabajo](#security-iam-awsmanpol-jobfunction-updates).

**Descripción de la política:** esta política concede permisos para todas las acciones de todos los servicios de AWS y todos los recursos de la cuenta. Para obtener más información sobre la política administrada, consulte [AdministratorAccess](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/AdministratorAccess.html) en la *AWS Guía de referencia de políticas administradas*.

**nota**  
Antes de que un usuario o rol de IAM pueda acceder a la consola de Administración de facturación y costos de AWS con los permisos de esta política, debe activar antes el acceso de usuarios y roles de IAM. Para ello, siga las instrucciones que se indican en [Conceder acceso a la consola de facturación](getting-started-account-iam.md) a fin de delegar el acceso a la consola de facturación.

## Función de facturación de trabajo
<a name="jf_accounts-payable"></a>

**Nombre de la política administrada por AWS:** [Billing](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/Billing)

**Caso de uso:** este usuario necesita ver la información de facturación, configurar un pago y autorizarlo. El usuario puede monitorizar los costos acumulados de cada servicio de AWS.

**Actualizaciones de políticas:** AWS mantiene y actualiza esta política. Para obtener un historial de cambios para esta política, consulte la política en la consola de IAM y, a continuación, elija la pestaña **Versiones de políticas**. Para obtener más información acerca de las políticas de funciones de trabajo, consulte [Actualizaciones de políticas administradas de AWS para funciones de trabajo](#security-iam-awsmanpol-jobfunction-updates).

**Descripción de la política:** esta política concede permisos completos para administrar la facturación, los costos, los métodos de pago, los presupuestos y los informes. Para ver otros ejemplos de políticas de administración de costes, consulte los [ejemplos de políticas de AWS Billing](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-example-policies.html) en la *Guía del usuario de Administración de facturación y costos de AWS*. Para obtener más información sobre las políticas administradas, consulte [Facturación](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/Billing.html) en la *Guía de referencia de políticas administradas de AWS*.

**nota**  
Antes de que un usuario o rol de IAM pueda acceder a la consola de Administración de facturación y costos de AWS con los permisos de esta política, debe activar antes el acceso de usuarios y roles de IAM. Para ello, siga las instrucciones que se indican en [Conceder acceso a la consola de facturación](getting-started-account-iam.md) a fin de delegar el acceso a la consola de facturación.

## Función de trabajo de administrador de base de datos
<a name="jf_database-administrator"></a>

**Nombre de política administrada por AWS:** [DatabaseAdministrator](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/DatabaseAdministrator)

**Caso de uso:** este usuario configura y mantiene las bases de datos de la nube de AWS.

**Actualizaciones de políticas:** AWS mantiene y actualiza esta política. Para obtener un historial de cambios para esta política, consulte la política en la consola de IAM y, a continuación, elija la pestaña **Versiones de políticas**. Para obtener más información acerca de las políticas de funciones de trabajo, consulte [Actualizaciones de políticas administradas de AWS para funciones de trabajo](#security-iam-awsmanpol-jobfunction-updates).

**Descripción de la política:** esta política concede permisos para crear, configurar y mantener bases de datos. Incluye acceso a servicios de base de datos AWS, como Amazon DynamoDB, Amazon Relational Database Service (RDS) y Amazon Redshift. Vea la política para conocer la lista completa de servicios de base de datos que admite. Para obtener más información sobre la política gestionada, consulte [DatabaseAdministrator](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/DatabaseAdministrator.html) en la *Guía de referencia de políticas gestionadas AWS*.

Esta política de función de trabajo permite transmitir roles a los servicios de AWS. Esta política permite la acción `iam:PassRole` únicamente para los roles indicados en la siguiente tabla. Para obtener más información, consulte [Creación de roles y asociación de políticas (consola)](access_policies_job-functions_create-policies.md) más adelante en este tema.


| Caso de uso | Nombre de rol (\$1 es un carácter comodín) | Tipo de rol de servicio que ha de seleccionarse | Seleccionar esta política administrada por AWS | 
| --- | --- | --- | --- | 
| Permitir al usuario que monitorice las bases de datos de RDS | [rds-monitoring-role](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html) | Rol de Amazon RDS para un monitoreo mejorado | [AmazonRDSEnhancedMonitoringRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonRDSEnhancedMonitoringRole) | 
| Permitir que AWS Lambda monitorice la base de datos y obtenga acceso a las bases de datos externas | [rdbms-lambda-access](https://aws.amazon.com/blogs/big-data/from-sql-to-microservices-integrating-aws-lambda-with-relational-databases) | Amazon EC2 | [AWSLambda\$1FullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSLambda_FullAccess) | 
| Permitir a Lambda cargar archivos en Amazon S3 y en clústeres de Amazon Redshift con DynamoDB | [lambda\$1exec\$1role](https://aws.amazon.com/blogs/big-data/a-zero-administration-amazon-redshift-database-loader) | AWS Lambda | Crear una nueva política administrada, tal y como se define en el [blog de big data de AWS](https://aws.amazon.com/blogs/big-data/a-zero-administration-amazon-redshift-database-loader) | 
| Permitir que las funciones de Lambda actúen como activadores de las tablas de DynamoDB | [lambda-dynamodb-\$1](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html) | AWS Lambda | [AWSLambdaDynamoDBExecutionRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSLambdaDynamoDBExecutionRole) | 
| Permitir que las funciones de Lambda obtengan acceso a Amazon RDS en una VPC | [lambda-vpc-execution-role](https://docs.aws.amazon.com/lambda/latest/dg/vpc-rds.html) | Crear un rol con una política de confianza, tal y como se define en la [Guía del desarrollador de AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/vpc-rds.html) | [AWSLambdaVPCAccessExecutionRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole) | 
| Permitir que AWS Data Pipeline obtenga acceso a los recursos de AWS | [DataPipelineDefaultRole](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | Crear un rol con una política de confianza, tal y como se define en la [Guía del desarrollador de AWS Data Pipeline](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | La documentación AWS Data Pipeline enumera los permisos necesarios para este caso de uso. Consulte [Roles de IAM para AWS Data Pipeline](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | 
| Permitir que las aplicaciones que se ejecuten en instancias Amazon EC2 obtengan acceso a los recursos de AWS | [DataPipelineDefaultResourceRole](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | Crear un rol con una política de confianza, tal y como se define en la [Guía del desarrollador de AWS Data Pipeline](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | [AmazonEC2RoleforDataPipelineRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonEC2RoleforDataPipelineRole) | 

## Función del trabajo de científico de datos
<a name="jf_data-scientist"></a>

**Nombre de la política administrada por AWS:** [DataScientist](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/DataScientist)

**Caso de uso:** este usuario ejecuta consultas y trabajos de Hadoop. El usuario también obtiene acceso a la información y la analiza para las tareas de análisis de datos e inteligencia empresarial.

**Actualizaciones de políticas:** AWS mantiene y actualiza esta política. Para obtener un historial de cambios para esta política, consulte la política en la consola de IAM y, a continuación, elija la pestaña **Versiones de políticas**. Para obtener más información acerca de las políticas de funciones de trabajo, consulte [Actualizaciones de políticas administradas de AWS para funciones de trabajo](#security-iam-awsmanpol-jobfunction-updates).

**Descripción de la política:** esta política concede permisos para crear, administrar y ejecutar consultas en un clúster de Amazon EMR y realizar análisis de datos con herramientas tales como Amazon QuickSight. La política incluye el acceso a servicios de científicos de datos adicionales, como AWS Data Pipeline, Amazon EC2, Amazon Kinesis, Amazon Machine Learning y SageMaker AI. Vea la política para conocer la lista completa de servicios científicos de datos que admite. Para obtener más información sobre la política administrada, consulte [DataScientist](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/DataScientist.html) en *Guía de referencia de políticas AWS administradas*.

Esta política de función de trabajo permite transmitir roles a los servicios de AWS. Una instrucción permite pasar cualquier rol a SageMaker AI. Otra instrucción permite la acción `iam:PassRole` únicamente para los roles indicados en la siguiente tabla. Para obtener más información, consulte [Creación de roles y asociación de políticas (consola)](access_policies_job-functions_create-policies.md) más adelante en este tema.


| Caso de uso | Nombre de rol (\$1 es un carácter comodín) | Tipo de rol de servicio que ha de seleccionarse | AWSPolítica administrada por que ha de seleccionarse | 
| --- | --- | --- | --- | 
| Permitir que las instancias de Amazon EC2 obtengan acceso a servicios y recursos adecuados para clústeres | [EMR-EC2\$1DefaultRole](https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-iam-roles-defaultroles.html) | Amazon EMR para EC2  | [AmazonElasticMapReduceforEC2Role](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonElasticMapReduceforEC2Role) | 
| Permitir que Amazon EMR obtenga acceso a los servicios y recursos de Amazon EC2 para clústeres | [EMR\$1DefaultRole](https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-iam-roles-defaultroles.html) | Amazon EMR | [AmazonEMRServicePolicy\$1v2](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonEMRServicePolicy_v2) | 
| Permita que Kinesis Managed Service for Apache Flink acceda a los orígenes de datos de streaming | [kinesis-\$1](https://aws.amazon.com/blogs/big-data/a-zero-administration-amazon-redshift-database-loader) | Crear un rol con una política de confianza, tal y como se define en el [blog de big data de AWS](https://aws.amazon.com/blogs/big-data/a-zero-administration-amazon-redshift-database-loader). | Consulte el [blog de big data de AWS](https://aws.amazon.com/blogs/big-data/a-zero-administration-amazon-redshift-database-loader), que define cuatro posibles opciones en función de su caso de uso | 
| Permitir que AWS Data Pipeline obtenga acceso a los recursos de AWS | [DataPipelineDefaultRole](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | Crear un rol con una política de confianza, tal y como se define en la [Guía del desarrollador de AWS Data Pipeline](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | La documentación AWS Data Pipeline enumera los permisos necesarios para este caso de uso. Consulte [Roles de IAM para AWS Data Pipeline](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | 
| Permitir que las aplicaciones que se ejecuten en instancias Amazon EC2 obtengan acceso a los recursos de AWS | [DataPipelineDefaultResourceRole](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | Crear un rol con una política de confianza, tal y como se define en la [Guía del desarrollador de AWS Data Pipeline](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | [AmazonEC2RoleforDataPipelineRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonEC2RoleforDataPipelineRole) | 

## Función de trabajo de usuario avanzado desarrollador
<a name="jf_developer-power-user"></a>

**Nombre de la política administrada por AWS:** [PowerUserAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/PowerUserAccess)

**Caso de uso:** este usuario realiza tareas de desarrollo de aplicaciones y puede crear y configurar recursos y servicios que respalden el desarrollo de aplicaciones compatibles con AWS.

**Actualizaciones de políticas:** AWS mantiene y actualiza esta política. Para obtener un historial de cambios para esta política, consulte la política en la consola de IAM y, a continuación, elija la pestaña **Versiones de políticas**. Para obtener más información acerca de las políticas de funciones de trabajo, consulte [Actualizaciones de políticas administradas de AWS para funciones de trabajo](#security-iam-awsmanpol-jobfunction-updates).

**Descripción de la política:** la primera instrucción de esta política utiliza el elemento [`NotAction`](reference_policies_elements_notaction.md) para permitir todas las acciones para todos los servicios de AWS y para todos los recursos, excepto AWS Identity and Access Management, AWS Organizations y AWS Account Management. La segunda instrucción concede permisos de IAM para crear un rol vinculado al servicio. Esto es necesario en el caso de ciertos servicios que deben tener acceso a recursos de otro servicio, como un bucket de Amazon S3. También concede permisos de AWS Organizations para ver información acerca de la organización del usuario, incluido el correo electrónico de la cuenta de administración y las limitaciones de la organización. Aunque esta política limita a IAM y AWS Organizations, permite al usuario realizar todas las acciones de IAM Identity Center si está activado IAM Identity Center. También otorga permisos de administración de cuentas para ver qué regiones de AWS están habilitadas o deshabilitadas para la cuenta.

## Función de trabajo del administrador de red
<a name="jf_network-administrator"></a>

**Nombre de la política administrada por AWS:** [NetworkAdministrator](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/NetworkAdministrator)

**Caso de uso:** este usuario tiene la tarea de configurar y mantener los recursos de red de AWS.

**Actualizaciones de políticas:** AWS mantiene y actualiza esta política. Para obtener un historial de cambios para esta política, consulte la política en la consola de IAM y, a continuación, elija la pestaña **Versiones de políticas**. Para obtener más información acerca de las políticas de funciones de trabajo, consulte [Actualizaciones de políticas administradas de AWS para funciones de trabajo](#security-iam-awsmanpol-jobfunction-updates).

**Descripción de la política:** esta política concede permisos para crear y mantener recursos de red en Auto Scaling, Amazon EC2, AWS Direct Connect, Route 53, Amazon CloudFront, Elastic Load Balancing, AWS Elastic BeanstalkAmazon SNS, CloudWatch, CloudWatch Logs, Amazon S3, IAM y Amazon Virtual Private Cloud. Para obtener más información sobre la política administrada, consulte [NetworkAdministrator](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/NetworkAdministrator.html) en la *Guía de referencia de políticas AWS administradas*.

Esta función requiere poder transmitir roles a los servicios de AWS. Esta política concede permisos `iam:GetRole` y `iam:PassRole` únicamente para los roles indicados en la siguiente tabla. Para obtener más información, consulte [Creación de roles y asociación de políticas (consola)](access_policies_job-functions_create-policies.md) más adelante en este tema.


| Caso de uso | Nombre de rol (\$1 es un carácter comodín) | Tipo de rol de servicio que ha de seleccionarse | AWSPolítica administrada por que ha de seleccionarse | 
| --- | --- | --- | --- | 
| Permite que Amazon VPC cree y administre registros en CloudWatch Logs en nombre del usuario para monitorear el tráfico IP entrante y saliente de la VPC | [flow-logs-\$1](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html#flow-logs-iam) | Crear un rol con una política de confianza, tal y como se define en la [Guía del usuario de Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html#flow-logs-iam) | Este caso de uso no tiene una política administrada por AWS existente, pero la documentación indica los permisos necesarios. Consulte la [Guía del usuario de Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html#flow-logs-iam) | 

## Acceso de solo lectura
<a name="awsmp_readonlyaccess"></a>

**Nombre de la política administrada por AWS:** [ReadOnlyAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/ReadOnlyAccess)

**Caso de uso**: este usuario requiere acceso de solo lectura a todos los recursos de una cuenta de Cuenta de AWS.

**importante**  
Este usuario también tendrá acceso para leer los datos en servicios de almacenamiento, como los buckets de Amazon S3 y las tablas de Amazon DynamoDB.

**Actualizaciones de políticas:** AWS mantiene y actualiza esta política. Para obtener un historial de cambios para esta política, consulte la política en la consola de IAM y, a continuación, elija la pestaña **Versiones de políticas**. Para obtener más información acerca de las políticas de funciones de trabajo, consulte [Actualizaciones de políticas administradas de AWS para funciones de trabajo](#security-iam-awsmanpol-jobfunction-updates).

**Descripción de la política:** esta política concede permisos para enumerar, obtener, describir y ver recursos y sus atributos de otro modo. No incluye funciones de mutación como crear o eliminar. Esta política incluye acceso de solo lectura a servicios de AWS relacionados con la seguridad, como AWS Identity and Access Management y Administración de facturación y costos de AWS. Vea la política para conocer la lista completa de servicios y acciones que admite esta política. Para obtener más información sobre las políticas administradas, consulte [ReadOnlyAccess](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/ReadOnlyAccess.html) en la *Guía de referencia de políticas administradas de AWS*. Si necesita una política similar que no conceda acceso para leer datos en los servicios de almacenamiento, consulte [Función de trabajo de usuario de solo lectura](#jf_view-only-user).

## Acceso completo a las acciones del servicio del MCP
<a name="jf_mcp-service-actions"></a>

**Nombre de la política administrada de AWS:** [AWSMcpServiceActionsFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSMcpServiceActionsFullAccess)

**Caso de uso:** este usuario necesita acceder a los servicios de AWS mediante servidores MCP de AWS. Esta política no otorga acceso a las acciones que lleva a cabo un servicio del MCP en relación con otros servicios de AWS.

**Actualizaciones de políticas:** AWS mantiene y actualiza esta política. Para obtener un historial de cambios para esta política, consulte la política en la consola de IAM y, a continuación, elija la pestaña **Versiones de políticas**. Para obtener más información acerca de las políticas de funciones de trabajo, consulte [Actualizaciones de políticas administradas de AWS para funciones de trabajo](#security-iam-awsmanpol-jobfunction-updates).

**Descripción de la política:** esta política otorga permisos para llamar a cualquier acción del servicio del MCP de AWS. Puede utilizarla cuando no necesite especificar permisos por servicio del MCP de AWS. No concede permisos a las acciones que lleva a cabo el servicio del MCP a otros servicios de AWS; esos permisos siempre deben concederse por separado y además de las acciones del servicio del MCP. Para obtener información sobre la política administrada, consulte [AWSMcpServiceActionsFullAccess](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/AWSMcpServiceActionsFullAccess.html) en la *Guía de referencia de políticas administradas de AWS*.

## Función de trabajo de auditor de seguridad
<a name="jf_security-auditor"></a>

**Nombre de la política administrada por AWS:** [SecurityAudit](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/SecurityAudit)

**Caso de uso:** este usuario monitoriza las cuentas para comprobar que cumplan con los requisitos de seguridad. Este usuario puede obtener acceso a los logs y eventos para investigar posibles infracciones de seguridad o actividades malintencionadas.

**Actualizaciones de políticas:** AWS mantiene y actualiza esta política. Para obtener un historial de cambios para esta política, consulte la política en la consola de IAM y, a continuación, elija la pestaña **Versiones de políticas**. Para obtener más información acerca de las políticas de funciones de trabajo, consulte [Actualizaciones de políticas administradas de AWS para funciones de trabajo](#security-iam-awsmanpol-jobfunction-updates).

**Descripción de la política:** esta política concede permisos para ver los datos de configuración de muchos servicios de AWS y revisar sus registros. Para obtener más información sobre la política gestionada, consulte [SecurityAudit](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/SecurityAudit.html) en la Guía de *referencia de políticas AWS gestionadas*.

## Función de trabajo de usuario de soporte
<a name="jf_support-user"></a>

**Nombre de política administrada de AWS:** [AWSSupportAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSSupportAccess)

**Caso de uso:** este usuario se pone en contacto con AWS Support, crea casos de soporte y consulta el estado de los casos existentes.

**Actualizaciones de políticas:** AWS mantiene y actualiza esta política. Para obtener un historial de cambios para esta política, consulte la política en la consola de IAM y, a continuación, elija la pestaña **Versiones de políticas**. Para obtener más información acerca de las políticas de funciones de trabajo, consulte [Actualizaciones de políticas administradas de AWS para funciones de trabajo](#security-iam-awsmanpol-jobfunction-updates).

**Descripción de política:** esta política concede permisos para crear y actualizar casos de Soporte. Para obtener información sobre las políticas administradas, consulte [AWSSupportAccess](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/AWSSupportAccess.html) en la *Guía de referencia de políticas administradas de AWS*.

## Función de trabajo de administrador del sistema
<a name="jf_system-administrator"></a>

**Nombre de la política administrada por AWS:** [SystemAdministrator](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/SystemAdministrator)

**Caso de uso:** este usuario configura y mantiene los recursos para realizar operaciones de desarrollo.

**Actualizaciones de políticas:** AWS mantiene y actualiza esta política. Para obtener un historial de cambios para esta política, consulte la política en la consola de IAM y, a continuación, elija la pestaña **Versiones de políticas**. Para obtener más información acerca de las políticas de funciones de trabajo, consulte [Actualizaciones de políticas administradas de AWS para funciones de trabajo](#security-iam-awsmanpol-jobfunction-updates).

**Descripción de la política:** Esta política concede permisos para crear y mantener los recursos de una gran variedad de servicios de AWS, incluyendo AWS CloudTrail, Amazon CloudWatch, AWS CodeCommit, AWS CodeDeploy, AWS Config, AWS Directory Service, Amazon EC2, AWS Identity and Access Management, AWS Key Management Service, AWS Lambda, Amazon RDS, Route 53, Amazon S3, Amazon SES, Amazon SQS, AWS Trusted Advisor y Amazon VPC. Para obtener más información sobre la política administrada, consulte [SystemAdministrator](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/SystemAdministrator.html) en la *Guía de referencia de políticas AWS administradas*.

Esta función requiere poder transmitir roles a los servicios de AWS. Esta política concede permisos `iam:GetRole` y `iam:PassRole` únicamente para los roles indicados en la siguiente tabla. Para obtener más información, consulte [Creación de roles y asociación de políticas (consola)](access_policies_job-functions_create-policies.md) más adelante en este tema. Para obtener más información acerca de las políticas de funciones de trabajo, consulte [Actualizaciones de políticas administradas de AWS para funciones de trabajo](#security-iam-awsmanpol-jobfunction-updates).


| Caso de uso | Nombre de rol (\$1 es un carácter comodín) | Tipo de rol de servicio que ha de seleccionarse | AWSPolítica administrada por que ha de seleccionarse | 
| --- | --- | --- | --- | 
| Permitir que las aplicaciones que se ejecutan en instancias EC2 de un clúster de Amazon ECS obtengan acceso a Amazon ECS | [ecr-sysadmin-\$1](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/instance_IAM_role.html) | Rol de Amazon EC2 para EC2 Container Service  | [AmazonEC2ContainerServiceforEC2Role](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role) | 
| Permitir a un usuario que monitorice las bases de datos | [rds-monitoring-role](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html) | Rol de Amazon RDS para un monitoreo mejorado | [AmazonRDSEnhancedMonitoringRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonRDSEnhancedMonitoringRole) | 
| Permitir que las aplicaciones que se ejecutan en instancias EC2 obtengan acceso a los recursos de AWS | [ec2-sysadmin-\$1](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) | Amazon EC2 | Política de ejemplo para un rol que concede acceso a un bucket de S3, tal y como se muestra en la [Guía del usuario de Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html); puede personalizarse según sea necesario | 
| Permitir que Lambda lea DynamoDB Streams y escriba en los CloudWatch Logs | [lambda-sysadmin-\$1](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html) | AWS Lambda | [AWSLambdaDynamoDBExecutionRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSLambdaDynamoDBExecutionRole) | 

## Función de trabajo de usuario de solo lectura
<a name="jf_view-only-user"></a>

**Nombre de la política administrada por AWS:** [ViewOnlyAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/ViewOnlyAccess)

**Caso de uso:** este usuario puede ver en su cuenta una lista de metadatos básicos y recursos de AWS en los servicios. El usuario no puede leer contenido de recursos ni metadatos más allá de la información de cuotas y de listas correspondientes a los recursos.

**Actualizaciones de políticas:** AWS mantiene y actualiza esta política. Para obtener un historial de cambios para esta política, consulte la política en la consola de IAM y, a continuación, elija la pestaña **Versiones de políticas**. Para obtener más información acerca de las políticas de funciones de trabajo, consulte [Actualizaciones de políticas administradas de AWS para funciones de trabajo](#security-iam-awsmanpol-jobfunction-updates).

**Descripción de la política:** esta política concede a `List*`, `Describe*`, `Get*`, `View*` y `Lookup*` acceso a los recursos de los servicios de AWS. Para ver qué acciones incluye esta política para cada servicio, consulte [ViewOnlyAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/ViewOnlyAccess). Para obtener más información sobre la política gestionada, consulte [ViewOnlyAccess](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/ViewOnlyAccess.html) en la *Guía de referencia de políticas gestionadas AWS*.

## Actualizaciones de políticas administradas de AWS para funciones de trabajo
<a name="security-iam-awsmanpol-jobfunction-updates"></a>

AWS mantiene todas estas políticas y las actualiza para incluir soporte de nuevos servicios y nuevas funciones a medida que AWS los agrega. Los clientes no pueden modificar estas políticas. Puede realizar una copia de la política y, a continuación, modificar la copia, pero que no se actualiza automáticamente como copia de AWS introduce nuevos servicios y operaciones del API.

Para una política de función de trabajo, puede ver el historial de versiones y la hora y fecha de cada actualización en la consola de IAM. Para hacer esto, utilice los vínculos de esta página para ver los detalles de la política. A continuación, elija la pestaña **Versiones de políticas** para ver las versiones. Esta página muestra las últimas 25 versiones de una política. Para ver todas las versiones de una política, llame al comando [get-policy-version](https://docs.aws.amazon.com/cli/latest/reference/iam/get-policy-version.html) de AWS CLI o la operación [GetPolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicyVersion.html) de la API

**nota**  
Puede tener hasta cinco versiones de una política administrada por el cliente, pero AWS conserva el historial de versiones completo de las políticas administradas de AWS.

# Creación de roles y asociación de políticas (consola)
<a name="access_policies_job-functions_create-policies"></a>

Varias de las políticas indicadas anteriormente hacen que pueda configurar servicios de AWS con roles que les permitan llevar a cabo operaciones por usted. Las políticas de funciones especifican los nombres exactos del rol que debe utilizar o al menos incluyen un prefijo que especifique la primera parte del nombre que puede utilizarse. Para crear uno de estos roles, siga los pasos que se indican en el siguiente procedimiento.

**Cómo crear un rol para un Servicio de AWS (consola de IAM)**

1. Inicie sesión en Consola de administración de AWS y abra la consola IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. En el panel de navegación de la consola de IAM, seleccione **Roles** y, a continuación, elija **Crear rol**.

1. En **Tipo de entidad de confianza**, elija **Servicio de AWS**.

1. En **Servicio o caso de uso**, seleccione un servicio y, a continuación, el caso de uso. Los casos de uso son definidos por el servicio de modo tal que ya incluyen la política de confianza que el servicio mismo requiere.

1. Elija **Siguiente**.

1. Para las **Políticas de permisos**, las opciones dependen del caso de uso que haya seleccionado:
   + Si el servicio define los permisos para el rol, no puede seleccionar políticas de permisos.
   + Seleccione entre un conjunto limitado de políticas de permisos.
   + Seleccione una de todas las políticas de permisos.
   + No seleccione políticas de permisos en este momento. Después de crear el rol, genere las políticas y luego asócielas al rol.

1. (Opcional) Configure un [límite de permisos](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html). Se trata de una característica avanzada que está disponible para los roles de servicio, pero no para los roles vinculados a servicios.

   1. Abra la sección **Configurar límite de permisos** y, a continuación, elija **Utilizar un límite de permisos para controlar los permisos que puedes tener el rol como máximo**. 

      IAM incluye una lista de las políticas administradas por AWS y de las políticas administradas por el cliente de cada cuenta.

   1. Seleccione la política que desea utilizar para el límite de permisos.

1. Elija **Siguiente**.

1. Para **Nombre del rol**, las opciones varían según el servicio:
   + Si el servicio define el nombre del rol, no podrá editarlo.
   + Si el servicio define un prefijo para el nombre del rol, puede ingresar un sufijo opcional.
   + Si el servicio no define el nombre del rol, podrá nombrarlo usted mismo.
**importante**  
Cuando asigne un nombre a un rol, tenga en cuenta lo siguiente:  
Los nombres de rol deben ser únicos dentro de su Cuenta de AWS, y no se puedesn hacer únicos mediante mayúsculas y minúsculas.  
Por ejemplo, no puedes crear roles denominados tanto **PRODROLE** como **prodrole**. Cuando se utiliza un nombre de rol en una política o como parte de un ARN, el nombre de rol distingue entre mayúsculas y minúsculas, sin embargo, cuando un nombre de rol les aparece a los clientes en la consola, como por ejemplo durante el proceso de inicio de sesión, el nombre de rol no distingue entre mayúsculas y minúsculas.
Dado que otras entidades podrían hacer referencia al rol, no es posible editar el nombre del rol una vez creado.

1. (Opcional) **En Descripción**, ingrese una descripción para el rol.

1. (Opcional) Para editar los casos de uso y los permisos de la función, en las secciones **Paso 1: Seleccionar entidades confiables** o en **Paso 2: Agregar permisos**, elija **Editar**.

1. (Opcional) Para ayudar a identificar, organizar o buscar el rol, agregue etiquetas como pares clave-valor. Para obtener más información sobre el uso de etiquetas en IAM, consulte [Etiquetas para recursos de AWS Identity and Access Management](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) en la *Guía del usuario de IAM*.

1. Revise el rol y, a continuación, elija **Crear rol**.

## Ejemplo 1: configuración de un usuario como administrador de base de datos (consola)
<a name="jf_example_1"></a>

Este ejemplo muestra los pasos necesarios para establecer a Alice, usuaria de IAM, como [Administradora de base de datos](access_policies_job-functions.md#jf_database-administrator). Use la información de la primera fila de la tabla de dicha sección y permita a la usuaria que habilite el monitoreo de Amazon RDS. Debe asociar la política [DatabaseAdministrator](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/DatabaseAdministrator) al usuario de IAM de Alice para que pueda administrar los servicios de base de datos de Amazon. Esta política también permite que Alice transmita un rol denominado `rds-monitoring-role` al servicio de Amazon RDS que permite al servicio supervisar las bases de datos de Amazon RDS en su nombre.

1. Inicie sesión en Consola de administración de AWS y abra la consola IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Seleccione **Políticas**, escriba **database** en el cuadro de búsqueda y luego pulse Entrar.

1. Seleccione el botón de radio correspondiente a la política **DatabaseAdministrator**, luego **Acciones** y, por último **Asociar**.

1. En la lista de entidades, seleccione **Alice** y, a continuación, **Asociar política**. A partir de este momento Alice puede administrar las bases de datos de AWS. Sin embargo, debe configurar el rol de servicio para permitir a Alice monitorizar dichas bases de datos.

1. En el panel de navegación de la consola de IAM, seleccione **Roles** y, a continuación, elija **Crear rol**.

1. Elija el tipo de función de **servicio de AWS** y, a continuación, elija **Amazon RDS**.

1. Elija el caso de uso **Rol de Amazon RDS para el monitoreo mejorado**.

1. Amazon RDS define los permisos de su rol. Elija **Siguiente: revisión** para continuar.

1. El nombre del rol debe ser uno de los especificados en la política de DatabaseAdministrator que ahora tiene Alice. Uno de ellos es **rds-monitoring-role**. Ingréselo en **Nombre del rol**.

1. (Opcional) En **Descripción del rol**, introduzca una descripción para el nuevo rol.

1. Después de revisar los detalles, elija **Crear rol**.

1. Ahora Alice puede activar **Monitoreo mejorado de RDS** en la sección **Monitoreo** de la consola de Amazon RDS. Por ejemplo, puede hacerlo al crear una instancia de base de datos, crear una réplica de lectura o modificar una instancia de base de datos. Debe ingresar el nombre del rol creado (rds-monitoring-role) en el cuadro **Rol de supervisión** al establecer **Habilitar supervisión mejorada** en **Sí**. 

## Ejemplo 2: configuración de un usuario como administrador de red (consola)
<a name="jf_example_2"></a>

Este ejemplo muestra los pasos necesarios para establecer a Jorge, usuario de IAM, como [Administrador de red](access_policies_job-functions.md#jf_network-administrator). Se usa la información de la tabla en esa sección para permitir a Jorge supervisar el tráfico IP que va hacia y desde una VPC. También permite a Jorge capturar dicha información en los registros de CloudWatch. Debe asociar la política [NetworkAdministrator](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/NetworkAdministrator) al usuario de IAM de Jorge para que pueda configurar los recursos de red de AWS. Esta política también permite a Jorge transmitir un rol cuyo nombre comience por `flow-logs*` a Amazon EC2 al crear un registro de flujo. En este caso, a diferencia del ejemplo 1, no existe un tipo de rol de servicio predefinido, de modo que debe realizar algunos pasos de forma distinta.

1. Inicie sesión en Consola de administración de AWS y abra la consola IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. En el panel de navegación, seleccione **Políticas** y, a continuación, ingrese **network** en el cuadro de búsqueda y pulse Entrar.

1. Seleccione el botón de radio situado junto a la política **NetworkAdministrator**, luego **Acciones** y, por último, **Asociar**.

1. En la lista de usuarios, seleccione la casilla de verificación junto a **Jorge** y, a continuación, elija **Asociar política**. Jorge puede administrar ahora los recursos de red de AWS. Sin embargo, debe configurar el rol de servicio para permitir la monitorización del tráfico IP de la VPC.

1. Dado que el rol de servicio que necesita crear no tiene una política administrada predefinida, primero debe crearla. En el panel de navegación, seleccione **Políticas** y, a continuación, elija **Crear política**.

1. En la sección **Editor de políticas**, seleccione la opción **JSON** y copie el texto del siguiente documento de política de JSON. Pegue el texto en el cuadro de texto **JSON**. 

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Action": [
           "logs:CreateLogGroup",
           "logs:CreateLogStream",
           "logs:PutLogEvents",
           "logs:DescribeLogGroups",
           "logs:DescribeLogStreams"
         ],
         "Effect": "Allow",
         "Resource": "*"
       }
     ]
   }
   ```

------

1.  Resuelva las advertencias de seguridad, errores o advertencias generales generadas durante la [validación de política](access_policies_policy-validator.md) y luego elija **Siguiente**. 
**nota**  
Puede alternar entre las opciones **Visual** y **JSON** del editor en todo momento. No obstante, si realiza cambios o selecciona **Siguiente** en la opción **Visual** del editor, es posible que IAM reestructure la política, con el fin de optimizarla para el editor visual. Para obtener más información, consulte [Reestructuración de políticas](troubleshoot_policies.md#troubleshoot_viseditor-restructure).

1. En la página **Revisar y crear**, escriba **vpc-flow-logs-policy-for-service-role** como nombre de la política. Revise los **Permisos definidos en esta política** para ver los permisos que concede la política y, a continuación, seleccione **Crear política** para guardar su trabajo.

   La nueva política aparece en la lista de las políticas administradas y está lista para asociar.

1. En el panel de navegación de la consola de IAM, seleccione **Roles** y, a continuación, elija **Crear rol**.

1. Seleccione el tipo de rol **Servicio de AWS** y luego elija **Amazon EC2**.

1. Elija el caso de uso **Amazon EC2**

1. En la página **Asociar políticas de permisos**, seleccione la política que ha creado anteriormente, **vpc-flow-logs-policy-for-service-role**, a continuación, elija **Siguiente: revisión**.

1. El nombre del rol debe estar permitido por la política de NetworkAdministrator que Jorge tiene ahora. Los nombres que comiencen por `flow-logs-` están permitidos. En este ejemplo, ingrese **flow-logs-for-jorge** como **Nombre de rol**.

1. (Opcional) En **Descripción del rol**, introduzca una descripción para el nuevo rol.

1. Después de revisar los detalles, elija **Crear rol**.

1. Ahora puede configurar la política de confianza necesaria para este caso. En la página **Roles**, seleccione el rol **flow-logs-for-jorge** (el nombre, no la casilla de verificación). En la página de detalles del nuevo rol, elija la pestaña **Relaciones de confianza** y, a continuación, elija **Editar relación de confianza**.

1. Cambie la línea de "Service" para que se lea como sigue, sustituyendo la entrada por `ec2.amazonaws.com`:

   ```
           "Service": "vpc-flow-logs.amazonaws.com"
   ```

1. Jorge ahora puede crear registros de flujo para una VPC o subred en la consola de Amazon EC2. Al crear el registro de flujo, especifique el rol **flow-logs-for-jorge**. Este rol tiene los permisos para crear el log y escribir datos en él.

# Claves de contexto de condición globales de AWS
<a name="reference_policies_condition-keys"></a>

Cuando una [entidad principal](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html?icmpid=docs_homepage_addtlrcs#principal) realiza una [solicitud](intro-structure.md#intro-structure-request) a AWS, AWS recopila la información de la solicitud en un [contexto de solicitud](intro-structure.md#intro-structure-request). Puede utilizar el elemento `Condition` de una política JSON para comparar las claves de la solicitud de contexto con los valores de claves que especifique en su política. La información de la solicitud proviene de diferentes orígenes, que abarcan la entidad principal que realiza la solicitud, el recurso con el que se realiza la solicitud y los metadatos sobre la solicitud en sí.

Las **claves de condición globales** se pueden usar en todos los servicios de AWS. Si bien estas claves de condición se pueden usar en todas las políticas, la clave no está disponible en todos los contextos de solicitud. Por ejemplo, la clave de condición `aws:SourceAccount` solo está disponible cuando la llamada a su recurso la realiza directamente una [ entidad principal de servicio de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services). Para obtener más información sobre las circunstancias en las que se incluye una clave global en el contexto de la solicitud, consulte la información de **Disponibilidad** para cada clave.

Algunos servicios específicos crean sus propias claves de condición que están disponibles en el contexto de solicitud de otros servicios. Las **claves de condición entre servicios** son un tipo de clave de condición global que incluyen un prefijo que coincide con el nombre del servicio, como `ec2:` o `lambda:`, pero están disponibles en otros servicios.

Las **claves de condición específicas del servicio** se definen para su uso exclusivo con un servicio específico de AWS. Por ejemplo, Amazon S3 le permite escribir una política con la clave de condición `s3:VersionId` para limitar el acceso a una versión específica de un objeto de Amazon S3. Esta clave de condición es exclusiva del servicio, lo que significa que solo funciona con solicitudes al servicio Amazon S3. Para obtener información sobre las claves de condición específicas del servicio, consulte [Acciones, recursos y claves de condición para los servicios de AWS](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html) y elija el servicio cuyas claves desee ver. 

**nota**  
Si utiliza claves de condición que solo están disponibles en algunas circunstancias, puede utilizar las versiones [IfExists](reference_policies_elements_condition_operators.md#Conditions_IfExists) de los operadores de condición. Si faltan las claves de condición de un contexto de solicitud, la política podría generar un error en la evaluación. Por ejemplo, utilice el siguiente bloque de condiciones con `...IfExists` para satisfacer cuando una solicitud específica proviene de un rango de direcciones IP o de una VPC específica. Si no se incluye alguna o ambas claves en el contexto de la solicitud, la condición sigue devolviendo `true`. Los valores solo se comprueban si la clave especificada se incluye en el contexto de la solicitud. Para obtener más información sobre cómo se evalúa una política cuando no hay una clave presente para otros operadores, consulte [Operadores de condición](reference_policies_elements_condition_operators.md).  

```
"Condition": {
    "IpAddressIfExists": {"aws:SourceIp" : ["xxx"] },
    "StringEqualsIfExists" : {"aws:SourceVpc" : ["yyy"]} 
}
```

**importante**  
Para comparar su condición con un contexto de solicitud con varios valores de clave, debe utilizar `ForAllValues` u operadores de configuración `ForAnyValue`. Utilice operadores de conjunto solo con claves de condición de varios valores. No utilice operadores de conjunto con claves de condición de un solo valor. Para obtener más información, consulte [Operadores de conjunto para claves de contexto multivalor](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).


| Propiedades de la entidad principal | Propiedades de una sesión de rol | Propiedades de la red | Propiedades del recurso | Propiedades de la solicitud | 
| --- | --- | --- | --- | --- | 
|  `aws:PrincipalArn` `aws:PrincipalAccount` `aws:PrincipalOrgPaths` `aws:PrincipalOrgID` `aws:PrincipalTag/*tag-key*` `aws:PrincipalIsAWSService` `aws:PrincipalServiceName` `aws:PrincipalServiceNamesList` `aws:PrincipalType` `aws:userid` `aws:username`  |  `aws:AssumedRoot` `aws:FederatedProvider` `aws:TokenIssueTime` `aws:MultiFactorAuthAge` `aws:MultiFactorAuthPresent` `aws:ChatbotSourceArn` `aws:Ec2InstanceSourceVpc` `aws:Ec2InstanceSourcePrivateIPv4` `aws:SourceIdentity` `ec2:RoleDelivery` `ec2:SourceInstanceArn` `glue:RoleAssumedBy` `glue:CredentialIssuingService` `codebuild:BuildArn` `codebuild:ProjectArn` `lambda:SourceFunctionArn` `ssm:SourceInstanceArn` `identitystore:UserId`  |  `aws:SourceIp` `aws:SourceVpc` `aws:SourceVpcArn` `aws:SourceVpce` `aws:VpceAccount` `aws:VpceOrgID` `aws:VpceOrgPaths` `aws:VpcSourceIp`  |  `aws:ResourceAccount` `aws:ResourceOrgID` `aws:ResourceOrgPaths` `aws:ResourceTag/*tag-key*`  |  `aws:CalledVia` `aws:CalledViaFirst` `aws:CalledViaLast` `aws:CalledViaAWSMCP` `aws:ViaAWSService` `aws:ViaAWSMCPService` `aws:CurrentTime` `aws:EpochTime` `aws:referer` `aws:RequestedRegion` `aws:RequestTag/*tag-key*` `aws:TagKeys` `aws:SecureTransport` `aws:SourceAccount` `aws:SourceArn` `aws:SourceOrgID` `aws:SourceOrgPaths` `aws:UserAgent` `aws:IsMcpServiceAction`  | 

## Claves de condición sensibles
<a name="condition-keys-sensitive"></a>

Las siguientes claves de condición se consideran privadas. No existe ningún caso de uso válido para utilizar comodines en estas claves de condición, ni siquiera en el caso de una subcadena del valor de la clave con un comodín. Esto se debe a que el comodín puede hacer coincidir la clave de la condición con cualquier valor, lo que podría suponer un riesgo para la seguridad.
+ `aws:PrincipalAccount`
+ `aws:PrincipalOrgID`
+ `aws:ResourceAccount`
+ `aws:ResourceOrgID`
+ `aws:SourceAccount`
+ `aws:SourceOrgID`
+ `aws:SourceVpc`
+ `aws:SourceVpce`
+ `aws:VpceAccount`
+ `aws:VpceOrgID`

## Propiedades de la entidad principal
<a name="condition-keys-principal-properties"></a>

Utilice las siguientes claves de condición para comparar los detalles de la entidad principal que realiza la solicitud con las propiedades de la entidad principal que especifique en la política. Para obtener una lista de las entidades principales que pueden realizar solicitudes, consulte [Cómo especificar una entidad principal](reference_policies_elements_principal.md#Principal_specifying).

### aws:PrincipalArn
<a name="condition-keys-principalarn"></a>

Utilice esta clave para comparar el [Nombre de recurso de Amazon](reference_identifiers.md#identifiers-arns) (ARN) de la entidad principal que ha realizado la solicitud con el ARN que se especifique en la política. Para los roles de IAM, el contexto de solicitud devuelve el ARN del rol, no el ARN del usuario que asumió el rol. 
+ **Disponibilidad**: esta clave se incluye en el contexto de solicitud de todas las solicitudes firmadas. Las solicitudes anónimas no incluyen esta clave. Puede especificar los siguientes tipos de entidades principales en esta clave de condición: 
  + rol de IAM
  + Usuario de IAM
  + Entidad principal de usuario federado de AWS STS
  + Usuario raíz de la Cuenta de AWS
+ **Tipo de datos**: ARN

  AWS recomienda utilizar [operadores de ARN](reference_policies_elements_condition_operators.md#Conditions_ARN) en lugar de [operadores de cadenas](reference_policies_elements_condition_operators.md#Conditions_String) al comparar los ARN.
+ **Tipo de valor**: valor único
+ **Valores de ejemplo**: en la siguiente lista se muestra el valor de contexto de solicitud que se devuelve para los diferentes tipos de entidades principales que se pueden especificar en la clave de condición `aws:PrincipalArn`:
  + **Rol de IAM**: el contexto de la solicitud contiene el siguiente valor para la clave de condición `aws:PrincipalArn`. No especifique el ARN de la sesión de rol asumido como valor para esta clave de condición. Para obtener más información acerca de la entidad principal de la sesión de rol asumido, consulte [Entidades principales de sesión de rol](reference_policies_elements_principal.md#principal-role-session).

    ```
    arn:aws:iam::123456789012:role/role-name
    ```
  + **Usuario de IAM**: el contexto de la solicitud contiene el siguiente valor para la clave de condición`aws:PrincipalArn`.

    ```
    arn:aws:iam::123456789012:user/user-name
    ```
  + **Entidades principales de usuario federado de AWS STS**: el contexto de la solicitud contiene el siguiente valor para la clave de condición `aws:PrincipalArn`.

    ```
    arn:aws:sts::123456789012:federated-user/user-name
    ```
  + **Usuario raíz de la Cuenta de AWS**: el contexto de la solicitud contiene el siguiente valor para la clave de condición `aws:PrincipalArn`. Cuando se especifica el ARN del usuario raíz como valor para la clave de condición `aws:PrincipalArn`, limita los permisos solo para el usuario raíz de la Cuenta de AWS. Esto es distinto de especificar el ARN del usuario raíz en el elemento principal de una política basada en recursos, que delega la autoridad en la Cuenta de AWS. Para obtener más información sobre cómo especificar el ARN del usuario raíz en el elemento principal de una política basada en recursos, consulte [Entidades principales de Cuenta de AWS](reference_policies_elements_principal.md#principal-accounts). 

    ```
    arn:aws:iam::123456789012:root
    ```

Puede especificar el ARN del usuario raíz como un valor de la clave de condición `aws:PrincipalArn` en políticas de control de servicio (SCP) de AWS Organizations. Las SCP son un tipo de política de organización que se emplea para administrar permisos en una organización y solo afectan a las cuentas de miembros de la organización. Una SCP limita los permisos para los usuarios y roles de IAM en las cuentas de miembro, incluido el usuario raíz de la cuenta de miembro. Para obtener más información sobre el efecto de las SCP sobre los permisos, consulte [Efectos de las SCP en los permisos](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html#scp-effects-on-permissions) en la *AWS OrganizationsGuía del usuario de *.

### aws:PrincipalAccount
<a name="condition-keys-principalaccount"></a>

Utilice esta clave para comparar la cuenta a la que pertenece la entidad principal solicitante con el identificador de cuenta que especifique en la política. Para las solicitudes anónimas, el contexto de la solicitud devuelve `anonymous`.
+ **Disponibilidad**: esta clave se incluye en el contexto de solicitud de todas las solicitudes, incluidas las anónimas.
+ **Tipo de datos**: [cadena](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

En el siguiente ejemplo, se deniega el acceso a todo excepto a las entidades principales con el número de cuenta `123456789012`.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyAccessFromPrincipalNotInSpecificAccount",
      "Action": "service:*",
      "Effect": "Deny",
      "Resource": [
        "arn:aws:service:us-east-1:111122223333:resource"
      ],
      "Condition": {
        "StringNotEquals": {
          "aws:PrincipalAccount": [
            "123456789012"
          ]
        }
      }
    }
  ]
}
```

------

### aws:PrincipalOrgPaths
<a name="condition-keys-principalorgpaths"></a>

Utilice esta clave para comparar la ruta de acceso de AWS Organizations de la entidad principal que realiza la solicitud a la ruta de acceso en la política. Esa entidad principal puede ser un usuario de IAM, un rol de IAM, una entidad principal de usuario federado de AWS STS o Usuario raíz de la cuenta de AWS. En una política, esta clave de condición garantiza que el solicitante es un miembro de la cuenta dentro de la raíz de la organización o unidades organizativas (OU) especificadas en AWS Organizations. Una ruta AWS Organizations es una representación de texto de la estructura de una entidad AWS Organizations. Para obtener más información sobre el uso y la comprensión de las rutas, consulte [Comprender la ruta de la entidad AWS Organizations](access_policies_last-accessed-view-data-orgs.md#access_policies_last-accessed-viewing-orgs-entity-path).
+ **Disponibilidad**: esta clave se incluye en el contexto de la solicitud solo si la entidad principal es miembro de una organización. Las solicitudes anónimas no incluyen esta clave.
+ **Tipo de datos**: [cadena](reference_policies_elements_condition_operators.md#Conditions_String) (lista)
+ **Tipo de valor**: multivalor

**nota**  
Los ID de organización son únicos globalmente, pero los ID de unidad organizativa y los ID de raíz solo son únicos dentro de una organización. Esto significa que no hay dos organizaciones que compartan el mismo ID de organización. Sin embargo, otra organización puede tener una unidad organizativa o raíz con el mismo ID que la suya. Recomendamos que incluya siempre el ID de organización cuando especifique una unidad organizativa o raíz.

Por ejemplo, la siguiente condición devuelve `true` para las entidades principales en cuentas que están asociadas directamente a la unidad organizativa `ou-ab12-22222222`, pero no en sus unidades organizativas secundarias.

```
"Condition" : { "ForAnyValue:StringEquals" : {
     "aws:PrincipalOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/"]
}}
```

La siguiente condición devuelve `true` para las entidades principales de una cuenta que está asociada directamente a la unidad organizativa o a cualquiera de sus unidades organizativas secundarias. Cuando se incluye un comodín, se debe utilizar el operador de condición `StringLike`.

```
"Condition" : { "ForAnyValue:StringLike" : {
     "aws:PrincipalOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/*"]
}}
```

La siguiente condición devuelve `true` para las entidades principales de una cuenta que está adjunta directamente a cualquiera de las OU secundarias, pero no directamente a la OU primaria. La condición anterior es para la unidad organizativa o para cualquier unidad organizativa secundaria. La siguiente condición es solo para las secundarias (y las subsiguientes que le siguen).

```
"Condition" : { "ForAnyValue:StringLike" : {
     "aws:PrincipalOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/ou-*"]
}}
```

La siguiente condición permite el acceso a todas las entidades principales de la organización `o-a1b2c3d4e5`, independientemente de su unidad organizativa principal.

```
"Condition" : { "ForAnyValue:StringLike" : {
     "aws:PrincipalOrgPaths":["o-a1b2c3d4e5/*"]
}}
```

`aws:PrincipalOrgPaths` es una clave de condición multivalor. Las claves de condición multivalor pueden tener varios valores en el contexto de la solicitud. Cuando se utilizan varios valores con el operador de condición `ForAnyValue`, la ruta de acceso del principal debe coincidir con una de las rutas enumeradas en la política. Para obtener más información acerca de las claves de condición multivalor, consulte [Operadores de conjunto para claves de contexto multivalor](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).

```
    "Condition": {
        "ForAnyValue:StringLike": {
            "aws:PrincipalOrgPaths": [
                "o-a1b2c3d4e5/r-ab12/ou-ab12-33333333/*",
                "o-a1b2c3d4e5/r-ab12/ou-ab12-22222222/*"
            ]
        }
    }
```

### aws:PrincipalOrgID
<a name="condition-keys-principalorgid"></a>

Utilice esta clave para comparar el identificador de la organización en AWS Organizations a la que pertenece la entidad principal solicitante con el identificador especificado en la política.
+ **Disponibilidad**: esta clave se incluye en el contexto de la solicitud solo si la entidad principal es miembro de una organización. Las solicitudes anónimas no incluyen esta clave.
+ **Tipo de datos**: [cadena](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

Esta clave global proporciona una alternativa a mostrar todos los ID de todas las cuentas de AWS de una organización. Puede utilizar esta clave de condición para simplificar la especificación del elemento `Principal` en una [política basada en recursos](access_policies_identity-vs-resource.md). Puede especificar el [ID de organización](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_details.html) en el elemento de condición. Al añadir y quitar cuentas, las políticas que incluyen la clave `aws:PrincipalOrgID` incluyen automáticamente las cuentas correctas y no requieren una actualización manual.

Por ejemplo, la siguiente política de bucket de Amazon S3 permite a los miembros de cualquier cuenta de la organización `o-xxxxxxxxxxx` agregar un objeto al bucket `amzn-s3-demo-bucket`. 

------
#### [ JSON ]

****  

```
 {
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Sid": "AllowPutObject",
    "Effect": "Allow",
    "Principal": "*",
    "Action": "s3:PutObject",
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
    "Condition": {"StringEquals":
      {"aws:PrincipalOrgID":"o-xxxxxxxxxxx"}
    }
  }
}
```

------

**nota**  
Esta condición global también se aplica a la cuenta de administración de una organización AWS. Esta política impide que todas las entidades principales fuera de la organización especificada accedan al bucket de Amazon S3. Esto incluye cualquiera de los servicios de AWS que interactúan con sus recursos internos, tales como el envío de datos de registro de AWS CloudTrail a los buckets de Amazon S3. Para obtener información sobre cómo puede conceder acceso de forma segura para los servicios de AWS, consulte [aws:PrincipalIsAWSService](#condition-keys-principalisawsservice).

Para obtener más información sobre AWS Organizations, consulte [¿Qué es AWS Organizations?](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html) en la *Guía del usuario de AWS Organizations*.

### aws:PrincipalTag/*tag-key*
<a name="condition-keys-principaltag"></a>

Utilice esta clave para comparar la etiqueta asociada a la entidad principal que realiza la solicitud con la etiqueta que especifique en la política. Si la entidad principal tiene más de una etiqueta asociada, el contexto de la solicitud incluye una clave `aws:PrincipalTag` para cada clave de etiqueta asociada.
+ **Disponibilidad**: esta clave se incluye en el contexto de la solicitud si la entidad principal está usando un usuario de IAM con etiquetas asociadas. Se incluye para una entidad principal que utiliza un rol de IAM con etiquetas o [etiquetas de sesión](id_session-tags.md) asociadas. Las solicitudes anónimas no incluyen esta clave.
+ **Tipo de datos**: [cadena](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

Puede añadir atributos personalizados a un usuario o rol en forma de un par de clave-valor. Para obtener más información sobre las etiquetas en IAM, consulte [Etiquetas para recursos de AWS Identity and Access Management](id_tags.md). Puede utilizar `aws:PrincipalTag` para [controlar el acceso](access_iam-tags.md#access_iam-tags_control-principals) para entidades principales de AWS.

En este ejemplo se muestra cómo puede crear una política basada en identidad que permita a usuarios con la etiqueta **department=hr** administrar usuarios, grupos o roles de IAM. 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).

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iam:Get*",
        "iam:List*",
        "iam:Generate*"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalTag/department": "hr"
        }
      }
    }
  ]
}
```

------

### aws:PrincipalIsAWSService
<a name="condition-keys-principalisawsservice"></a>

Utilice esta clave para comprobar si la llamada a su recurso se está realizando directamente por una [entidad principal de servicio de AWS](reference_policies_elements_principal.md#principal-services). Por ejemplo, AWS CloudTrail utiliza la entidad principal de servicio `cloudtrail.amazonaws.com` para escribir registros en su bucket de Amazon S3. La clave de contexto de solicitud se establece en true cuando un servicio utiliza una entidad principal de servicio para realizar una acción directa en los recursos. La clave de contexto se configura como false si un servicio utiliza las credenciales de una entidad principal de IAM para realizar una solicitud en nombre de la entidad principal. También se establece en false si el servicio utiliza un [rol de servicio o un rol vinculado a servicios](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts) para realizar una llamada en nombre de la entidad principal.
+ **Disponibilidad**: esta clave está presente en el contexto de la solicitud de todas las solicitudes de API firmadas que utilizan credenciales de AWS. Las solicitudes anónimas no incluyen esta clave.
+ **Tipos de datos**: [booleano](reference_policies_elements_condition_operators.md#Conditions_Boolean)
+ **Tipo de valor**: valor único

Puede utilizar esta clave de condición para limitar el acceso a las identidades de confianza y a las ubicaciones de red esperadas mientras concede acceso seguro a servicios de AWS.

En el siguiente ejemplo de política de bucket de Amazon S3, el acceso al bucket está restringido a menos que la solicitud se origine en `vpc-111bbb22` o provenga de una entidad principal de servicio, como CloudTrail.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "ExpectedNetworkServicePrincipal",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/AWSLogs/AccountNumber/*",
      "Condition": {
        "StringNotEqualsIfExists": {
          "aws:SourceVpc": "vpc-111bbb22"
        },
        "BoolIfExists": {
          "aws:PrincipalIsAWSService": "false"
        }
      }
    }
  ]
}
```

------

En el siguiente video tiene más información acerca de cómo utilizar la clave de condición `aws:PrincipalIsAWSService` en una política.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/gv-_H8a42G4/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/gv-_H8a42G4)


### aws:PrincipalServiceName
<a name="condition-keys-principalservicename"></a>

Utilice esta clave para comparar el nombre de la [entidad principal del servicio](reference_policies_elements_principal.md#principal-services) en la política con la entidad principal de servicio que está realizando solicitudes a sus recursos. Puede utilizar esta clave para comprobar si esta llamada es realizada por una entidad principal de servicio específica. Cuando una entidad principal de servicio realiza una solicitud directa a su recurso, la clave `aws:PrincipalServiceName` contiene el nombre de la entidad principal del servicio. Por ejemplo, el nombre de la entidad principal de servicio AWS CloudTrail es `cloudtrail.amazonaws.com`.
+ **Disponibilidad**: esta clave está presente en la solicitud cuando a la llamada la realiza una entidad principal de servicio de AWS. Esta clave no está presente en ninguna otra situación, incluida la siguiente:
  + Si el servicio utiliza un [rol de servicio o un rol vinculado a servicios](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts) para realizar una llamada en nombre de la entidad principal.
  + Si un servicio utiliza las credenciales de una entidad principal de IAM para realizar una solicitud en nombre de la entidad principal.
  + Si a la llamada la realiza directamente una entidad principal de IAM.
  + Si a la llamada la realiza un solicitante anónimo.
+ **Tipo de datos**: [cadena](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

Puede utilizar esta clave de condición para limitar el acceso a las identidades de confianza y a las ubicaciones de red esperadas mientras concede acceso seguro a un servicio de AWS.

En el siguiente ejemplo de política de bucket de Amazon S3, el acceso al bucket está restringido a menos que la solicitud se origine en `vpc-111bbb22` o provenga de una entidad principal de servicio, como CloudTrail.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "ExpectedNetworkServicePrincipal",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/AWSLogs/AccountNumber/*",
      "Condition": {
        "StringNotEqualsIfExists": {
          "aws:SourceVpc": "vpc-111bbb22",
          "aws:PrincipalServiceName": "cloudtrail.amazonaws.com"
        }
      }
    }
  ]
}
```

------

### aws:PrincipalServiceNamesList
<a name="condition-keys-principalservicenameslist"></a>

Esta clave proporciona una lista de todas las [entidades principales del servicio](reference_policies_elements_principal.md#principal-services) de nombres que pertenecen al servicio. Esta es una clave de condición avanzada. Puede utilizarla para restringir que el servicio acceda a su recurso solo desde una región específica. Algunos servicios pueden crear entidades de servicio regionales para indicar una instancia concreta del servicio dentro de una Región específica. Puede limitar el acceso a un recurso a una instancia concreta del servicio. Cuando una entidad de servicio realiza una solicitud directa a su recurso, el `aws:PrincipalServiceNamesList` contiene una lista desordenada de todos los nombres principales de servicio asociados a la instancia regional del servicio.
+ **Disponibilidad**: esta clave está presente en la solicitud cuando a la llamada la realiza una entidad principal de servicio de AWS. Esta clave no está presente en ninguna otra situación, incluida la siguiente:
  + Si el servicio utiliza un [rol de servicio o un rol vinculado a servicios](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts) para realizar una llamada en nombre de la entidad principal.
  + Si un servicio utiliza las credenciales de una entidad principal de IAM para realizar una solicitud en nombre de la entidad principal.
  + Si a la llamada la realiza directamente una entidad principal de IAM.
  + Si a la llamada la hace un solicitante anónimo.
+ **Tipo de datos**: [cadena](reference_policies_elements_condition_operators.md#Conditions_String) (lista)
+ **Tipo de valor**: multivalor

`aws:PrincipalServiceNamesList` es una clave de condición multivalor. Las claves de condición multivalor pueden tener varios valores en el contexto de la solicitud. Debe utilizar los operadores de servicio `ForAnyValue` o `ForAllValues` con los [operadores de condición de cadena](reference_policies_elements_condition_operators.md#Conditions_String) cuando utilice esta clave. Para obtener más información acerca de las claves de condición multivalor, consulte [Operadores de conjunto para claves de contexto multivalor](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).

### aws:PrincipalType
<a name="condition-keys-principaltype"></a>

Utilice esta clave para comparar el tipo de entidad principal que realiza la solicitud con el tipo de entidad principal que especifique en la política. Para obtener más información, consulte [Cómo especificar una entidad principal](reference_policies_elements_principal.md#Principal_specifying). Para ver ejemplos específicos de valores de clave de `principal`, consulte [Valores clave principales](reference_policies_variables.md#principaltable).
+ **Disponibilidad**: esta clave se incluye en el contexto de solicitud de todas las solicitudes, incluidas las anónimas.
+ **Tipo de datos**: [cadena](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

### aws:userid
<a name="condition-keys-userid"></a>

Utilice esta clave para comparar el identificador principal del solicitante con el ID que especifique en la política. Para los usuarios de IAM, el valor del contexto de la solicitud es el ID de usuario. Para roles de IAM, este formato de valor puede variar. Para obtener más información sobre cómo aparece la información para diferentes entidades principales, consulte [Cómo especificar una entidad principal](reference_policies_elements_principal.md#Principal_specifying). Para ver ejemplos específicos de valores de clave `principal`, consulte [Valores clave principales](reference_policies_variables.md#principaltable).
+ **Disponibilidad**: esta clave se incluye en el contexto de solicitud de todas las solicitudes, incluidas las anónimas.
+ **Tipo de datos**: [cadena](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

### aws:username
<a name="condition-keys-username"></a>

Utilice esta clave para comparar el nombre de usuario del solicitante con el nombre de usuario que especifique en la política. Para obtener más información sobre cómo aparece la información para diferentes entidades principales, consulte [Cómo especificar una entidad principal](reference_policies_elements_principal.md#Principal_specifying). Para ver ejemplos específicos de valores de clave `principal`, consulte [Valores clave principales](reference_policies_variables.md#principaltable).
+ **Disponibilidad**: Esta clave siempre se incluye en el contexto de solicitud para los usuarios de IAM. Las solicitudes anónimas y las solicitudes que se realizan con los roles de IAM o Usuario raíz de la cuenta de AWS no incluyen esta clave. Las solicitudes realizadas con credenciales de IAM Identity Center no incluyen esta clave en el contexto.
+ **Tipo de datos**: [cadena](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

## Propiedades de una sesión de rol
<a name="condition-keys-role-session-properties"></a>

Utilice las siguientes claves de condición para comparar las propiedades de la sesión de rol en el momento en que se generó. Estas claves de condición solo están disponibles cuando la solicitud la realiza una entidad principal con credenciales de sesión de rol o de entidad principal de usuario federado. Los valores de estas claves de condición están integrados en el token de sesión del rol.

Un [rol](reference_policies_elements_principal.md#principal-roles) es un tipo de entidad principal. También puede utilizar las claves de condición de la sección [Propiedades de la entidad principal](#condition-keys-principal-properties) para evaluar las propiedades de un rol cuando este realiza una solicitud.

### aws:AssumedRoot
<a name="condition-keys-assumedroot"></a>

Utilice esta clave para comprobar si la solicitud se realizó mediante [AssumeRoot](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoot.html). `AssumeRoot` devuelve las credenciales a corto plazo de una sesión de usuario raíz con privilegios que puede utilizar para realizar acciones con privilegios en las cuentas de miembros de su organización. Para obtener más información, consulte [Administración de forma centralizada del acceso raíz a las cuentas de miembros](id_root-user.md#id_root-user-access-management).
+ **Disponibilidad**: esta clave se incluye en el contexto de la solicitud solo cuando la entidad principal utiliza credenciales de [AssumeRoot](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoot.html) para realizar la solicitud.
+ **Tipos de datos**: [booleano](reference_policies_elements_condition_operators.md#Conditions_Boolean)
+ **Tipo de valor**: valor único

En el siguiente ejemplo, cuando se usa como política de control de servicios, deniega el uso de las credenciales a largo plazo de un usuario raíz en una cuenta miembro de AWS Organizations. La política no impide que las sesiones de `AssumeRoot` lleven a cabo las acciones permitidas por una sesión de `AssumeRoot`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":[
       {
          "Effect":"Deny",
          "Action":"*",
          "Resource": "*",
          "Condition":{
             "ArnLike":{
                "aws:PrincipalArn":[
                   "arn:aws:iam::*:root"
                ]
             },
             "Null":{
                "aws:AssumedRoot":"true"
             }
          }
       }
    ]
 }
```

------

### aws:FederatedProvider
<a name="condition-keys-federatedprovider"></a>

Utilice esta clave para comparar el proveedor de identidad (IdP) emisor de la entidad principal con el IdP que especifica en la política. Esto significa que se asumió un rol de IAM mediante las operaciones de [https://docs.aws.amazon.com//STS/latest/APIReference/API_AssumeRoleWithWebIdentity](https://docs.aws.amazon.com//STS/latest/APIReference/API_AssumeRoleWithWebIdentity) de AWS STS. Cuando se utilizan las credenciales temporales de la sesión de rol resultante para realizar una solicitud, el contexto de solicitud identifica el IdP que autenticó la identidad federada original.
+ **Disponibilidad**: esta clave está presente en la sesión de rol de un rol que se asumió mediante el proveedor OpenID Connect (OIDC) y en la política de confianza de roles cuando se utiliza un proveedor de OIDC para llamar a `AssumeRoleWithWebIdentity`.
+ **Tipo de datos**: [cadena](reference_policies_elements_condition_operators.md#Conditions_String)\$1
+ **Tipo de valor**: valor único

\$1 El tipo de datos depende del IdP:
+ Si utiliza un IdP de AWS integrado, como [Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html), el valor de la clave será una **cadena**. El valor de la clave podría tener este aspecto: `cognito-identity.amazonaws.com`.
+ Si utiliza un IdP que no está integrado en AWS, como [https://docs.github.com/en/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services](https://docs.github.com/en/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services) o [Amazon EKS](https://docs.aws.amazon.com//eks/latest/userguide/associate-service-account-role.html), el valor de la clave será **ARN**. El valor de la clave podría tener este aspecto: `arn:aws:iam::111122223333:oidc-provider/oidc.eks.region.amazonaws.com/id/OIDC_Provider_ID`.

Para obtener más información sobre los IdP externos y `AssumeRoleWithWebIDentity`, consulte [Escenarios habituales](id_federation_common_scenarios.md). Para obtener más información, consulte [Entidades principales de sesión de rol](reference_policies_elements_principal.md#principal-role-session).

### aws:TokenIssueTime
<a name="condition-keys-tokenissuetime"></a>

Utilice esta clave para comparar la fecha y la hora en que se emitieron las credenciales de seguridad temporales con la fecha y hora que especifique en la política. 
+ **Disponibilidad**: Esta clave se incluye en el contexto de la solicitud solo cuando la entidad principal utiliza credenciales temporales para realizar la solicitud. La clave no está presente en solicitudes de la AWS CLI, la API de AWS o el AWS SDK realizadas con claves de acceso.
+ **Tipo de datos**: [fecha](reference_policies_elements_condition_operators.md#Conditions_Date)
+ **Tipo de valor**: Valor único

Para obtener información sobre los servicios que admiten el uso de credenciales temporales, consulte [Servicios de AWS que funcionan con IAM](reference_aws-services-that-work-with-iam.md).

### aws:MultiFactorAuthAge
<a name="condition-keys-multifactorauthage"></a>

Utilice esta clave para comparar el número de segundos desde que se autorizó a la entidad principal solicitante mediante MFA con el número especificado en la política. Para obtener más información acerca de MFA, consulte [Autenticación multifactor de AWS en IAM](id_credentials_mfa.md).

**importante**  
Esta clave de condición no está presente en las identidades federadas ni en las solicitudes realizadas con claves de acceso para firmar solicitudes de la CLI de AWS, la API de AWS o el AWS SDK. Para obtener más información sobre cómo añadir la protección de MFA a las operaciones de la API con credenciales de seguridad temporales, consulte [Acceso seguro a la API con MFA](id_credentials_mfa_configure-api-require.md).  
Para comprobar si la MFA se utiliza para validar las identidades federadas de IAM, puede pasar el método de autenticación de su proveedor de identidad a AWS como una etiqueta de sesión. Para obtener más información, consulte [Transferencia de etiquetas de sesión en AWS STS](id_session-tags.md). Para aplicar la MFA a las identidades de IAM Identity Center, puede [habilitar los atributos de control de acceso](https://docs.aws.amazon.com/singlesignon/latest/userguide/configure-abac.html) para que pasen una reclamación de confirmación de SAML con el método de autenticación de su proveedor de identidad a IAM Identity Center.
+ **Disponibilidad**: esta clave se incluye en el contexto de la solicitud solo cuando la entidad principal utiliza [credenciales temporales de seguridad](id_credentials_temp.md) para realizar la solicitud. Las políticas con condiciones de MFA se pueden asociar a los siguientes elementos:
  + Un usuario o grupo de IAM
  + Un recurso, como un bucket de Amazon S3, una cola de Amazon SQS o un tema de Amazon SNS
  + La política de confianza de un rol de IAM que un usuario puede asumir
+ **Tipos de datos**: [numéricos](reference_policies_elements_condition_operators.md#Conditions_Numeric)
+ **Tipo de valor**: valor único

### aws:MultiFactorAuthPresent
<a name="condition-keys-multifactorauthpresent"></a>

Utilice esta clave para comprobar si se utilizó la autenticación multifactor (MFA) para validar las [ credenciales de seguridad temporales](id_credentials_temp.md) que realizó la solicitud.

**importante**  
Esta clave de condición no está presente en las identidades federadas ni en las solicitudes realizadas con claves de acceso para firmar solicitudes de la CLI de AWS, la API de AWS o el AWS SDK. Para obtener más información sobre cómo añadir la protección de MFA a las operaciones de la API con credenciales de seguridad temporales, consulte [Acceso seguro a la API con MFA](id_credentials_mfa_configure-api-require.md).  
Para comprobar si la MFA se utiliza para validar las identidades federadas de IAM, puede pasar el método de autenticación de su proveedor de identidad a AWS como una etiqueta de sesión. Para obtener más información, consulte [Transferencia de etiquetas de sesión en AWS STS](id_session-tags.md). Para aplicar la MFA a las identidades del IAM Identity Center, puede [habilitar los atributos de control de acceso](https://docs.aws.amazon.com/singlesignon/latest/userguide/configure-abac.html) para que pasen una reclamación de confirmación de SAML con el método de autenticación de su proveedor de identidad al IAM Identity Center.
+ **Disponibilidad**: esta clave se incluye en el contexto de la solicitud solo cuando la entidad principal utiliza credenciales temporales para realizar la solicitud. Las políticas con condiciones de MFA se pueden asociar a los siguientes elementos:
  + Un usuario o grupo de IAM
  + Un recurso, como un bucket de Amazon S3, una cola de Amazon SQS o un tema de Amazon SNS
  + La política de confianza de un rol de IAM que un usuario puede asumir
+ **Tipos de datos**: [booleano](reference_policies_elements_condition_operators.md#Conditions_Boolean)
+ **Tipo de valor**: valor único

Las credenciales temporales se utilizan para autenticar roles de IAM y usuarios de IAM con tokens temporales de [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) o de [GetSessionToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html) y de usuarios de la Consola de administración de AWS.

Las claves de acceso de usuarios de IAM son credenciales a largo plazo, pero en algunos casos, AWS crea credenciales temporales en nombre de los usuarios de IAM para realizar operaciones. En estos casos, la clave `aws:MultiFactorAuthPresent` está presente en la solicitud y se establece en un valor de `false`. Hay dos casos frecuentes en los que esto puede suceder:
+ Los usuarios de IAM sin saberlo, usan credenciales temporales en la Consola de administración de AWS. Los usuarios inician sesión en la consola con su nombre de usuario y contraseña, que son credenciales a largo plazo. Sin embargo, en segundo plano, la consola genera credenciales temporales en nombre del usuario. 
+ Si un usuario de IAM realiza una llamada a un servicio de AWS, el servicio vuelve a utilizar las credenciales del usuario para realizar otra solicitud a un servicio diferente. Por ejemplo, cuando se llama a Athena para obtener acceso a un bucket de Amazon S3 o cuando se usa CloudFormation para crear una instancia de Amazon EC2. Para la próxima solicitud, AWS utiliza credenciales temporales.

Para obtener información sobre los servicios que admiten el uso de credenciales temporales, consulte [Servicios de AWS que funcionan con IAM](reference_aws-services-that-work-with-iam.md).

La clave `aws:MultiFactorAuthPresent` nunca está presente cuando se llama a una API o a un comando de la CLI con credenciales a largo plazo, como los pares de claves de acceso de usuario. Por lo tanto, recomendamos que cuando compruebe esta clave utilice las versiones `...IfExists` de los operadores de condición.

Es importante entender que el siguiente elemento `Condition` ***no*** es una forma fiable de comprobar si una solicitud se ha autenticado mediante MFA.

```
#####   WARNING: NOT RECOMMENDED   #####
"Effect" : "Deny",
"Condition" : { "Bool" : { "aws:MultiFactorAuthPresent" : "false" } }
```

Esta combinación del efecto `Deny`, el elemento `Bool` y el valor `false` deniega las solicitudes que se pueden autenticar con MFA, pero que no han sido autenticadas de ese modo. Se aplica únicamente a las credenciales temporales que admiten el uso de MFA. Esta instrucción no deniega el acceso a las solicitudes realizadas con las credenciales a largo plazo ni a las solicitudes que se han autenticado con MFA. Utilice este ejemplo con precaución ya que su lógica es complicada y no comprueba si realmente se usó la autenticación tipo MFA. 

Además no utilice la combinación del efecto `Deny`, el elemento `Null` y `true` ya que se comporta de la misma manera y la lógica es incluso más complicada.

**Combinación recomendada**  
Recomendamos utilizar el operador [`BoolIfExists`](reference_policies_elements_condition_operators.md#Conditions_IfExists) para comprobar si se ha autenticado una solicitud con MFA.

```
"Effect" : "Deny",
"Condition" : { "BoolIfExists" : { "aws:MultiFactorAuthPresent" : "false" } }
```

Esta combinación de `Deny`, `BoolIfExists` y `false` deniega las solicitudes que no están autenticadas con MFA. En concreto, deniega las solicitudes de credenciales temporales que no incluyen MFA. También deniega las solicitudes realizadas con credenciales a largo plazo, como las operaciones de la AWS CLI o de la API de AWS realizadas con claves de acceso. El operador `*IfExists` comprueba la presencia de la clave `aws:MultiFactorAuthPresent` y si podría estar presente o no, como lo indica su existencia. Utilícelo cuando desee denegar solicitudes que no están autenticadas con MFA. Esto es más seguro, pero puede interrumpir cualquier código o script que utilice claves de acceso para obtener acceso a la AWS CLI o la API de AWS. 

**Combinaciones alternativas**  
También puede utilizar el operador [`BoolIfExists`](reference_policies_elements_condition_operators.md#Conditions_IfExists) para permitir solicitudes autenticadas con MFA y solicitudes de la AWS CLI o la API de AWS realizadas con las credenciales a largo plazo.

```
"Effect" : "Allow",
"Condition" : { "BoolIfExists" : { "aws:MultiFactorAuthPresent" : "true" } }
```

Esta condición coincide tanto si la clave existe y está presente **como** si la clave no existe. Esta combinación de `Allow`, `BoolIfExists` y `true` permite solicitudes autenticadas mediante MFA o solicitudes que no pueden autenticarse con MFA. Esto significa que las operaciones de la AWS CLI, la API de AWS y el AWS SDK están permitidas cuando el solicitante utiliza sus claves de acceso a largo plazo. Esta combinación no permite solicitudes de credenciales temporales que podrían, pero no incluyen MFA. 

Al crear una política con el editor visual de la consola de IAM y elegir **MFA requerida**, se aplica esta combinación. Esta configuración requiere MFA para acceso a la consola, pero permite el acceso mediante programación sin MFA. 

También puede utilizar el operador `Bool` para permitir solicitudes programáticas y de consola solo cuando se autentique mediante MFA.

```
"Effect" : "Allow",
"Condition" : { "Bool" : { "aws:MultiFactorAuthPresent" : "true" } }
```

Esta combinación de `Allow`, `Bool` y `true` permite solo las solicitudes autenticadas con MFA. Se aplica únicamente a las credenciales temporales que admiten el uso de MFA. Esta instrucción no permite el acceso a las solicitudes realizadas con las claves de acceso a largo plazo ni a las solicitudes realizadas con credenciales temporales sin MFA. 

***No*** utilice una estructura de política similar a la siguiente para comprobar si la clave de MFA está presente:

```
#####   WARNING: USE WITH CAUTION   #####

"Effect" : "Allow",
"Condition" : { "Null" : { "aws:MultiFactorAuthPresent" : "false" } }
```

Esta combinación del efecto `Allow`, el elemento `Null` y el valor `false` permite únicamente las solicitudes que se pueden autenticar con MFA, independientemente de si la solicitud está, de hecho, autenticada. Esto permite todas las solicitudes que se realizan con credenciales temporales y deniega el acceso para las credenciales a largo plazo. Utilice este ejemplo con precaución ya que no comprueba si realmente se usó la autenticación tipo MFA. 

### aws:ChatbotSourceArn
<a name="condition-keys-chatbotsourcearn"></a>

Utilice esta clave para comparar el ARN de la configuración de chat de origen establecido por la entidad principal con el ARN de la configuración de chat que usted especifique en la política del rol de IAM asociado a la configuración de su canal. Puede autorizar las solicitudes en función de la sesión de asumir el rol iniciada por Amazon Q Developer en aplicaciones de chat.
+ **Disponibilidad**: el servicio de Amazon Q Developer en aplicaciones de chat incluye esta clave en el contexto de la solicitud cada vez que se asume una sesión de rol. El valor de la clave es el ARN de la configuración del chat, por ejemplo, cuando se [ejecuta un comando AWS CLI desde un canal de chat](https://docs.aws.amazon.com/chatbot/latest/adminguide/chatbot-cli-commands.html).
+ **Tipo de datos**: [ARN](reference_policies_elements_condition_operators.md#Conditions_ARN)
+ **Tipo de valor**: valor único
+ **Ejemplo de valor** – `arn:aws::chatbot::123456789021:chat-configuration/slack-channel/private_channel`

La siguiente política deniega las solicitudes de colocación de Amazon S3 en el bucket especificado para todas las solicitudes que se originen en un canal de Slack.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ExampleS3Deny",
            "Effect": "Deny",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Condition": {
                "ArnLike": {
                      "aws:ChatbotSourceArn": "arn:aws:chatbot::*:chat-configuration/slack-channel/*"
                }
            }
        }
    ]
}
```

------

### aws:Ec2InstanceSourceVpc
<a name="condition-keys-ec2instancesourcevpc"></a>

Esta clave identifica la VPC a la que se entregaron las credenciales del rol de IAM de Amazon EC2. Puede usar esta clave en una política con la clave global [`aws:SourceVPC`](#condition-keys-sourcevpc) para comprobar si se realiza una llamada desde una VPC (`aws:SourceVPC`) que coincide con la VPC a la que se entregó la credencial (`aws:Ec2InstanceSourceVpc`).
+ **Disponibilidad**: Esta clave se incluye en el contexto de la solicitud cuando el solicitante firma las solicitudes con una credencial de rol de Amazon EC2. Se puede utilizar en políticas de IAM, políticas de control de servicios, políticas de punto de conexión de VPC y políticas de recursos.
+ **Tipo de datos**: [cadena](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

Esta clave se puede usar con los valores del identificador de VPC, pero es más útil cuando se usa como una variable combinada con la clave de contexto `aws:SourceVpc`. La clave de contexto `aws:SourceVpc` se incluye en el contexto de la solicitud solo si el solicitante utiliza un punto de conexión de VPC para realizar la solicitud. Usar `aws:Ec2InstanceSourceVpc` con `aws:SourceVpc` permite un uso de `aws:Ec2InstanceSourceVpc` más amplio, ya que compara valores que normalmente cambian juntos.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "RequireSameVPC",
      "Effect": "Deny",
      "Action": "*",
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
            "aws:SourceVpc": "${aws:Ec2InstanceSourceVpc}"
        },
        "Null": {
          "ec2:SourceInstanceARN": "false"
        },
        "BoolIfExists": {
          "aws:ViaAWSService": "false"
        }
      }
    }
  ]
}
```

------

En el ejemplo anterior, se deniega el acceso si el valor `aws:SourceVpc` no es igual al valor `aws:Ec2InstanceSourceVpc`. La instrucción de política se limita únicamente a los roles que se utilizan como roles de instancia de Amazon EC2 al comprobar la existencia de la clave de condición `ec2:SourceInstanceARN`.

La política utiliza `aws:ViaAWSService` para permitir que AWS autorice solicitudes cuando las solicitudes se realizan en nombre de sus roles de instancia de Amazon EC2. Por ejemplo, cuando realiza una solicitud desde una instancia de Amazon EC2 a un bucket de Amazon S3 cifrado, Amazon S3 realiza una llamada a AWS KMS en su nombre. Algunas de las claves no están presentes cuando se hace la solicitud a AWS KMS.

### aws:Ec2InstanceSourcePrivateIPv4
<a name="condition-keys-ec2instancesourceprivateip4"></a>

Esta clave identifica la dirección IPv4 privada de la interfaz de red elástica principal a la que se entregaron las credenciales del rol de IAM de Amazon EC2. Debe usar esta clave de condición con su clave complementaria `aws:Ec2InstanceSourceVpc` para garantizar que tiene una combinación única global de ID de VPC e IP privada de origen. Utilice esta clave con `aws:Ec2InstanceSourceVpc` para asegurarse de que la solicitud se haya realizado desde la misma dirección IP privada a la que se entregaron las credenciales.
+ **Disponibilidad**: esta clave se incluye en el contexto de la solicitud cuando el solicitante firma las solicitudes con una credencial de rol de Amazon EC2. Se puede utilizar en políticas de IAM, políticas de control de servicios, políticas de punto de conexión de VPC y políticas de recursos.
+ **Tipo de datos**: [dirección IP](reference_policies_elements_condition_operators.md#Conditions_IPAddress)
+ **Tipo de valor**: valor único

**importante**  
Esta clave no debe usarse sola en una instrucción `Allow`. Las direcciones IP privadas, por definición, no son únicas a nivel global. Debe utilizar la clave `aws:Ec2InstanceSourceVpc` cada vez que utilice la clave `aws:Ec2InstanceSourcePrivateIPv4` para especificar la VPC desde la que se pueden usar las credenciales de la instancia de Amazon EC2.

El siguiente ejemplo es una política de control de servicio (SCP) que deniega el acceso a todos los recursos, a menos que la solicitud llegue a través de un punto de conexión de VPC en la misma VPC que las credenciales del rol. En este ejemplo, `aws:Ec2InstanceSourcePrivateIPv4` limita el origen de credenciales a una instancia concreta en función de la IP de origen.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action":  "*",
            "Resource": "*",
            "Condition": {
                "StringNotEquals": {
                    "aws:Ec2InstanceSourceVpc": "${aws:SourceVpc}"
                },                
                "Null": {
                    "ec2:SourceInstanceARN": "false"
                },
                "BoolIfExists": {
                    "aws:ViaAWSService": "false"
                }
            }
        },
        {
            "Effect": "Deny",
            "Action":  "*",
            "Resource": "*",
            "Condition": {
                "StringNotEquals": {
                    "aws:Ec2InstanceSourcePrivateIPv4": "${aws:VpcSourceIp}"
                },                               
                "Null": {
                    "ec2:SourceInstanceARN": "false"
                },
                "BoolIfExists": {
                    "aws:ViaAWSService": "false"
                }
            }
        }
    ]
}
```

------

### aws:SourceIdentity
<a name="condition-keys-sourceidentity"></a>

Utilice esta clave para comparar la identidad de origen establecida por la entidad principal con la identidad de origen que usted especifique en la política. 
+ **Disponibilidad**: esta clave se incluye en el contexto de la solicitud después de establecer una identidad de origen cuando se asume un rol utilizando cualquier comando de la CLI de assume-role de AWS STS, o una operación de la API de `AssumeRole` de AWS STS.
+ **Tipo de datos**: [cadena](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

Puede utilizar esta clave en una política para permitir acciones en AWS por entidades que han establecido una identidad de origen al asumir un rol. La actividad de la identidad de origen especificada del rol aparece en [AWS CloudTrail](cloudtrail-integration.md#cloudtrail-integration_signin-tempcreds). Esto facilita a los administradores determinar quién o qué ha realizado acciones con un rol en AWS.

A diferencia de [`sts:RoleSessionName`](reference_policies_iam-condition-keys.md#ck_rolesessionname), después de establecer la identidad de origen, el valor no se puede cambiar. Está presente en el contexto de la solicitud de todas las acciones tomadas por el rol. 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). 

La clave [`sts:SourceIdentity`](reference_policies_iam-condition-keys.md#ck_sourceidentity) está presente en la solicitud cuando la entidad principal establece inicialmente una identidad de origen mientras asume un rol utilizando cualquier comando assume-role CLI AWS STS, o una operación AWS STS de API `AssumeRole`. La clave `aws:SourceIdentity` presente en la solicitud de cualquier acción que se realice con una sesión de rol que tenga un conjunto de identidad de origen.

La siguiente política de confianza de rol de `CriticalRole` en la cuenta `111122223333` contiene una condición para `aws:SourceIdentity` que impide que una entidad principal sin una identidad de origen establecida para Saanvi o Diego asuma el rol.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AssumeRoleIfSourceIdentity",
            "Effect": "Allow",
            "Principal": {"AWS": "arn:aws:iam::123456789012:role/CriticalRole"},
            "Action": [
                "sts:AssumeRole",
                "sts:SetSourceIdentity"
            ],
            "Condition": {
                "StringLike": {
                    "aws:SourceIdentity": ["Saanvi","Diego"]
                }
            }
        }
    ]
}
```

------

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

### ec2:RoleDelivery
<a name="condition-keys-ec2-role-delivery"></a>

Utilice esta clave para comparar la versión del servicio de metadatos de instancia en la solicitud firmada con las credenciales del rol de IAM para Amazon EC2. El servicio de metadatos de la instancia distingue entre solicitudes IMDSv1 y IMDSv2 en función de si, en cualquier solicitud, los encabezados `PUT` o `GET`, que son exclusivos de IMDSv2, están presentes en dicha solicitud.
+ **Disponibilidad**: esta clave forma parte del contexto de la solicitud cada vez que una instancia de Amazon EC2 crea la sesión de rol.
+ **Tipos de datos**: [numéricos](reference_policies_elements_condition_operators.md#Conditions_Numeric)
+ **Tipo de valor**: valor único
+ **Valores de ejemplo** – 1.0, 2.0

Puede configurar el servicio de metadatos de instancias (IMDS) en cada instancia para que el código local o los usuarios deban usar IMDSv2. Si especifica que debe usarse IMDSv2, IMDSv1 dejará de funcionar.
+ Servicio de metadatos de instancia, versión 1 (IMDSv1): un método de solicitud y respuesta 
+ Servicio de metadatos de instancia, versión 2 (IMDSv2): un método orientado a la sesión

Para obtener información sobre cómo configurar su instancia para usar IMDSv2, consulte [Configurar las opciones de metadatos de la instancia](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-options.html).

En el siguiente ejemplo, se deniega el acceso si el valor ec2:RoleDelivery en el contexto de la solicitud es 1.0 (IMDSv1). Esta declaración de política puede aplicarse de manera general porque, si la solicitud no está firmada por las credenciales de rol de Amazon EC2, no tiene efecto.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
               {
            "Sid": "RequireAllEc2RolesToUseV2",
            "Effect": "Deny",
            "Action": "*",
            "Resource": "*",
            "Condition": {
                "NumericLessThan": {
                    "ec2:RoleDelivery": "2.0"
                }
            }
        }
    ]
}
```

------

Para obtener más información, consulte [Ejemplos de políticas para trabajar con metadatos de instancia](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ExamplePolicies_EC2.html#iam-example-instance-metadata).

### ec2:SourceInstanceArn
<a name="condition-keys-ec2-source-instance-arn"></a>

Utilice esta clave para comparar el ARN de la instancia en la cual se generó la sesión del rol.
+ **Disponibilidad**: esta clave forma parte del contexto de la solicitud cada vez que una instancia de Amazon EC2 crea la sesión de rol.
+ **Tipo de datos**: [ARN](reference_policies_elements_condition_operators.md#Conditions_ARN)
+ **Tipo de valor**: valor único
+ **Valor de ejemplo**: arn:aws::ec2:us-west-2:111111111111:instance/instance-id

Para ver ejemplos de políticas, consulte [Permitir que una instancia específica vea recursos en otros servicios de AWS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ExamplePolicies_EC2.html#iam-example-source-instance).

### glue:RoleAssumedBy
<a name="condition-keys-glue-role-assumed-by"></a>

El servicio de AWS Glue establece esta clave de condición para cada solicitud de API de AWS donde AWS Glue realiza una solicitud mediante un rol de servicio en nombre del cliente (no a través de una tarea o un punto de conexión de desarrollador, sino directamente a través del servicio de AWS Glue). Utilice esta clave para verificar si una llamada a un recurso de AWS proviene del servicio de AWS Glue.
+ **Disponibilidad**: esta clave se incluye en el contexto de la solicitud cuando AWS Glue realiza una solicitud mediante un rol de servicio en nombre del cliente.
+ **Tipo de datos**: [cadena](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único
+ **Ejemplo de valor**: esta clave siempre se establece como `glue.amazonaws.com`.

En el siguiente ejemplo se añade una condición para permitir que el servicio de AWS Glue obtenga un objeto de un bucket de Amazon S3.

```
{
    "Effect": "Allow",
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
    "Condition": {
        "StringEquals": {
            "glue:RoleAssumedBy": "glue.amazonaws.com"
        }
    }
}
```

### glue:CredentialIssuingService
<a name="condition-keys-glue-credential-issuing"></a>

El servicio de AWS Glue establece esta clave para cada solicitud de API de AWS que utiliza un rol de servicio que proviene de una tarea o un punto de conexión de desarrollador. Utilice esta clave para verificar si una llamada a un recurso de AWS provino de una tarea de AWS Glue o de un punto de conexión de desarrollador.
+ **Disponibilidad**: esta clave se incluye en el contexto de la solicitud cuando AWS Glue realiza una solicitud que proviene de una tarea o un punto de conexión de desarrollador.
+ **Tipo de datos**: [cadena](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único
+ **Ejemplo de valor**: esta clave siempre se establece como `glue.amazonaws.com`.

En el siguiente ejemplo, se agrega una condición que está asociada a un rol de IAM que utiliza una tarea de AWS Glue. Esto garantiza que se permitan o denieguen determinadas acciones en función de si la sesión de rol se utiliza para el entorno de tiempo de ejecución de un trabajo de AWS Glue.

```
{
    "Effect": "Allow",
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
    "Condition": {
        "StringEquals": {
            "glue:CredentialIssuingService": "glue.amazonaws.com"
        }
    }
}
```

### codebuild:BuildArn
<a name="condition-keys-codebuild-build-arn"></a>

Utilice esta clave para identificar el ARN de la compilación de CodeBuild al que se entregaron las credenciales del rol de IAM. Utilice esta clave para verificar si una llamada a un recurso de AWS proviene de una compilación de CodeBuild específica.

**nota**  
No se conoce de antemano el valor total de `codebuild:BuildArn` porque contiene el ID de compilación generado dinámicamente.
+ **Disponibilidad**: esta clave se incluye en el contexto de la solicitud cuando un rol asumido por CodeBuild realiza una solicitud.
+ **Tipo de datos**: [ARN](reference_policies_elements_condition_operators.md#Conditions_ARN)
+ **Tipo de valor**: valor único
+ **Valor de ejemplo**: arn:aws:codebuild:us-east-1:123456789012:build/MyBuildProject:12345678-1234-1234-1234-123456789012

En el siguiente ejemplo se muestra cómo se permite que una compilación de CodeBuild específica tenga acceso de `s3:GetObject` al bucket especificado.

```
{
    "Effect": "Allow",
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
    "Condition": {
        "ArnLike": {
            "codebuild:BuildArn": "arn:aws:codebuild:us-east-1:123456789012:build/MyBuildProject:*"
        }
    }
}
```

### codebuild:ProjectArn
<a name="condition-keys-codebuild-project-arn"></a>

Utilice esta clave para identificar el ARN del proyecto de CodeBuild al que se entregaron las credenciales del rol de IAM. Utilice esta clave para verificar si una llamada a un recurso de AWS proviene de un proyecto de CodeBuild específico.
+ **Disponibilidad**: esta clave se incluye en el contexto de la solicitud cuando un rol asumido por CodeBuild realiza una solicitud.
+ **Tipo de datos**: [ARN](reference_policies_elements_condition_operators.md#Conditions_ARN)
+ **Tipo de valor**: valor único
+ **Valor de ejemplo**: arn:aws:codebuild:us-east-1:123456789012:project/MyBuildProject

En el siguiente ejemplo se muestra cómo se permite que cualquier compilación de un proyecto de CodeBuild específico tenga acceso de `s3:GetObject` al bucket especificado.

```
{
    "Effect": "Allow",
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
    "Condition": {
        "ArnEquals": {
            "codebuild:ProjectArn": "arn:aws:codebuild:us-east-1:123456789012:project/MyBuildProject"
        }
    }
}
```

### lambda:SourceFunctionArn
<a name="condition-keys-lambda-source-function-arn"></a>

Utilice esta clave para identificar el ARN de la función de Lambda a la que se entregaron las credenciales del rol de IAM. El servicio de Lambda establece esta clave para cada solicitud de API de AWS que provenga del entorno de ejecución de la función. Utilice esta clave para verificar si una llamada a un recurso de AWS proviene del código de una función de Lambda específica. Lambda también establece esta clave para algunas solicitudes que provienen de fuera del entorno de ejecución, como escribir registros en CloudWatch y enviar seguimientos a X-Ray.
+ **Disponibilidad**: esta clave se incluye en el contexto de la solicitud cuando se invoca el código de la función de Lambda.
+ **Tipo de datos**: [ARN](reference_policies_elements_condition_operators.md#Conditions_ARN)
+ **Tipo de valor**: valor único
+ **Valor de ejemplo**: arn:aws:lambda:us-east-1:123456789012:function:TestFunction

En el siguiente ejemplo se muestra cómo se permite que una función de Lambda específica tenga acceso `s3:PutObject` al bucket especificado.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ExampleSourceFunctionArn",
            "Effect": "Allow",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Condition": {
                "ArnEquals": {
                    "lambda:SourceFunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:source_lambda"
                }
            }
        }
    ]
}
```

------

Para obtener más información, consulte [Uso de las credenciales del entorno de ejecución de Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html#permissions-executionrole-source-function-arn) en la *Guía para desarrolladores de AWS Lambda*.

### ssm:SourceInstanceArn
<a name="condition-keys-ssm-source-instance-arn"></a>

Utilice esta clave para identificar el ARN de la instancia administrada por AWS Systems Manager a la que se entregaron las credenciales del rol de IAM. Esta clave de condición no está presente cuando la solicitud proviene de una instancia administrada con un rol de IAM asociado a un perfil de instancia de Amazon EC2.
+ **Disponibilidad**: esta clave aparece en el contexto de la solicitud siempre que se entregan las credenciales de rol a una instancia administrada por AWS Systems Manager.
+ **Tipo de datos**: [ARN](reference_policies_elements_condition_operators.md#Conditions_ARN)
+ **Tipo de valor**: valor único
+ **Valor de ejemplo**: arn:aws::ec2:us-west-2:111111111111:instance/instance-id

### identitystore:UserId
<a name="condition-keys-identity-store-user-id"></a>

Utilice esta clave para comparar la identidad del personal del IAM Identity Center en la solicitud firmada con la identidad especificada en la política. 
+ **Disponibilidad**: esta clave se incluye cuando la persona que llama a la solicitud es un usuario del IAM Identity Center.
+ **Tipo de datos**: [cadena](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único
+ **Valor de ejemplo**: 94482488-3041-7026-18f3-be45837cd0e4

Puede encontrar el ID de usuario de un usuario del IAM Identity Center al realizar una solicitud a la API [GetUserID](https://docs.aws.amazon.com//singlesignon/latest/IdentityStoreAPIReference/API_GetUserId.html) mediante la AWS CLI, la API de AWS o el AWS SDK.

## Propiedades de la red
<a name="condition-keys-network-properties"></a>

Utilice las siguientes claves de condición para comparar los detalles de la red desde la que se originó o por la que pasó la solicitud con las propiedades de red que especifique en la política.

### aws:SourceIp
<a name="condition-keys-sourceip"></a>

Utilice esta clave para comparar la dirección IP del solicitante con la dirección IP que especifique en la política. La clave de condición `aws:SourceIp` solo puede utilizarse para rangos de direcciones IP públicas.
+ **Disponibilidad**: esta clave se incluye en el contexto de la solicitud, excepto cuando el solicitante utiliza un punto de conexión de VPC para realizar la solicitud.
+ **Tipo de datos**: [dirección IP](reference_policies_elements_condition_operators.md#Conditions_IPAddress)
+ **Tipo de valor**: valor único

La clave de condición `aws:SourceIp` se puede utilizar en una política para permitir que las entidades principales realicen solicitudes solo desde un rango de IP especificado.

**nota**  
`aws:SourceIp` admite tanto las direcciones IPv4 como IPv6 o un rango de direcciones IP. Para obtener una lista de los Servicios de AWS que admiten IPv6, consulte los [Servicios de AWS que admiten IPv6](https://docs.aws.amazon.com/vpc/latest/userguide/aws-ipv6-support.html) en la *Guía del usuario de Amazon VPC*.

Por ejemplo, puede asociar la siguiente política basada en identidades a un rol de IAM. Esta política permite al usuario colocar objetos en el bucket de Amazon S3 `amzn-s3-demo-bucket3` si realiza la llamada desde el intervalo de dirección IPv4 especificado. Esta política también permite que un servicio de AWS que utilice [Sesiones de acceso directo](access_forward_access_sessions.md) realice esta operación en su nombre.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "PrincipalPutObjectIfIpAddress",
            "Effect": "Allow",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket3/*",
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": "203.0.113.0/24"
                }
            }
        }
    ]
}
```

------

Si necesita restringir el acceso desde redes que admiten direcciones IPv4 e IPv6, puede incluir las direcciones IPv4 e IPv6 o los intervalos de direcciones IP en la condición de la política de IAM. La siguiente política basada en identidades permitirá al usuario colocar objetos en el bucket de Amazon S3 `amzn-s3-demo-bucket3` si el usuario realiza la llamada desde intervalos de direcciones IPv4 o IPv6 especificados. Antes de incluir los intervalos de direcciones IPv6 en su política de IAM, compruebe que el Servicio de AWS con el que está trabajando admita IPv6. Para obtener una lista de los Servicios de AWS que admiten IPv6, consulte los [Servicios de AWS que admiten IPv6](https://docs.aws.amazon.com/vpc/latest/userguide/aws-ipv6-support.html) en la *Guía del usuario de Amazon VPC*.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "PrincipalPutObjectIfIpAddress",
            "Effect": "Allow",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket3/*",
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": [
                        "203.0.113.0/24",
                        "2001:DB8:1234:5678::/64"
                    ]
                }
            }
        }
    ]
}
```

------

Si la solicitud proviene de un host que utiliza un punto de conexión de Amazon VPC, entonces la clave `aws:SourceIp` no estará disponible. En su lugar, debe utilizar una clave específica de la VPC, como [aws:VpcSourceIp](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-vpcsourceip). Para obtener más información acerca del uso de puntos de conexión de VPC, consulte [Administración de identidades y accesos para puntos de conexión de VPC y servicios de punto de conexión de VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-iam.html) en la *Guía de AWS PrivateLink*.

**nota**  
Cuando Servicios de AWS realizan llamadas a otros Servicios de AWS en su nombre (llamadas de servicio a servicio), se omite cierta información del contexto de autorización específica de red. Si la política utiliza esta clave de condición con declaraciones `Deny`, es posible que se bloqueen involuntariamente entidades principales de Servicio de AWS. Para permitir que los Servicios de AWS funcionen correctamente sin comprometer los requisitos de seguridad, excluya las entidades principales de servicio de las declaraciones `Deny`. Para ello, agregue la clave de condición `aws:PrincipalIsAWSService` con un valor de `false`.

### aws:SourceVpc
<a name="condition-keys-sourcevpc"></a>

Utilice esta clave para comprobar si la solicitud pasa por la VPC a la que está asociado el punto de conexión de VPC. En una política, puede utilizar esta clave para permitir el acceso solo a una VPC específica. Para obtener más información, consulte [Restricciones de acceso a una VPC específica](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies-vpc-endpoint.html#example-bucket-policies-restrict-access-vpc) en la *Guía del usuario de Amazon Simple Storage Service*. 
+ **Disponibilidad**: esta clave se incluye en el contexto de la solicitud solo si el solicitante utiliza un punto de conexión de VPC para realizar la solicitud.
+ **Tipo de datos**: [cadena](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

Esta clave se puede utilizar en una política para permitir o restringir el acceso a una VPC específica.

Por ejemplo, puede asociar la siguiente política basada en identidades a un rol de IAM para denegar `PutObject` al bucket de Amazon S3 `amzn-s3-demo-bucket3`, a menos que la solicitud se realice desde el ID de VPC especificado o por parte de un Servicios de AWS que utilice [sesiones de acceso directo (FAS)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html) para realizar solicitudes en nombre del rol. A diferencia de lo que ocurre con [aws:SourceIp](#condition-keys-sourceip), se debe utilizar [aws:ViaAWSService](#condition-keys-viaawsservice) o [aws:CalledVia](#condition-keys-calledvia) para permitir solicitudes de sesiones de acceso directo, dado que la VPC de origen de la solicitud inicial no se conserva.

**nota**  
Esta política no permite ninguna acción. Utilice esta política en combinación con otras políticas que permiten acciones específicas.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "PutObjectIfNotVPCID",
      "Effect": "Deny",
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket3/*",
      "Condition": {
        "StringNotEqualsIfExists": {
          "aws:SourceVpc": "vpc-1234567890abcdef0"
        },
        "Bool": {
          "aws:ViaAWSService": "false"
        }
      }
    }
  ]
}
```

------

**nota**  
AWS recomienda usar `aws:SourceVpcArn` en lugar de `aws:SourceVpc` si `aws:SourceVpcArn` es compatible con el servicio al que se dirige. Consulte [aws:SourceVpcArn](#condition-keys-sourcevpcarn) para ver la lista de servicios compatibles.

### aws:SourceVpcArn
<a name="condition-keys-sourcevpcarn"></a>

Use esta clave para verificar el ARN de la VPC a través de la cual se hizo una solicitud mediante un punto de conexión de VPC. Esta clave devuelve el ARN de la VPC a la que está adjunto el punto de conexión de VPC.
+ **Disponibilidad**: esta clave se incluye en el contexto de la solicitud de los servicios compatibles cuando una solicitud se hace mediante un punto de conexión de VPC. La clave no se incluye para las solicitudes realizadas a través de puntos de conexión de servicio público. Los siguientes servicios admiten esta clave:
  + AWS App Runner (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html))
  + AWS Application Discovery Service (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html))
  + Amazon Athena (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html))
  + AWS Cloud Map (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html))
  + Información de aplicaciones de Amazon CloudWatch (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html))
  + AWS CloudFormation (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html))
  + Amazon Comprehend Medical (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html))
  + AWS Compute Optimizer (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html))
  + Amazon Elastic Container Registry (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html))
  + Amazon Elastic Container Service (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html))
  + Amazon Kinesis Analytics (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html))
  + Amazon Route 53 (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html))
  + AWS DataSync (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html))
  + Amazon Elastic Block Store (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html))
  + Programador de Amazon EventBridge (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html))
  + Amazon Data Firehose (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html))
  + AWS HealthImaging (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html))
  + AWS HealthLake (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html))
  + AWS HealthOmics (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html))
  + AWS Identity and Access Management (salvo la acción `iam:PassRole`) (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html))
  + AWS IoT FleetWise (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html))
  + AWS IoT Wireless (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html))
  + AWS Key Management Service (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html))
  + AWS Lambda (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html))
  + AWS Payment Cryptography (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html))
  + Amazon Polly (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html))
  + AWS Private Certificate Authority (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html))
  + AWS Papelera de reciclaje de (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html))
  + Amazon Rekognition (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html))
  + Service Quotas (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html))
  + Amazon Simple Storage Service (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html))
  + AWS Storage Gateway (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html))
  + Administrador de incidentes de AWS Systems Manager Contactos de (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html))
  + Amazon Textract (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html))
  + Amazon Transcribe (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html))
  + AWS Transfer Family (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html))
+ **Tipo de datos**: ARN

  AWS recomienda utilizar [operadores de ARN](reference_policies_elements_condition_operators.md#Conditions_ARN) en lugar de [operadores de cadenas](reference_policies_elements_condition_operators.md#Conditions_String) al comparar los ARN.
+ **Tipo de valor**: valor único
+ **Ejemplo de valor** – `arn:aws:ec2:us-east-1:123456789012:vpc/vpc-0e9801d129EXAMPLE`

El siguiente es un ejemplo de una política de bucket que deniega el acceso a `amzn-s3-demo-bucket` y sus objetos desde cualquier lugar fuera de la VPC `vpc-1a2b3c4d`.

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
     {
       "Sid": "Access-to-specific-VPC-only",
       "Principal": "*",
       "Action": "s3:*",
       "Effect": "Deny",
       "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket",
                    "arn:aws:s3:::amzn-s3-demo-bucket/*"],
       "Condition": {
         "ArnNotEquals": {
           "aws:SourceVpcArn": "arn:aws:ec2:us-east-1:*:vpc/vpc-1a2b3c4d"
         }
       }
     }
   ]
}
```

### aws:SourceVpce
<a name="condition-keys-sourcevpce"></a>

Utilice esta clave para comparar el identificador de punto de conexión de VPC de la solicitud con el ID de punto de conexión que especifique en la política.
+ **Disponibilidad**: esta clave se incluye en el contexto de la solicitud solo si el solicitante utiliza un punto de conexión de VPC para realizar la solicitud.
+ **Tipo de datos**: [cadena](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

En una política, puede utilizar esta clave para restringir el acceso a un punto de conexión de VPC específico. Para obtener más información, consulte [Restringir el acceso a una VPC específica](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies-vpc-endpoint.html#example-bucket-policies-restrict-access-vpc) en la *Guía de usuario de Amazon Simple Storage Service*. De forma similar a lo que ocurre al utilizar [aws:SourceVpc](#condition-keys-sourcevpc), debe utilizar [aws:ViaAWSService](#condition-keys-viaawsservice) o [aws:CalledVia](#condition-keys-calledvia) para permitir solicitudes realizadas por Servicios de AWS mediante [sesiones de acceso directo (FAS)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html) Esto se debe a que no se conserva el punto de conexión de la VPC de origen de la solicitud inicial.

### aws:VpceAccount
<a name="condition-keys-vpceaccount"></a>

Utilice esta clave para comparar el ID de cuenta de AWS que es propietario del punto de conexión de VPC a través del cual se realizó la solicitud con el ID de cuenta que especifique en la política. Esta clave de condición le permite establecer controles perimetrales de red al garantizar que las solicitudes pasen por los puntos de conexión de VPC que son propiedades de cuentas específicas.
+ **Disponibilidad**: esta clave se incluye en el contexto de la solicitud cuando una solicitud se realiza mediante un punto de conexión de VPC. La clave no se incluye para las solicitudes realizadas a través de puntos de conexión de servicio público.

  Los siguientes servicios admiten esta clave:
  + AWS App Runner (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html))
  + AWS Application Discovery Service (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html))
  + Amazon Athena (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html))
  + AWS Cloud Map (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html))
  + Información de aplicaciones de Amazon CloudWatch (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html))
  + AWS CloudFormation (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html))
  + Amazon Comprehend Medical (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html))
  + AWS Compute Optimizer (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html))
  + Amazon Elastic Container Registry (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html))
  + Amazon Elastic Container Service (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html))
  + Amazon Kinesis Analytics (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html))
  + Amazon Route 53 (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html))
  + AWS DataSync (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html))
  + Amazon Elastic Block Store (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html))
  + Programador de Amazon EventBridge (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html))
  + Amazon Data Firehose (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html))
  + AWS HealthImaging (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html))
  + AWS HealthLake (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html))
  + AWS HealthOmics (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html))
  + AWS Identity and Access Management (salvo la acción `iam:PassRole`) (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html))
  + AWS IoT FleetWise (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html))
  + AWS IoT Wireless (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html))
  + AWS Key Management Service (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html))
  + AWS Lambda (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html))
  + AWS Payment Cryptography (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html))
  + Amazon Polly (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html))
  + AWS Private Certificate Authority (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html))
  + AWS Papelera de reciclaje de (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html))
  + Amazon Rekognition (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html))
  + Service Quotas (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html))
  + Amazon Simple Storage Service (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html))
  + AWS Storage Gateway (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html))
  + Administrador de incidentes de AWS Systems Manager Contactos de (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html))
  + Amazon Textract (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html))
  + Amazon Transcribe (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html))
  + AWS Transfer Family (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html))
+ **Tipo de datos**: [cadena](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único
+ **Ejemplo de valor** – `123456789012`

Puede usar esta clave de condición para restringir el acceso a los recursos, de modo que las solicitudes pasen por los puntos de conexión de VPC que son propiedad de su cuenta. El siguiente ejemplo de política de bucket de Amazon S3 permite el acceso cuando la solicitud pasa por un punto de conexión de VPC que es propiedad de la cuenta especificada:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AccessToSpecificVpceAccountOnly",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/RoleName"
            },
            "Action": "s3:GetObject",
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*",
            "Condition": {
                "StringEquals": {
                    "aws:VpceAccount": "111122223333"
                }
            }
        }
    ]
}
```

------

**nota**  
Actualmente, esta clave de condición se admite para un conjunto selecto de servicios de AWS. El uso de esta clave con servicios no compatibles puede provocar resultados de autorización no deseados. Limite siempre la clave de condición a los servicios compatibles en sus políticas.

Algunos servicios de AWS acceden a los recursos desde sus redes cuando actúan en su nombre. Si utiliza estos servicios, deberá editar el ejemplo de política anterior para permitir que los servicios de AWS accedan a sus recursos desde fuera de la red. Para obtener más información sobre los patrones de acceso que deben tenerse en cuenta al aplicar los controles de acceso según el origen de la solicitud, consulte [Establecimiento de barreras de protección de permisos mediante perímetros de datos](access_policies_data-perimeters.md).

### aws:VpceOrgID
<a name="condition-keys-vpceorgid"></a>

Utilice esta clave para comparar el identificador de la organización en AWS Organizations que es propietario del punto de conexión de VPC desde el cual se realizó la solicitud con el identificador que especifique en la política. Esta clave de condición proporciona el enfoque más escalable para los controles perimetrales de la red, ya que incluye automáticamente todos los puntos de conexión de VPC que son propiedad de las cuentas de su organización.
+ **Disponibilidad**: esta clave se incluye en el contexto de la solicitud cuando una solicitud se realiza a través de un punto de conexión de VPC y la cuenta propietaria del punto de conexión de VPC es miembro de una organización de AWS. La clave no se incluye para las solicitudes realizadas a través de otras rutas de red o cuando la cuenta propietaria del punto de conexión de VPC no forma parte de una organización.

  Los siguientes servicios admiten esta clave:
  + AWS App Runner (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html))
  + AWS Application Discovery Service (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html))
  + Amazon Athena (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html))
  + Intercambio de datos de AWS B2B (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsb2bdatainterchange.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsb2bdatainterchange.html))
  + AWS Cloud Map (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html))
  + Información de aplicaciones de Amazon CloudWatch (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html))
  + AWS CloudFormation (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html))
  + Amazon Cognito (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncognitoidentity.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncognitoidentity.html))
  + Amazon Comprehend Medical (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html))
  + AWS Compute Optimizer (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html))
  + AWS Database Migration Service (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatabasemigrationservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatabasemigrationservice.html))
  + AWS Directory Service Data (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdirectoryservicedata.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdirectoryservicedata.html))
  + Amazon Elastic Container Registry (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html))
  + Amazon Elastic Container Service (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html))
  + Amazon Kinesis Analytics (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html))
  + Amazon Route 53 (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html))
  + AWS DataSync (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html))
  + Amazon Elastic Block Store (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html))
  + Programador de Amazon EventBridge (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html))
  + Amazon Data Firehose (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html))
  + AWS HealthImaging (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html))
  + AWS HealthLake (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html))
  + AWS HealthOmics (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html))
  + AWS Identity and Access Management (salvo la acción `iam:PassRole`) (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html))
  + AWS Identity Store (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentitystore.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentitystore.html))
  + AWS IoT FleetWise (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html))
  + AWS IoT TwinMaker (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiottwinmaker.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiottwinmaker.html))
  + AWS IoT Wireless (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html))
  + Amazon Keyspaces (para Apache Cassandra) (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkeyspacesforapachecassandra.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkeyspacesforapachecassandra.html))
  + AWS Key Management Service (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html))
  + AWS Lambda (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html))
  + AWS Network Firewall (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsnetworkfirewall.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsnetworkfirewall.html))
  + AWS Payment Cryptography (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html))
  + Servicio de SMS y voz de Amazon Pinpoint (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpinpointsmsandvoiceservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpinpointsmsandvoiceservice.html))
  + Amazon Polly (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html))
  + Lista de precios de AWS (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspricelist.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspricelist.html))
  + AWS Private Certificate Authority (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html))
  + AWS Papelera de reciclaje de (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html))
  + Amazon Rekognition (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html))
  + Service Quotas (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html))
  + Amazon Simple Email Service (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonses.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonses.html))
  + Amazon Simple Storage Service (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html))
  + Amazon Simple Queue Service (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsqs.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsqs.html))
  + AWS Storage Gateway (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html))
  + Administrador de incidentes de AWS Systems Manager Contactos de (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html))
  + Amazon Textract (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html))
  + Amazon Transcribe (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html))
  + AWS Transfer Family (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html))
  + Amazon WorkMail (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonworkmail.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonworkmail.html))
+ **Tipo de datos**: [cadena](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único
+ **Valores de ejemplo** – `o-a1b2c3d4e5`

El siguiente ejemplo de política de control de recursos deniega el acceso a Amazon S3 y a los recursos de AWS Key Management Service, a menos que la solicitud pase por los puntos de conexión de VPC que son propiedad de la organización especificada o provenga de las redes de los servicios de AWS que actúen en su nombre. Es posible que algunas organizaciones necesiten seguir editando esta política para adaptarla a sus necesidades, por ejemplo, permitir el acceso de socios externos. Para obtener más información sobre los patrones de acceso que deben tenerse en cuenta al aplicar los controles de acceso según el origen de la solicitud, consulte [Establecimiento de barreras de protección de permisos mediante perímetros de datos](access_policies_data-perimeters.md).

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "EnforceNetworkPerimeterVpceOrgID",
      "Effect": "Deny",
      "Principal": "*",
      "Action": [
        "s3:*",
        "kms:*"
      ],
      "Resource": "*",
      "Condition": {
        "BoolIfExists": {
          "aws:PrincipalIsAWSService": "false",
          "aws:ViaAWSService": "false"
        },
        "StringNotEqualsIfExists": {
            "aws:VpceOrgID": "o-abcdef0123",
            "aws:PrincipalTag/network-perimeter-exception": "true"
        }
      }
    }
  ]
}
```

------

**nota**  
Actualmente, esta clave de condición se admite para un conjunto selecto de servicios de AWS. El uso de esta clave con servicios no compatibles puede provocar resultados de autorización no deseados. Limite siempre la clave de condición a los servicios compatibles en sus políticas.

### aws:VpceOrgPaths
<a name="condition-keys-vpceorgpaths"></a>

Utilice esta clave para comparar la ruta de AWS Organizations para el punto de conexión de VPC desde el cual se realizó la solicitud con la ruta que especifique en la política. Esta clave de condición le permite implementar controles perimetrales de red a nivel de la unidad organizativa (UO), ya que los escala automáticamente con el uso de los puntos de conexión de VPC a medida que agrega nuevos puntos de conexión dentro de las UO especificadas.
+ **Disponibilidad**: esta clave se incluye en el contexto de la solicitud cuando una solicitud se realiza a través de un punto de conexión de VPC y la cuenta propietaria del punto de conexión de VPC es miembro de una organización de . La clave no se incluye para las solicitudes realizadas a través de otras rutas de red o cuando la cuenta propietaria del punto de conexión de VPC no forma parte de una organización.

  Los siguientes servicios admiten esta clave:
  + AWS App Runner (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html))
  + AWS Application Discovery Service (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html))
  + Amazon Athena (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html))
  + AWS Cloud Map (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html))
  + Información de aplicaciones de Amazon CloudWatch (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html))
  + AWS CloudFormation (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html))
  + Amazon Comprehend Medical (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html))
  + AWS Compute Optimizer (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html))
  + Amazon Elastic Container Registry (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html))
  + Amazon Elastic Container Service (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html))
  + Amazon Kinesis Analytics (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html))
  + Amazon Route 53 (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html))
  + AWS DataSync (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html))
  + Amazon Elastic Block Store (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html))
  + Programador de Amazon EventBridge (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html))
  + Amazon Data Firehose (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html))
  + AWS HealthImaging (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html))
  + AWS HealthLake (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html))
  + AWS HealthOmics (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html))
  + AWS Identity and Access Management (salvo la acción `iam:PassRole`) (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html))
  + AWS IoT FleetWise (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html))
  + AWS IoT Wireless (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html))
  + AWS Key Management Service (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html))
  + AWS Lambda (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html))
  + AWS Payment Cryptography (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html))
  + Amazon Polly (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html))
  + AWS Private Certificate Authority (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html))
  + AWS Papelera de reciclaje de (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html))
  + Amazon Rekognition (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html))
  + Service Quotas (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html))
  + Amazon Simple Storage Service (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html))
  + AWS Storage Gateway (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html))
  + Administrador de incidentes de AWS Systems Manager Contactos de (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html))
  + Amazon Textract (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html))
  + Amazon Transcribe (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html))
  + AWS Transfer Family (prefijo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html))
+ **Tipo de datos**: [cadena](reference_policies_elements_condition_operators.md#Conditions_String) (lista)
+ **Tipo de valor**: multivalor
+ **Valores de ejemplo** – `o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/`

Dado que `aws:VpceOrgPaths` es una clave de condición multivalor, debe utilizar los operadores establecidos `ForAnyValue` o `ForAllValues` con [operadores de condición de cadena](reference_policies_elements_condition_operators.md#Conditions_String) para esta clave. El siguiente ejemplo de política de bucket de Amazon S3 permite el acceso solo cuando las solicitudes pasan por un punto de conexión de VPC que son propiedad de cuentas en unidades organizativas específicas:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowAccessFromSpecificOrgPaths",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/RoleName"
      },
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*",
      "Condition": {
        "ForAnyValue:StringLike": {
          "aws:VpceOrgPaths": [
            "o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/*",
            "o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-33333333/*"
          ]
        }
      }
    }
  ]
}
```

------

**nota**  
Actualmente, esta clave de condición se admite para un conjunto selecto de servicios de AWS. El uso de esta clave con servicios no compatibles puede provocar resultados de autorización no deseados. Limite siempre la clave de condición a los servicios compatibles en sus políticas.

Algunos servicios de AWS acceden a los recursos desde sus redes cuando actúan en su nombre. Si utiliza estos servicios, deberá editar el ejemplo de política anterior para permitir que los servicios de AWS accedan a sus recursos desde fuera de la red. Para obtener más información sobre los patrones de acceso que deben tenerse en cuenta al aplicar los controles de acceso según el origen de la solicitud, consulte [Establecimiento de barreras de protección de permisos mediante perímetros de datos](access_policies_data-perimeters.md).

### aws:VpcSourceIp
<a name="condition-keys-vpcsourceip"></a>

Utilice esta clave para comparar la dirección IP desde la que se realizó una solicitud con la dirección IP que ha especificado en la política. En una política, la clave coincide solo si la solicitud proviene de la dirección IP especificada y pasa a través de un punto de conexión de VPC.
+ **Disponibilidad**: Esta clave se incluye en el contexto de la solicitud solo si la solicitud se realiza mediante un punto de conexión de VPC.
+ **Tipo de datos**: [dirección IP](reference_policies_elements_condition_operators.md#Conditions_IPAddress)
+ **Tipo de valor**: valor único

Para obtener más información, consulte [Controlar el acceso a los puntos de conexión de la VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) mediante políticas de puntos de conexión en la *Guía de usuario de Amazon VPC*. De forma similar a lo que ocurre al utilizar [aws:SourceVpc](#condition-keys-sourcevpc), debe utilizar [aws:ViaAWSService](#condition-keys-viaawsservice) o [aws:CalledVia](#condition-keys-calledvia) para permitir solicitudes realizadas por Servicios de AWS mediante [sesiones de acceso directo (FAS)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html) Esto se debe a que la IP de origen de la solicitud inicial realizada mediante un punto de conexión de VPC no se preserva en las solicitudes de FAS.

**nota**  
`aws:VpcSourceIp` admite tanto las direcciones IPv4 como IPv6 o un rango de direcciones IP. Para obtener una lista de los Servicios de AWS que admiten IPv6, consulte los [Servicios de AWS que admiten IPv6](https://docs.aws.amazon.com/vpc/latest/userguide/aws-ipv6-support.html) en la *Guía del usuario de Amazon VPC*.  
La clave de condición `aws:VpcSourceIp` siempre debe utilizarse junto con la clave de condición `aws:SourceVpc` o `aws:SourceVpce`. De lo contrario, es posible que alguna política autorice las llamadas a la API desde una VPC inesperada que utiliza el mismo CIDR IP o uno superpuesto. Esto puede ocurrir en caso de que los CIDR IP de las dos VPC no relacionadas puedan ser iguales o superponerse. En su lugar, los identificadores de VPC o los identificadores de puntos de conexión de VPC deben utilizarse en la política, ya que tienen identificadores únicos a nivel global. Estos identificadores únicos garantizan que no se produzcan resultados inesperados.

**nota**  
Cuando Servicios de AWS realizan llamadas a otros Servicios de AWS en su nombre (llamadas de servicio a servicio), se omite cierta información del contexto de autorización específica de red. Si la política utiliza esta clave de condición con declaraciones `Deny`, es posible que se bloqueen involuntariamente entidades principales de Servicio de AWS. Para permitir que los Servicios de AWS funcionen correctamente sin comprometer los requisitos de seguridad, excluya las entidades principales de servicio de las declaraciones `Deny`. Para ello, agregue la clave de condición `aws:PrincipalIsAWSService` con un valor de `false`.

## Propiedades del recurso
<a name="condition-keys-resource-properties"></a>

Utilice las siguientes claves de condición para comparar detalles sobre el recurso que es el objetivo de la solicitud con las propiedades del recurso que especifique en la política.

### aws:ResourceAccount
<a name="condition-keys-resourceaccount"></a>

Utilice esta clave para comparar el [ID de la Cuenta de AWS](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html) del propietario del recurso solicitado con la cuenta del recurso de la política. A continuación, puede permitir o denegar el acceso a ese recurso en función de la cuenta propietaria del recurso.
+ **Disponibilidad**: esta clave siempre se incluye en el contexto de solicitud para la mayoría de servicios. Las siguientes acciones no admiten esta clave:
  + AWS Audit Manager
    + `auditmanager:UpdateAssessmentFrameworkShare`
  + Amazon Detective
    + `detective:AcceptInvitation`
  + AWS Directory Service
    + `ds:AcceptSharedDirectory`
  + Amazon Elastic Block Store: todas las acciones
  + Amazon EC2
    + `ec2:AcceptTransitGatewayPeeringAttachment`
    + `ec2:AcceptVpcEndpointConnections`
    + `ec2:AcceptVpcPeeringConnection`
    + `ec2:CreateTransitGatewayPeeringAttachment`
    + `ec2:CreateVpcEndpoint`
    + `ec2:CreateVpcPeeringConnection`
  + Amazon EventBridge
    + `events:PutEvents`: EventBridge `PutEvents` llama a un bus de eventos de otra cuenta, si ese bus de eventos se configuró como un destino de EventBridge para varias cuentas antes del 2 de marzo de 2023. Para obtener más información, consulte [Conceder permisos para permitir eventos de otras cuentas de AWS](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-cross-account.html#eb-receiving-events-from-another-account) en la *Guía del usuario de Amazon EventBridge*.
  + Amazon GuardDuty
    + `guardduty:AcceptAdministratorInvitation`
  + Amazon Macie
    + `macie2:AcceptInvitation`
  + Amazon OpenSearch Service
    + `es:AcceptInboundConnection`
  + Amazon Route 53
    + `route53:AssociateVpcWithHostedZone`
    + `route53:CreateVPCAssociationAuthorization`
  + AWS Security Hub CSPM
    + `securityhub:AcceptAdministratorInvitation`
+ **Tipo de datos**: [cadena](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

**nota**  
Para obtener más información sobre las acciones no compatibles anteriores, consulte el repositorio de [ejemplos de políticas de perímetro de datos](https://github.com/aws-samples/data-perimeter-policy-examples).

Esta clave es igual al ID de Cuenta de AWS para la cuenta con los recursos evaluados en la solicitud.

Para la mayoría de los recursos de su cuenta, el [ARN](reference_policies_elements_condition_operators.md#Conditions_ARN) contiene el ID de cuenta del propietario de ese recurso. Para ciertos recursos, como los buckets de Amazon S3, el ARN del recurso no incluye el ID de cuenta. Los dos siguientes ejemplos muestran la diferencia entre un recurso con un ID de cuenta en el ARN y un ARN de Amazon S3 sin un ID de cuenta:
+ `arn:aws:iam::123456789012:role/AWSExampleRole`: Rol de IAM creado y de propiedad dentro de la cuenta 123456789012. 
+ `arn:aws:s3:::amzn-s3-demo-bucket2`: Bucket de Amazon S3 creado y de propiedad dentro de la cuenta `111122223333`, que no aparecen en el ARN.

Use la consola, la API o la CLI de AWS, para encontrar todos los recursos y los ARN correspondientes.

Tiene que escribir una política que deniega los permisos a los recursos en función del ID de cuenta del propietario del recurso. Por ejemplo, la siguiente política basada en identidad deniega el acceso al *recurso especificado* si este no pertenece a la *cuenta especificada*.

Para utilizar esta política, sustituya el *texto del marcador de posición en cursiva* por la información de la cuenta. 

**importante**  
Esta política no permite ninguna acción. En su lugar, utiliza el efecto `Deny` que deniega explícitamente el acceso a todos los recursos enumerados en la declaración que no pertenecen a la cuenta enumerada. Utilice esta política en combinación con otras políticas que permiten acceder a recursos específicos.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyInteractionWithResourcesNotInSpecificAccount",
      "Action": "service:*",
      "Effect": "Deny",
      "Resource": [
        "arn:aws:service:us-east-1:111122223333:*"
      ],
      "Condition": {
        "StringNotEquals": {
          "aws:ResourceAccount": [
            "111122223333"
          ]
        }
      }
    }
  ]
}
```

------

Esta política deniega el acceso a todos los recursos para un servicio específico de AWS a menos que la Cuenta de AWS especificada sea propietaria del recurso. 

**nota**  
Algunos Servicios de AWS requieren acceso a recursos que son propiedad de AWS que están alojados en otra Cuenta de AWS. El uso de `aws:ResourceAccount` en sus políticas basadas en identidad puede afectar a la capacidad de su identidad para acceder a estos recursos.

Ciertos servicios de AWS, como AWS Data Exchange, confían en el acceso a recursos fuera de sus Cuentas de AWS para operaciones normales. Si usa el elemento `aws:ResourceAccount` en sus políticas, incluya declaraciones adicionales para crear exenciones para esos servicios. Las políticas de ejemplo de [AWS: denegar el acceso a los recursos de Amazon S3 fuera de su cuenta, excepto AWS Data Exchange](reference_policies_examples_resource_account_data_exch.md) demuestran cómo denegar el acceso en función de la cuenta de recursos y, al mismo tiempo, definir excepciones para los recursos propiedad del servicio.

Utilice este ejemplo de políticas como plantillas para crear sus propias políticas personalizadas. Consulte la [documentación](https://docs.aws.amazon.com/index.html) de su servicio para obtener más información.

### aws:ResourceOrgPaths
<a name="condition-keys-resourceorgpaths"></a>

Utilice esta clave para comparar la ruta de AWS Organizations del recurso al que se accede en la política. En una política, esta clave de condición garantiza que el solicitante sea un miembro de la cuenta dentro de la raíz de la organización o unidades organizativas (OU) especificadas en AWS Organizations. Una ruta AWS Organizations es una representación de texto de la estructura de una entidad de Organizations. Para obtener más información sobre el uso y la comprensión de las rutas, consulte [Comprender la ruta de la entidad AWS Organizations](access_policies_last-accessed-view-data-orgs.md#access_policies_last-accessed-viewing-orgs-entity-path) 
+ **Disponibilidad**: esta clave se incluye en el contexto de la solicitud solo si la cuenta propietaria del recurso es miembro de una organización. Esta clave de condición global no admite las siguientes acciones:
  + AWS Audit Manager
    + `auditmanager:UpdateAssessmentFrameworkShare`
  + Amazon Detective
    + `detective:AcceptInvitation`
  + AWS Directory Service
    + `ds:AcceptSharedDirectory`
  + Amazon Elastic Block Store: todas las acciones
  + Amazon EC2
    + `ec2:AcceptTransitGatewayPeeringAttachment`
    + `ec2:AcceptVpcEndpointConnections`
    + `ec2:AcceptVpcPeeringConnection`
    + `ec2:CreateTransitGatewayPeeringAttachment`
    + `ec2:CreateVpcEndpoint`
    + `ec2:CreateVpcPeeringConnection`
  + Amazon EventBridge
    + `events:PutEvents`: EventBridge `PutEvents` llama a un bus de eventos de otra cuenta, si ese bus de eventos se configuró como un destino de EventBridge para varias cuentas antes del 2 de marzo de 2023. Para obtener más información, consulte [Conceder permisos para permitir eventos de otras cuentas de AWS](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-cross-account.html#eb-receiving-events-from-another-account) en la *Guía del usuario de Amazon EventBridge*.
  + Amazon GuardDuty
    + `guardduty:AcceptAdministratorInvitation`
  + Amazon Macie
    + `macie2:AcceptInvitation`
  + Amazon OpenSearch Service
    + `es:AcceptInboundConnection`
  + Amazon Route 53
    + `route53:AssociateVpcWithHostedZone`
    + `route53:CreateVPCAssociationAuthorization`
  + AWS Security Hub CSPM
    + `securityhub:AcceptAdministratorInvitation`
+ **Tipo de datos**: [cadena](reference_policies_elements_condition_operators.md#Conditions_String) (lista)
+ **Tipo de valor**: multivalor

**nota**  
Para obtener más información sobre las acciones no compatibles anteriores, consulte el repositorio de [ejemplos de políticas de perímetro de datos](https://github.com/aws-samples/data-perimeter-policy-examples).

`aws:ResourceOrgPaths` es una clave de condición multivalor. Las claves de condición multivalor pueden tener varios valores en el contexto de la solicitud. Debe utilizar los operadores de servicio `ForAnyValue` o `ForAllValues` con los [operadores de condición de cadena](reference_policies_elements_condition_operators.md#Conditions_String) cuando utilice esta clave. Para obtener más información acerca de las claves de condición multivalor, consulte [Operadores de conjunto para claves de contexto multivalor](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).

Por ejemplo, la siguiente condición devuelve `True` para recursos que pertenecen a la organización `o-a1b2c3d4e5`. Cuando se incluye un comodín, se debe utilizar el operador de condición [StringLike](reference_policies_elements_condition_operators.md).

```
"Condition": { 
      "ForAnyValue:StringLike": {
             "aws:ResourceOrgPaths":["o-a1b2c3d4e5/*"]
   }
}
```

Se devuelve la siguiente condición `True` para los recursos con el ID de la unidad organizativa `ou-ab12-11111111`. Coincidirá con los recursos que son propiedad de cuentas asociadas a la unidad organizativa ou-ab12-11111111 o a cualquiera de las unidades organizativas secundarias.

```
"Condition": { "ForAnyValue:StringLike" : {
     "aws:ResourceOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/*"]
}}
```

Se devuelve la siguiente condición `True` para los recursos que son propiedad de las cuentas asociadas directamente al ID de la unidad organizativa `ou-ab12-22222222`, pero no a las unidades organizativas secundarias. En el siguiente ejemplo, se utiliza el operador de condición [StringEquals](reference_policies_elements_condition_operators.md) para especificar el requisito de coincidencia exacta para el ID de la unidad organizativa y no una coincidencia de comodín.

```
"Condition": { "ForAnyValue:StringEquals" : {
     "aws:ResourceOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/"]
}}
```

**nota**  
Algunos Servicios de AWS requieren acceso a recursos que son propiedad de AWS que están alojados en otra Cuenta de AWS. El uso de `aws:ResourceOrgPaths` en sus políticas basadas en identidad puede afectar a la capacidad de su identidad para acceder a estos recursos.

Ciertos servicios de AWS, como AWS Data Exchange, confían en el acceso a recursos fuera de sus Cuentas de AWS para operaciones normales. Si usa la clave `aws:ResourceOrgPaths` en sus políticas, incluya declaraciones adicionales para crear exenciones para esos servicios. Las políticas de ejemplo [AWS: denegar el acceso a los recursos de Amazon S3 fuera de su cuenta, excepto AWS Data Exchange](reference_policies_examples_resource_account_data_exch.md) demuestran cómo denegar el acceso en función de la cuenta de recursos y, al mismo tiempo, definir excepciones para los recursos propiedad del servicio. Puede crear una política similar para restringir el acceso a los recursos dentro de una unidad organizativa (UO) mediante la clave `aws:ResourceOrgPaths` y, al mismo tiempo, contabilizar los recursos propiedad del servicio.

Utilice este ejemplo de políticas como plantillas para crear sus propias políticas personalizadas. Consulte la [documentación](https://docs.aws.amazon.com/index.html) de su servicio para obtener más información.

### aws:ResourceOrgID
<a name="condition-keys-resourceorgid"></a>

Utilice esta clave para comparar el identificador de la organización de AWS Organizations a la que pertenece el recurso solicitado con el identificador especificado en la política.
+ **Disponibilidad**: esta clave se incluye en el contexto de la solicitud solo si la entidad principal es miembro de una organización. Esta clave de condición global no admite las siguientes acciones:
  + AWS Audit Manager
    + `auditmanager:UpdateAssessmentFrameworkShare`
  + Amazon Detective
    + `detective:AcceptInvitation`
  + AWS Directory Service
    + `ds:AcceptSharedDirectory`
  + Amazon Elastic Block Store: todas las acciones
  + Amazon EC2
    + `ec2:AcceptTransitGatewayPeeringAttachment`
    + `ec2:AcceptVpcEndpointConnections`
    + `ec2:AcceptVpcPeeringConnection`
    + `ec2:CreateTransitGatewayPeeringAttachment`
    + `ec2:CreateVpcEndpoint`
    + `ec2:CreateVpcPeeringConnection`
  + Amazon EventBridge
    + `events:PutEvents`: EventBridge `PutEvents` llama a un bus de eventos de otra cuenta, si ese bus de eventos se configuró como un destino de EventBridge para varias cuentas antes del 2 de marzo de 2023. Para obtener más información, consulte [Conceder permisos para permitir eventos de otras cuentas de AWS](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-cross-account.html#eb-receiving-events-from-another-account) en la *Guía del usuario de Amazon EventBridge*.
  + Amazon GuardDuty
    + `guardduty:AcceptAdministratorInvitation`
  + Amazon Macie
    + `macie2:AcceptInvitation`
  + Amazon OpenSearch Service
    + `es:AcceptInboundConnection`
  + Amazon Route 53
    + `route53:AssociateVpcWithHostedZone`
    + `route53:CreateVPCAssociationAuthorization`
  + AWS Security Hub CSPM
    + `securityhub:AcceptAdministratorInvitation`
+ **Tipo de datos**: [cadena](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

**nota**  
Para obtener más información sobre las acciones no compatibles anteriores, consulte el repositorio de [ejemplos de políticas de perímetro de datos](https://github.com/aws-samples/data-perimeter-policy-examples).

Esta clave global devuelve el ID de organización de recursos de una solicitud determinada. Le permite crear reglas que se aplican a todos los recursos de una organización que se especifican en el elemento `Resource` de una [política basada en identidad](access_policies_identity-vs-resource.md). Puede especificar el [ID de organización](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_details.html) en el elemento de condición. Al agregar y quitar cuentas, las políticas que incluyan la clave `aws:ResourceOrgID` tendrán automáticamente las cuentas correctas y no requerirán una actualización manual.

Por ejemplo, la siguiente política impide que la entidad principal agregue objetos al recurso `policy-genius-dev` a menos que el recurso de Amazon S3 pertenezca a la misma organización que la entidad principal que hace la solicitud.

**importante**  
Esta política no permite ninguna acción. En su lugar, utiliza el efecto `Deny` que deniega explícitamente el acceso a todos los recursos enumerados en la declaración que no pertenecen a la cuenta enumerada. Utilice esta política en combinación con otras políticas que permiten acceder a recursos específicos.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Sid": "DenyPutObjectToS3ResourcesOutsideMyOrganization",
        "Effect": "Deny",
        "Action": "s3:PutObject",
        "Resource": "arn:aws:s3:::policy-genius-dev/*",
        "Condition": {
            "StringNotEquals": {
                "aws:ResourceOrgID": "${aws:PrincipalOrgID}"
            }
        }
    }
}
```

------

**nota**  
Algunos Servicios de AWS requieren acceso a recursos que son propiedad de AWS que están alojados en otra Cuenta de AWS. El uso de `aws:ResourceOrgID` en sus políticas basadas en identidad puede afectar a la capacidad de su identidad para acceder a estos recursos.

Ciertos servicios de AWS, como AWS Data Exchange, confían en el acceso a recursos fuera de sus Cuentas de AWS para operaciones normales. Si usa la clave `aws:ResourceOrgID` en sus políticas, incluya declaraciones adicionales para crear exenciones para esos servicios. Las políticas de ejemplo [AWS: denegar el acceso a los recursos de Amazon S3 fuera de su cuenta, excepto AWS Data Exchange](reference_policies_examples_resource_account_data_exch.md) demuestran cómo denegar el acceso en función de la cuenta de recursos y, al mismo tiempo, definir excepciones para los recursos propiedad del servicio. Puede crear una política similar para restringir el acceso a los recursos dentro de una organización mediante la clave `aws:ResourceOrgID` y, al mismo tiempo, contabilizar los recursos propiedad del servicio.

Utilice este ejemplo de políticas como plantillas para crear sus propias políticas personalizadas. Consulte la [documentación](https://docs.aws.amazon.com/index.html) de su servicio para obtener más información..

En el siguiente video tiene más información acerca de cómo utilizar la clave de condición `aws:ResourceOrgID` en una política.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/cWVW0xAiWwc/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/cWVW0xAiWwc)


### aws:ResourceTag/*tag-key*
<a name="condition-keys-resourcetag"></a>

Utilice esta clave para comparar el par clave-valor de etiqueta que especifique en la política con el par clave-valor asociado al recurso. Por ejemplo, puede requerir que el acceso a un recurso solo se permita si el recurso tiene la clave de etiqueta `"Dept"` adjunta con el valor `"Marketing"`. Para obtener más información, consulte [Control del acceso a los recursos de AWS](access_tags.md#access_tags_control-resources).
+ **Disponibilidad**: Esta clave se incluye en el contexto de la solicitud cuando el recurso solicitado ya tiene etiquetas asociadas o en solicitudes que crean un recurso con una etiqueta asociada. Esta clave se devuelve solo para los recursos que [admiten autorización basada en etiquetas](reference_aws-services-that-work-with-iam.md). Hay una clave de contexto para cada par clave-valor de etiqueta.
+ **Tipo de datos**: [cadena](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

Esta clave de contexto tiene el formato `"aws:ResourceTag/tag-key":"tag-value"`, donde *tag-key* y *tag-value* son un par formado por una clave y un valor. Las claves de etiqueta no distinguen entre mayúsculas y minúsculas. Esto significa que si especifica `"aws:ResourceTag/TagKey1": "Value1"` en el elemento de condición de su política, la condición coincidirá con una clave de etiqueta de recurso denominada `TagKey1` o `tagkey1`, pero no con ambas. Los valores de estos pares de clave o valor de etiqueta distinguen entre mayúsculas y minúsculas. Esto significa que si especifica `"aws:ResourceTag/TagKey1": "Production"` en el elemento de condición de su política, entonces la condición coincide con un valor de etiqueta de recurso denominada `Production`, pero no coincidiría con `production` ni `PRODUCTION`.

Para obtener ejemplos del uso de la clave de `aws:ResourceTag` para controlar el acceso a los recursos de IAM, consulte [Control del acceso a los recursos de AWS](access_tags.md#access_tags_control-resources).

Para obtener ejemplos del uso de la clave de `aws:ResourceTag` para controlar el acceso a otros recursos de AWS, consulte [Control de acceso a los recursos de AWS mediante etiquetas](access_tags.md).

Para obtener un tutorial sobre el uso de la clave de condición de `aws:ResourceTag` para el control de acceso basado en atributos (ABAC), consulte [Tutorial de IAM: definición de permisos para acceder a los recursos de AWS en función de etiquetas](tutorial_attribute-based-access-control.md).

## Propiedades de la solicitud
<a name="condition-keys-request-properties"></a>

Utilice las siguientes claves de condición para comparar los detalles sobre la solicitud y su contenido con las propiedades de solicitud especificadas en la política. 

### aws:CalledVia
<a name="condition-keys-calledvia"></a>

Utilice esta clave para comparar los servicios de la política con los servicios que realizaron solicitudes en nombre de la entidad principal de IAM (usuario o rol). Cuando una entidad principal realiza una solicitud a un servicio de AWS, ese servicio puede utilizar las credenciales de la entidad principal para realizar solicitudes posteriores a otros servicios. Cuando la solicitud se realiza mediante sesiones de acceso directo (FAS), esta clave se establece con el valor de la entidad principal del servicio. La clave `aws:CalledVia` contiene una lista ordenada de cada servicio de la cadena que realizó solicitudes en nombre de la entidad principal.

Para obtener más información, consulte [Sesiones de acceso directo](access_forward_access_sessions.md).
+ **Disponibilidad**: esta clave está presente en la solicitud cuando un servicio que admite `aws:CalledVia` utiliza las credenciales de una entidad principal de IAM para realizar una solicitud a otro servicio. Esta clave no está presente si el servicio utiliza un [rol de servicio o un rol vinculado a servicios](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts) para realizar una llamada en nombre de la entidad principal. Esta clave tampoco está presente cuando la entidad principal realiza la llamada directamente.
+ **Tipo de datos**: [cadena](reference_policies_elements_condition_operators.md#Conditions_String) (lista)
+ **Tipo de valor**: multivalor

Para utilizar la clave de condición `aws:CalledVia` en una política, debe proporcionar las entidades principales del servicio para permitir o negar las solicitudes del servicio de AWS. Por ejemplo, puede utilizar AWS CloudFormation para leer y escribir desde una tabla de Amazon DynamoDB. DynamoDB utiliza el cifrado suministrado por AWS Key Management Service (AWS KMS).

Para permitir o denegar el acceso cuando *cualquier* servicio realiza una solicitud utilizando las credenciales de la entidad principal, utilice la clave de condición `aws:ViaAWSService`. Esa clave de condición admite los servicios de AWS.

La clave `aws:CalledVia` es una [clave multivalor](reference_policies_condition-single-vs-multi-valued-context-keys.md). Sin embargo, no se puede aplicar el orden utilizando esta clave en una condición. En el ejemplo anterior, **Usuario 1** realiza una solicitud a CloudFormation, que llama a DynamoDB, que a su vez llama a AWS KMS. Se trata de tres solicitudes distintas. La llamada final a AWS KMS la realiza User 1 *a través de* CloudFormation y después a través de DynamoDB. 

![\[Ejemplo de uso de aws:CalledVia\]](http://docs.aws.amazon.com/es_es/IAM/latest/UserGuide/images/condition-key-calledvia-example-diagram.png)


En este caso, la clave `aws:CalledVia` en el contexto de solicitud incluye `cloudformation.amazonaws.com` y `dynamodb.amazonaws.com`, en ese orden. Si solo le preocupa que la llamada se realice a través de DynamoDB en algún lugar de la cadena de solicitudes, puede utilizar esta clave de condición en su política. 

Por ejemplo, la siguiente política permite administrar la clave AWS KMS denominada `my-example-key`, pero solo si DynamoDB es uno de los servicios que realiza la solicitud. El operador de la condición `ForAnyValue:StringEquals` garantiza que DynamoDB sea uno de los servicios que realiza la llamada. Si la entidad principal realiza la llamada a AWS KMS directamente, la condición devuelve `false` y la política no permite la solicitud.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "KmsActionsIfCalledViaDynamodb",
            "Effect": "Allow",
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey",
                "kms:DescribeKey"
            ],
            "Resource": "arn:aws:kms:us-east-1:111122223333:key/my-example-key",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "aws:CalledVia": [
                        "dynamodb.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

Si desea especificar el servicio que realiza la primera o la última llamada de la cadena, puede utilizar las claves `aws:CalledViaFirst` y `aws:CalledViaLast`. Por ejemplo, la siguiente política permite administrar la clave denominada `my-example-key` en AWS KMS. Estas operaciones de AWS KMS solo se permiten si se incluyeron varias solicitudes en la cadena. La primera solicitud debe hacerse a través de CloudFormation y la última, a través de DynamoDB. Si otros servicios realizan solicitudes en el centro de la cadena, la operación sigue estando permitida.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "KmsActionsIfCalledViaChain",
            "Effect": "Allow",
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey",
                "kms:DescribeKey"
            ],
            "Resource": "arn:aws:kms:us-east-1:111122223333:key/my-example-key",
            "Condition": {
                "StringEquals": {
                    "aws:CalledViaFirst": "cloudformation.amazonaws.com",
                    "aws:CalledViaLast": "dynamodb.amazonaws.com"
                }
            }
        }
    ]
}
```

------

Las claves `aws:CalledViaFirst` y `aws:CalledViaLast` están presentes en la solicitud cuando un servicio utiliza las credenciales de una entidad principal de IAM para llamar a otro servicio. Indican los primeros y últimos servicios que realizaron llamadas en la cadena de solicitudes. Suponga, por ejemplo, que CloudFormation llama a otro servicio denominado `X Service`, que llama a DynamoDB y que luego llama a AWS KMS. La llamada final a AWS KMS la realiza `User 1` *a través de* CloudFormation, luego a través de `X Service` y finalmente a través de DynamoDB. Primero se llamó a través de CloudFormation y la última llamada se realizó a través de DynamoDB. 

![\[Ejemplo de uso de aws:CalledViaFirst y aws:CalledViaLast\]](http://docs.aws.amazon.com/es_es/IAM/latest/UserGuide/images/condition-key-calledviafirstlast-example-diagram.png)


### aws:CalledViaFirst
<a name="condition-keys-calledviafirst"></a>

Utilice esta clave para comparar los servicios de la política con el ***primer servicio*** que realizó una solicitud en nombre de la entidad principal de IAM (usuario o rol). Para obtener más información, consulte `aws:CalledVia`.
+ **Disponibilidad**: esta clave está presente en la solicitud cuando un servicio utiliza las credenciales de una entidad principal de IAM para realizar al menos otra solicitud a un servicio diferente. Esta clave no está presente si el servicio utiliza un [rol de servicio o un rol vinculado a servicios](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts) para realizar una llamada en nombre de la entidad principal. Esta clave tampoco está presente cuando la entidad principal realiza la llamada directamente.
+ **Tipo de datos**: [cadena](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

### aws:CalledViaLast
<a name="condition-keys-calledvialast"></a>

Utilice esta clave para comparar los servicios de la política con el *último servicio* que realizó una solicitud en nombre de la entidad principal de IAM (usuario o rol). Para obtener más información, consulte `aws:CalledVia`.
+ **Disponibilidad**: esta clave está presente en la solicitud cuando un servicio utiliza las credenciales de una entidad principal de IAM para realizar al menos otra solicitud a un servicio diferente. Esta clave no está presente si el servicio utiliza un [rol de servicio o un rol vinculado a servicios](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts) para realizar una llamada en nombre de la entidad principal. Esta clave tampoco está presente cuando la entidad principal realiza la llamada directamente.
+ **Tipo de datos**: [cadena](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

### aws:ViaAWSService
<a name="condition-keys-viaawsservice"></a>

Utilice esta clave para verificar si un Servicio de AWS realiza una solicitud a otro servicio en su nombre mediante [sesiones de acceso directo (FAS)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html).

La clave de contexto de la solicitud devuelve `true` cuando un servicio utiliza sesiones de acceso directo para realizar una solicitud en nombre de la entidad principal de IAM original. La clave de contexto de la solicitud también devuelve `false` cuando la entidad principal realiza la llamada directamente.
+ **Disponibilidad**: esta clave siempre se incluye en el contexto de la solicitud.
+ **Tipos de datos**: [booleano](reference_policies_elements_condition_operators.md#Conditions_Boolean)
+ **Tipo de valor**: valor único

### aws:CalledViaAWSMCP
<a name="condition-keys-calledviaawasmcp"></a>

Utilice esta clave para comparar los servicios de la política con los AWS servicios del MCP que realizaron solicitudes en nombre de la entidad principal de IAM (usuario o rol). Cuando una entidad principal realiza una solicitud a un AWS servicio del MCP, ese servicio utilizará las credenciales de la entidad principal para realizar solicitudes posteriores a otros servicios. Cuando la solicitud se realiza mediante un AWS servicio del MCP, esta clave se establece con el valor de la entidad principal del servicio. La `aws:CalledViaAWSMCP` clave contiene el nombre principal del servicio del MCP que realizó solicitudes en nombre de la entidad principal.
+ **Disponibilidad**: esta clave está presente en la solicitud cuando un AWS servicio del MCP utiliza las credenciales de una entidad principal de IAM para realizar una solicitud a un AWS servicio. Esta clave tampoco está presente cuando la entidad principal realiza la llamada directamente.
+ **Tipo de datos**: [cadena](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

Puede utilizar esta clave de condición para permitir o denegar el acceso en función de qué servidor MCP específico inició la solicitud. Por ejemplo, la siguiente política deniega las operaciones de eliminación confidenciales cuando se inician a través de un servidor MCP específico:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DenySensitiveActionsViaSpecificMCP",
            "Effect": "Deny",
            "Action": [
                "s3:DeleteBucket",
                "s3:DeleteObject",
                "dynamodb:DeleteTable"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:CalledViaAWSMCP": "aws-mcp.amazonaws.com"
                }
            }
        }
    ]
}
```

### aws:ViaAWSMCPService
<a name="condition-keys-viaawsmcpservice"></a>

Utilice esta clave para verificar si un AWS servicio del MCP realiza una solicitud a otro AWS servicio en su nombre mediante sesiones de acceso directo (FAS). La clave de contexto de la solicitud devuelve `true` cuando un AWS servicio del MCP reenvía una solicitud a un AWS servicio en nombre de la entidad principal de IAM original. La clave de contexto de la solicitud también devuelve `false` cuando la entidad principal realiza la llamada directamente.
+ **Disponibilidad**: esta clave se incluye en el contexto de la solicitud cuando un servidor AWS MCP realiza una solicitud a un AWS servicio de conexión en nombre de la entidad principal de IAM.
+ **Tipos de datos**: [booleano](reference_policies_elements_condition_operators.md#Conditions_Boolean)
+ **Tipo de valor**: valor único

Puede usar esta clave para restringir acciones específicas cuando se realizan a través de servidores MCP. Por ejemplo, la siguiente política deniega las operaciones de eliminación confidenciales cuando se inician a través de cualquier AWS servidor MCP específico:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DenySensitiveActionsViaMCP",
            "Effect": "Deny",
            "Action": [
                "s3:DeleteBucket",
                "s3:DeleteObject",
                "dynamodb:DeleteTable"
            ],
            "Resource": "*",
            "Condition": {
                "Bool": {
                    "aws:ViaAWSMCPService": "true"
                }
            }
        }
    ]
}
```

### aws:CurrentTime
<a name="condition-keys-currenttime"></a>

Utilice esta clave para comparar la fecha y la hora de la solicitud con la fecha y la hora que especifique en la política. Para ver una política de ejemplo que utilice este clave de condición, consulte [AWS: permite el acceso en función de la fecha y la hora](reference_policies_examples_aws-dates.md).
+ **Disponibilidad**: esta clave siempre se incluye en el contexto de la solicitud.
+ **Tipo de datos**: [fecha](reference_policies_elements_condition_operators.md#Conditions_Date)
+ **Tipo de valor**: valor único

### aws:EpochTime
<a name="condition-keys-epochtime"></a>

Utilice esta clave para comparar la fecha y hora de la solicitud en formato de tiempo epoch o Unix con el valor que especifique en la política. Esta clave también acepta el número de segundos desde el 1 de enero de 1970. 
+ **Disponibilidad**: esta clave siempre se incluye en el contexto de la solicitud.
+ **Tipo de datos**: [fecha](reference_policies_elements_condition_operators.md#Conditions_Date), [numérico](reference_policies_elements_condition_operators.md#Conditions_Numeric)
+ **Tipo de valor**: valor único

### aws:referer
<a name="condition-keys-referer"></a>

Utilice esta clave para comparar quién hizo referencia a la solicitud en el navegador cliente con el remitente que especificó en la política. El valor de contexto de la solicitud `aws:referer` lo proporciona el intermediario en un encabezado HTTP. El encabezado de `Referer` se incluye en una solicitud de navegador web cuando se selecciona un enlace en una página web. El encabezado de `Referer` contiene la dirección URL de la página web donde se seleccionó el enlace.
+ **Disponibilidad**: esta clave se incluye en el contexto de la solicitud solo si la solicitud al recurso de AWS se invocó mediante un enlace desde una URL de página web en el navegador. Esta clave no se incluye para las solicitudes programáticas porque no se utiliza un enlace del navegador para tener acceso al recurso de AWS.
+ **Tipo de datos**: [cadena](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

Por ejemplo, puede acceder a un objeto de Amazon S3 directamente mediante una URL o mediante la invocación directa de la API. Para obtener más información, consulte [Operaciones de la API de Amazon S3 utilizando directamente un navegador web](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html#example-bucket-policies-use-case-4). Cuando se accede a un objeto de Amazon S3 desde una dirección URL que existe en una página web, la dirección URL de la página web de origen se utiliza en `aws:referer`. Cuando se accede a un objeto de Amazon S3 escribiendo la dirección URL en el navegador, el `aws:referer` no está presente. Cuando se invoca la API directamente, `aws:referer` tampoco está presente. Puede utilizar la clave de condición de `aws:referer` de una política para permitir las solicitudes realizadas desde un referente específico, como un enlace en una página web del dominio de su empresa. 

**aviso**  
Esta clave debe utilizarse con cuidado. Es peligroso incluir un valor de encabezado de referencia conocido públicamente. Las partes no autorizadas podrían utilizar navegadores personalizados o modificados para proporcionar cualquier valor `aws:referer` que eligieran. En consecuencia, `aws:referer` no debe utilizarse para impedir que las partes no autorizadas realicen solicitudes AWS de forma directa. Se ofrece únicamente para que los clientes puedan proteger su contenido digital, como el contenido almacenado en Amazon S3, para evitar las referencias en sitios de terceros no autorizados.

### aws:RequestedRegion
<a name="condition-keys-requestedregion"></a>

Utilice esta clave para comparar la región de AWS a la que se llamó en la solicitud con la región que ha especificado en la política. Puede utilizar esta clave de condición global para controlar qué regiones se pueden solicitar. Para ver las regiones de AWS de cada servicio, consulte [Puntos de enlace y cuotas de servicio](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) en la *Referencia general de Amazon Web Services*.
+ **Disponibilidad**: esta clave siempre se incluye en el contexto de la solicitud.
+ **Tipo de datos**: [cadena](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

Algunos servicios globales, como IAM, tienen un único punto de conexión. Como este punto de conexión se encuentra físicamente en la región Este de EE. UU. (Norte de Virginia), las llamadas de IAM siempre se realizan a la región us-east-1. Por ejemplo, si crea una política que deniegue el acceso a todos los servicios cuando la región solicitada no sea us-west-2, las llamadas a IAM siempre generan un error. Para ver un ejemplo de cómo evitar este problema, consulte [NotAction con Deny](reference_policies_elements_notaction.md). 

**nota**  
La clave de condición `aws:RequestedRegion` le permite controlar qué punto de conexión de un servicio se invoca, pero no controlar el impacto de la operación. Algunos servicios afectan a varias regiones.  
Por ejemplo, Amazon S3 tiene operaciones de la API que se extienden a todas las regiones.  
Puede invocar `s3:PutBucketReplication` en una región (lo que se consigue con la clave de condición `aws:RequestedRegion`), pero afectar también a otras regiones en función de las opciones de configuración de replicaciones.
Puede invocar `s3:CreateBucket` para crear un bucket en otra región y utilizar la clave de condición `s3:LocationConstraint` para controlar las regiones aplicables.

Puede utilizar esta clave de contexto para limitar el acceso a los servicios de AWS a un conjunto de regiones determinado. Por ejemplo, la siguiente política permite a un usuario ver todas las instancias Amazon EC2 en la Consola de administración de AWS. Sin embargo, solo permite realizar cambios en las instancias de Irlanda (eu-west-1), Londres (eu-west-2) o París (eu-west-3).

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "InstanceConsoleReadOnly",
            "Effect": "Allow",
            "Action": [
                "ec2:Describe*",
                "ec2:Export*",
                "ec2:Get*",
                "ec2:Search*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "InstanceWriteRegionRestricted",
            "Effect": "Allow",
            "Action": [
                "ec2:Associate*",
                "ec2:Import*",
                "ec2:Modify*",
                "ec2:Monitor*",
                "ec2:Reset*",
                "ec2:Run*",
                "ec2:Start*",
                "ec2:Stop*",
                "ec2:Terminate*"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestedRegion": [
                        "eu-west-1",
                        "eu-west-2",
                        "eu-west-3"
                    ]
                }
            }
        }
    ]
}
```

------

### aws:RequestTag/*tag-key*
<a name="condition-keys-requesttag"></a>

Utilice esta clave para comparar el par clave-valor de etiqueta que se transfirió en la solicitud con el par de etiquetas especificado en la política. Por ejemplo, podría comprobar si la solicitud incluya la clave de etiqueta `"Dept"` y que tenga el valor `"Accounting"`. Para obtener más información, consulte [Control del acceso durante solicitudes de AWS](access_tags.md#access_tags_control-requests).
+ **Disponibilidad**: esta clave se incluye en el contexto de la solicitud cuando se transfieren pares de valor de clave en la solicitud. Cuando se transfieren varias etiquetas en la solicitud, hay una clave de contexto para cada par clave-valor de etiqueta.
+ **Tipo de datos**: [cadena](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

Esta clave de contexto tiene el formato `"aws:RequestTag/tag-key":"tag-value"`, donde *tag-key* y *tag-value* son un par formado por una clave y un valor. Las claves de etiqueta no distinguen entre mayúsculas y minúsculas. Esto significa que si especifica `"aws:RequestTag/TagKey1": "Value1"` en el elemento de condición de su política, la condición coincidirá con una clave de etiqueta de solicitud denominada `TagKey1` o `tagkey1`, pero no con ambas. Los valores de estos pares de clave o valor de etiqueta distinguen entre mayúsculas y minúsculas. Esto significa que si especifica `"aws:RequestTag/TagKey1": "Production"` en el elemento de condición de su política, entonces la condición coincide con un valor de etiqueta de solicitud denominada `Production`, pero no coincidiría con `production` ni `PRODUCTION`.

En este ejemplo se muestra que, si bien la clave tiene un solo valor, puede seguir utilizando varios pares de valor de clave en una solicitud si las claves son diferentes.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": "ec2:CreateTags",
    "Resource": "arn:aws:ec2::111122223333:instance/*",
    "Condition": {
      "StringEquals": {
        "aws:RequestTag/environment": [
          "preprod",
          "production"
        ],
        "aws:RequestTag/team": [
          "engineering"
        ]
      }
    }
  }
}
```

------

### aws:TagKeys
<a name="condition-keys-tagkeys"></a>

Utilice esta clave para comparar las claves de etiqueta de una solicitud con las claves que especifique en la política. Como práctica recomendada cuando utilice políticas para controlar el acceso mediante etiquetas, utilice la clave de condición `aws:TagKeys` para definir lo que se permite realizar a las claves de etiqueta. Para obtener más información y políticas de ejemplo, consulte [Control del acceso en función de las claves de etiqueta](access_tags.md#access_tags_control-tag-keys).
+ **Disponibilidad**: esta clave se incluye en el contexto de la solicitud solo si la operación permite pasar etiquetas en la solicitud.
+ **Tipo de datos**: [cadena](reference_policies_elements_condition_operators.md#Conditions_String) (lista)
+ **Tipo de valor**: multivalor

Esta clave de contexto tiene el formato `"aws:TagKeys":"tag-key"`, donde *tag-key* es una lista de claves de etiqueta sin valores (por ejemplo, `["Dept","Cost-Center"]`).

Dado que puede incluir varios pares de clave-valor de etiqueta en una solicitud, el contenido de la solicitud podría ser una solicitud [con varios valores](reference_policies_condition-single-vs-multi-valued-context-keys.md). En este caso, debe utilizar la `ForAllValues` o los operadores de establecimiento `ForAnyValue`. Para obtener más información, consulte [Operadores de conjunto para claves de contexto multivalor](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).

Algunos servicios admiten el etiquetado con las operaciones del recurso, como, por ejemplo, crear, modificar o eliminar un recurso. Para permitir el etiquetado y las operaciones como una sola llamada, debe crear una política que incluya tanto la acción de etiquetado como la acción de modificación del recurso. A continuación, puede utilizar la clave de condición `aws:TagKeys` para imponer el uso de claves de etiqueta específicas en la solicitud. Por ejemplo, para limitar las etiquetas cuando alguien crea una instantánea de Amazon EC2, debe incluir la acción de creación `ec2:CreateSnapshot` ***y*** la acción de etiquetado `ec2:CreateTags` en la política. Para ver una política para esta situación que utiliza `aws:TagKeys`, consulte [Creación de una instantánea con etiquetas](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ExamplePolicies_EC2.html#iam-creating-snapshot-with-tags) en la *Guía del usuario de Amazon EC2*. 

### aws:SecureTransport
<a name="condition-keys-securetransport"></a>

Utilice esta clave para comprobar si la solicitud se ha enviado mediante TLS. El contexto de la solicitud devuelve `true` o `false`. En una política, solo puede permitir acciones específicas si la solicitud se envía mediante TLS.
+ **Disponibilidad**: esta clave siempre se incluye en el contexto de la solicitud.
+ **Tipos de datos**: [booleano](reference_policies_elements_condition_operators.md#Conditions_Boolean)
+ **Tipo de valor**: valor único

**nota**  
Cuando Servicios de AWS realizan llamadas a otros Servicios de AWS en su nombre (llamadas de servicio a servicio), se omite cierta información del contexto de autorización específica de red. Si la política utiliza esta clave de condición con declaraciones `Deny`, es posible que se bloqueen involuntariamente entidades principales de Servicio de AWS. Para permitir que los Servicios de AWS funcionen correctamente sin comprometer los requisitos de seguridad, excluya las entidades principales de servicio de las declaraciones `Deny`. Para ello, agregue la clave de condición `aws:PrincipalIsAWSService` con un valor de `false`. Por ejemplo:  

```
{
  "Effect": "Deny",
  "Action": "s3:*",
  "Resource": "*",
  "Condition": {
    "Bool": {
      "aws:SecureTransport": "false",
      "aws:PrincipalIsAWSService": "false"
    }
  }
}
```
Esta política deniega el acceso a las operaciones de Amazon S3 cuando no se utiliza HTTPS (AWS es falso), pero solo para entidades principales que no sean servicios de `aws:SecureTransport`. Esto garantiza que sus restricciones condicionales se apliquen a todas las entidades principales, excepto a las entidades principales de Servicio de AWS.

### aws:SourceAccount
<a name="condition-keys-sourceaccount"></a>

Utilice esta clave para comparar el ID de cuenta del recurso que realiza una solicitud de servicio a servicio con el ID de cuenta que especifique en la política, pero solamente cuando la solicitud la realice una entidad principal de servicio de AWS.
+ **Disponibilidad**: esta clave se incluye en el contexto de la solicitud solo cuando la llamada a su recurso la realiza directamente una [entidad principal de servicio de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) en nombre de un recurso para el que la configuración activó la solicitud de servicio a servicio. El servicio que realiza la llamada debe pasar el ID de cuenta del recurso original al servicio llamado.
**nota**  
Esta clave proporciona un mecanismo uniforme para controlar la sustitución confusa entre servicios en los Servicios de AWS. Sin embargo, no todas las integraciones de servicios requieren el uso de esta clave de condición global. Consulte la documentación de los Servicios de AWS que utiliza para obtener más información sobre los mecanismos específicos de cada servicio para mitigar los riesgos de confusión entre servicios.  
![\[aws:SourceAccount\]](http://docs.aws.amazon.com/es_es/IAM/latest/UserGuide/images/sourceAccount.png)
+ **Tipo de datos**: [cadena](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

Puede utilizar esta clave de condición para garantizar que un servicio de llamadas puede acceder a su recurso solo cuando la solicitud se origina en una cuenta específica. Por ejemplo, puede adjuntar la siguiente política de control de recursos (RCP) para denegar las solicitudes de las entidades principales del servicio para los buckets de Amazon S3, a menos que las haya activado un recurso de la cuenta especificada. Esta política aplica el control solo a las solicitudes de las entidades principales del servicio (`"Bool": {"aws:PrincipalIsAWSService": "true"}`) que tienen la clave `aws:SourceAccount` (`"Null": {"aws:SourceAccount": "false"}`), de modo que las integraciones de servicios que no requieren el uso de esta clave y las llamadas de las entidades principales no se ven afectadas. Si la clave `aws:SourceAccount` está presente en el contexto de la solicitud, se evaluará la condición `Null` como `true`, lo que provocará que se aplique la clave `aws:SourceAccount`.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "RCPEnforceConfusedDeputyProtection",
      "Effect": "Deny",
      "Principal": "*",
      "Action": [
        "s3:*"
      ],
      "Resource": "*",
      "Condition": {
        "StringNotEqualsIfExists": {
          "aws:SourceAccount": "111122223333"
        },
        "Null": {
          "aws:SourceAccount": "false"
        },
        "Bool": {
          "aws:PrincipalIsAWSService": "true"
        }
      }
    }
  ]
}
```

------

En las políticas basadas en recursos en las que la entidad principal es una entidad principal de un Servicio de AWS, utilice la clave para limitar los permisos concedidos al servicio. Por ejemplo, cuando un bucket de Amazon S3 está configurado para enviar notificaciones a un tema de Amazon SNS, el servicio de Amazon S3 invoca la operación de la API `sns:Publish` para todos los eventos configurados. En la política de tema que permite la operación de `sns:Publish`, establezca el valor de la clave de condición en el ID de cuenta del bucket de Amazon S3.

### aws:SourceArn
<a name="condition-keys-sourcearn"></a>

Utilice esta clave para comparar el [Nombre de recurso de Amazon (ARN)](reference_identifiers.md#identifiers-arns) del recurso que realiza una solicitud de servicio a servicio con el ARN que especifique en la política, pero solamente cuando la solicitud la realiza una entidad principal de servicio de AWS. Cuando el ARN del origen incluye el ID de cuenta, no es necesario utilizar `aws:SourceAccount` con `aws:SourceArn`.

Esta clave no funciona con el ARN de la entidad principal que realiza la solicitud. En su lugar, utilice `aws:PrincipalArn`.
+ **Disponibilidad**: esta clave se incluye en el contexto de la solicitud solo cuando la llamada a su recurso la realiza directamente una [entidad principal de servicio de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) en nombre de un recurso para el que la configuración activó la solicitud de servicio a servicio. El servicio que realiza la llamada pasa el ARN del recurso original al servicio llamado.
**nota**  
Esta clave proporciona un mecanismo uniforme para controlar la sustitución confusa entre servicios en los Servicios de AWS. Sin embargo, no todas las integraciones de servicios requieren el uso de esta clave de condición global. Consulte la documentación de los Servicios de AWS que utiliza para obtener más información sobre los mecanismos específicos de cada servicio para mitigar los riesgos de confusión entre servicios.  
![\[aws:SourceArn\]](http://docs.aws.amazon.com/es_es/IAM/latest/UserGuide/images/sourceArn.png)
+ **Tipo de datos**: ARN

  AWS recomienda utilizar [operadores de ARN](reference_policies_elements_condition_operators.md#Conditions_ARN) en lugar de [operadores de cadenas](reference_policies_elements_condition_operators.md#Conditions_String) al comparar los ARN.
+ **Tipo de valor**: valor único

Puede utilizar esta clave de condición para garantizar que un servicio de llamadas puede acceder a su recurso solo cuando la solicitud se origina en un recurso específico. Cuando utilice una política basada en recursos con una entidad principal de Servicio de AWS como la `Principal`, establezca el valor de esta clave de condición en el ARN del recurso al que desee restringir el acceso. Por ejemplo, cuando un bucket de Amazon S3 está configurado para enviar notificaciones a un tema de Amazon SNS, el servicio de Amazon S3 invoca la operación de la API `sns:Publish` para todos los eventos configurados. En la política de tema que permite la operación `sns:Publish`, establezca el valor de la clave de condición en el ARN del bucket de Amazon S3. Para obtener recomendaciones acerca de cuándo utilizar esta clave de condición en las políticas basadas en recursos, consulte la documentación de los Servicios de AWS que está utilizando.

### aws:SourceOrgID
<a name="condition-keys-sourceorgid"></a>

Utilice esta clave para comparar el [ID de la organización](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_details.html) del recurso que realiza una solicitud de servicio a servicio con el ID de cuenta que especifique en la política, pero solamente cuando la solicitud la realiza una entidad principal de servicio de AWS. Al agregar y quitar cuentas a una organización en AWS Organizations, las políticas que incluyan la clave `aws:SourceOrgID` tendrán automáticamente las cuentas correctas y no requerirán una actualización manual.
+ **Disponibilidad**: esta clave se incluye en el contexto de la solicitud solo cuando la llamada a su recurso la realiza directamente un responsable de la [entidad principal del servicio de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) en nombre de un recurso propiedad de una cuenta que es miembro de una organización. El servicio que realiza la llamada pasa el ID de la organización del recurso original al servicio llamado.
**nota**  
Esta clave proporciona un mecanismo uniforme para controlar la sustitución confusa entre servicios en los Servicios de AWS. Sin embargo, no todas las integraciones de servicios requieren el uso de esta clave de condición global. Consulte la documentación de los Servicios de AWS que utiliza para obtener más información sobre los mecanismos específicos de cada servicio para mitigar los riesgos de confusión entre servicios.  
![\[aws:SourceOrgID\]](http://docs.aws.amazon.com/es_es/IAM/latest/UserGuide/images/sourceOrgID.png)
+ **Tipo de datos**: [cadena](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

Puede utilizar esta clave de condición para garantizar que un servicio de llamadas puede acceder a su recurso solo cuando la solicitud se origina en una organización específica. Por ejemplo, puede adjuntar la siguiente política de control de recursos (RCP) para denegar las solicitudes de las entidades principales del servicio para los buckets de Amazon S3, a menos que las haya activado un recurso de la organización de AWS especificada. Esta política aplica el control solo a las solicitudes de las entidades principales del servicio (`"Bool": {"aws:PrincipalIsAWSService": "true"}`) que tienen la clave `aws:SourceAccount` (`"Null": {"aws:SourceAccount": "false"}`), de modo que las integraciones de servicios que no requieren el uso de la clave y las llamadas de las entidades principales no se ven afectadas. Si la clave `aws:SourceAccount` está presente en el contexto de la solicitud, se evaluará la condición `Null` como `true`, lo que provocará que se aplique la clave `aws:SourceOrgID`. Utilizamos `aws:SourceAccount` en lugar de `aws:SourceOrgID` en el operador de condición `Null` para que el control siga siendo válido si la solicitud se origina en una cuenta que no pertenece a una organización.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "RCPEnforceConfusedDeputyProtection",
      "Effect": "Deny",
      "Principal": "*",
      "Action": [
        "s3:*"
      ],
      "Resource": "*",
      "Condition": {
        "StringNotEqualsIfExists": {
          "aws:SourceOrgID": "o-xxxxxxxxxx"
        },
        "Null": {
          "aws:SourceAccount": "false"
        },
        "Bool": {
          "aws:PrincipalIsAWSService": "true"
        }
      }
    }
  ]
}
```

------

### aws:SourceOrgPaths
<a name="condition-keys-sourceorgpaths"></a>

Utilice esta clave para comparar la ruta de AWS Organizations del recurso que realiza una solicitud de servicio a servicio con el ID de cuenta que especifique en la política, pero solamente cuando la solicitud la realiza una entidad principal de servicio de AWS. Una ruta AWS Organizations es una representación de texto de la estructura de una entidad AWS Organizations. Para obtener más información acerca de las rutas de acceso, consulte [Comprender la ruta de la entidad de AWS Organizations](access_policies_last-accessed-view-data-orgs.md#access_policies_last-accessed-viewing-orgs-entity-path).
+ **Disponibilidad**: esta clave se incluye en el contexto de la solicitud solo cuando la llamada a su recurso la realiza directamente un responsable de la [entidad principal del servicio de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) en nombre de un recurso propiedad de una cuenta que es miembro de una organización. El servicio que realiza la llamada debe pasar la ruta de la organización del recurso original al servicio llamado.
**nota**  
Esta clave proporciona un mecanismo uniforme para controlar la sustitución confusa entre servicios en los Servicios de AWS. Sin embargo, no todas las integraciones de servicios requieren el uso de esta clave de condición global. Consulte la documentación de los Servicios de AWS que utiliza para obtener más información sobre los mecanismos específicos de cada servicio para mitigar los riesgos de confusión entre servicios.  
![\[aws:SourceOrgPaths\]](http://docs.aws.amazon.com/es_es/IAM/latest/UserGuide/images/sourceOrgPaths.png)
+ **Tipo de datos**: [cadena](reference_policies_elements_condition_operators.md#Conditions_String) (lista)
+ **Tipo de valor**: multivalor

Utilice esta clave de condición para garantizar que un servicio de llamadas puede acceder a su recurso solo cuando la solicitud se origina en una unidad organizativa (UO) específica en AWS Organizations.

Al igual que `aws:SourceOrgID`, para evitar que se vean afectadas las integraciones de servicios que no requieren el uso de esta clave, utilice el operador de condición `Null` con la clave de condición `aws:SourceAccount` para que el control siga siendo válido si la solicitud se origina en una cuenta que no pertenece a una organización.

```
{
      "Condition": {
        "ForAllValues:StringNotLikeIfExists": {
            "aws:SourceOrgPaths": "o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/"
        },
        "Null": {
          "aws:SourceAccount": "false"
        },
        "Bool": {
          "aws:PrincipalIsAWSService": "true"
        }
      }
}
```

`aws:SourceOrgPaths` es una clave de condición multivalor. Las claves de condición multivalor pueden tener varios valores en el contexto de la solicitud. Debe utilizar los operadores de servicio `ForAnyValue` o `ForAllValues` con los [operadores de condición de cadena](reference_policies_elements_condition_operators.md#Conditions_String) cuando utilice esta clave. Para obtener más información acerca de las claves de condición multivalor, consulte [Operadores de conjunto para claves de contexto multivalor](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).

### aws:UserAgent
<a name="condition-keys-useragent"></a>

Utilice esta clave para comparar la aplicación cliente del solicitante con la aplicación que especifique en la política.
+ **Disponibilidad**: esta clave siempre se incluye en el contexto de la solicitud.
+ **Tipo de datos**: [cadena](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

**aviso**  
Esta clave debe utilizarse con cuidado. Puesto que el valor `aws:UserAgent` lo proporciona el intermediario en un encabezado HTTP, partes no autorizadas podrían utilizar navegadores personalizados o modificados para proporcionar cualquier valor `aws:UserAgent` que eligieran. En consecuencia, `aws:UserAgent` no debe utilizarse para impedir que las partes no autorizadas realicen solicitudes AWS de forma directa. Puede utilizarlo para permitir únicamente aplicaciones cliente específicas y solo después de probar su política.

### aws:IsMcpServiceAction
<a name="condition-keys-ismcpserviceaction"></a>

Utilice esta clave para comprobar que la acción que se está autorizando sea una acción del servicio del MCP. Esta clave no hace referencia a las acciones que hace el servicio del MCP en relación con otros servicios de AWS.
+ **Disponibilidad**: esta clave se incluye en el contexto de la solicitud y se establece en Verdadero solo cuando el servicio del MCP autoriza una acción del servicio del MCP.
+ **Tipos de datos**: [booleano](reference_policies_elements_condition_operators.md#Conditions_Boolean)
+ **Tipo de valor**: valor único

## Otras claves de condición entre servicios
<a name="condition-keys-other"></a>

AWS STS admite [claves de condición de federación basada en SAML](reference_policies_iam-condition-keys.md#condition-keys-saml) y claves de condición entre servicios para la [federación de OIDC](reference_policies_iam-condition-keys.md#condition-keys-wif). Estas claves están disponibles cuando un usuario federado de OIDC o SAML realiza operaciones de AWS en otros servicios.

# 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 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\$1id  |  Application ID  |  Sí  | 
|  sub  |  ID de usuario  |  Sí  | 
|  user\$1id  |  ID de usuario  |  Sí  | 

**app\$1id**  
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\$1id**  
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\$1id | Application ID | Sí | 
| id | id | Sí | 

**app\$1id**  
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\$1id | actor\$1id | No | 
| job\$1workflow\$1ref | job\$1workflow\$1ref | No | 
| repositorio | repositorio | No | 
| repository\$1id | repository\$1id | No | 
| flujo de trabajo | flujo de trabajo | No | 
| ref | ref | No | 
| entorno | entorno | No | 
| enterprise\$1id | enterprise\$1id | 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\$1id**  
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\$1workflow\$1ref**  
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\$1id**  
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\$1id**  
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\$1number | google:organization\$1number | No | 

**google/organization\$1number**  
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\$1id | rpst\$1id | No | 

**rpst\$1id**  
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\$1id (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\$1type**  
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 (\$1), 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.

# Acciones, recursos y claves de condición de los servicios de AWS
<a name="reference_policies_actions-resources-contextkeys"></a>

Cada servicio de AWS puede definir acciones, recursos y claves de contexto de condición para utilizarse en las políticas de IAM. Para obtener una lista de los servicios de AWS, sus acciones, recursos y claves de contexto de condiciones, consulte [Acciones, recursos y claves de condiciones ](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html) en la *referencia de autorizaciones de servicio.*