

# 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"}}
  }
}
```

------