

# Uso de claves de condición de IAM con Amazon Aurora DSQL
<a name="using-iam-condition-keys"></a>

El elemento `Condition` (o bloque de `Condition`) especifica las condiciones en las que entra en vigor una instrucción de política. Las expresiones condicionales se crean con [operadores de condición](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html), como `StringEquals` o `StringLike`, para hacer coincidir las claves de la política con los valores de la solicitud. Las claves de condición son diferentes del ámbito del ARN del recurso, que restringe las acciones a recursos específicos mediante el elemento `Resource`.

Amazon Aurora DSQL admite claves de condición específicas de cada servicio y claves de condición globales de AWS. Puede utilizar estas claves para precisar las condiciones en las que se aplican las instrucciones de la política de IAM. Para obtener más información acerca de las claves de condición globales de AWS, consulte [Claves de contexto de condición global de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) en la *Guía del usuario de IAM*.

## Claves de condición disponibles para Amazon Aurora DSQL
<a name="using-iam-condition-keys-available"></a>

Amazon Aurora DSQL admite las claves de condición específicas del servicio `dsql:WitnessRegion`, `dsql:FisActionId` y `dsql:FisTargetArns`. También puede utilizar claves de condición globales de AWS, como `aws:RequestTag`, `aws:ResourceTag` y `aws:TagKeys`. Para obtener una lista completa de las acciones, claves de condición y recursos de Amazon Aurora DSQL que puede especificar en las políticas, consulte [Acciones, recursos y claves de condición para Amazon Aurora DSQL](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonauroradsql.html#amazonauroradsql-policy-keys) en la *Información de Autorización de los Servicios*.

## Ejemplo: Restringir la región testigo en clústeres multirregionales
<a name="using-iam-condition-keys-create-cluster"></a>

La siguiente política utiliza la clave de condición `dsql:WitnessRegion` para restringir la creación de clústeres multirregionales a los casos en los que la región testigo sea el oeste de EE. UU. (Oregón). Sin esta condición, puede especificar cualquier región como la región testigo.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowCreateWithSpecificWitness",
            "Effect": "Allow",
            "Action": [
                "dsql:CreateCluster",
                "dsql:PutWitnessRegion"
            ],
            "Resource": "arn:aws:dsql:*:123456789012:cluster/*",
            "Condition": {
                "StringEquals": {
                    "dsql:WitnessRegion": "us-west-2"
                }
            }
        },
        {
            "Sid": "AllowMultiRegionSetup",
            "Effect": "Allow",
            "Action": [
                "dsql:PutMultiRegionProperties",
                "dsql:AddPeerCluster"
            ],
            "Resource": "arn:aws:dsql:*:123456789012:cluster/*"
        }
    ]
}
```

------

La primera instrucción aplica la condición `dsql:WitnessRegion` a las acciones que la admiten (`dsql:CreateCluster` y `dsql:PutWitnessRegion`). La segunda instrucción concede `dsql:PutMultiRegionProperties` y `dsql:AddPeerCluster` sin la condición porque la clave de condición `dsql:WitnessRegion` solo se aplica a `dsql:CreateCluster` y `dsql:PutWitnessRegion`.

## Ejemplo: Requerir etiquetas al crear clústeres
<a name="using-iam-condition-keys-tag-on-create"></a>

La siguiente política utiliza las claves de condición `aws:RequestTag` y `aws:TagKeys` para requerir una etiqueta `Environment` al crear clústeres.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowCreateWithRequiredTag",
            "Effect": "Allow",
            "Action": "dsql:CreateCluster",
            "Resource": "arn:aws:dsql:*:123456789012:cluster/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/Environment": [
                        "production",
                        "staging",
                        "development"
                    ]
                },
                "ForAllValues:StringEquals": {
                    "aws:TagKeys": [
                        "Environment",
                        "Owner"
                    ]
                }
            }
        }
    ]
}
```

------

Esta política utiliza dos claves de condición juntas. La condición `aws:RequestTag/Environment` requiere que la etiqueta `Environment` tenga uno de los valores permitidos. La condición `aws:TagKeys` con el operador de conjunto `ForAllValues` garantiza que la solicitud incluya solo las claves de etiqueta `Environment` y `Owner`.

## Ejemplo: Restringir la inyección de errores a clústeres específicos
<a name="using-iam-condition-keys-fis"></a>

La siguiente política utiliza las claves de condición `dsql:FisActionId` y `dsql:FisTargetArns` para restringir la inyección de errores AWS FIS a una acción y un clúster de destino específicos.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowSpecificFaultInjection",
            "Effect": "Allow",
            "Action": "dsql:InjectError",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "dsql:FisActionId": "aws:dsql:cluster-connection-failure"
                },
                "ForAllValues:ArnLike": {
                    "dsql:FisTargetArns": "arn:aws:dsql:us-east-1:123456789012:cluster/*"
                }
            }
        }
    ]
}
```

------

La condición `dsql:FisActionId` restringe las acciones de inyección de errores que puede realizar. La condición `dsql:FisTargetArns` utiliza el operador de conjunto `ForAllValues` y el operador `ArnLike`. Juntos, garantizan que todos los ARN de clúster de la solicitud coincidan con el patrón permitido. Esto bloquea cualquier solicitud que incluya ARN de clúster fuera del ámbito previsto.