

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# AWS KMS claves de condición
<a name="conditions-kms"></a>

AWS KMS proporciona un conjunto de claves de condición que puede utilizar en políticas clave y políticas de IAM. Estas claves de condición son específicas de. AWS KMS Por ejemplo, puede utilizar la clave de condición `kms:EncryptionContext:context-key` para exigir un determinado [contexto de cifrado](encrypt_context.md) al controlar el acceso a una clave KMS de cifrado simétrica.

**Condiciones para una solicitud de operación de la API**

Muchas claves de AWS KMS condición controlan el acceso a una clave de KMS en función del valor de un parámetro de la solicitud de una AWS KMS operación. Por ejemplo, puede usar la clave de KeySpec condición [kms:](#conditions-kms-key-spec) en una política de IAM para permitir el uso de la [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)operación solo cuando el valor del `KeySpec` parámetro de la `CreateKey` solicitud sea `RSA_4096` el mismo. 

Este tipo de condición funciona incluso cuando el parámetro no aparece en la solicitud, como cuando se utiliza el valor predeterminado del parámetro. Por ejemplo, puede usar la clave de KeySpec condición [kms:](#conditions-kms-key-spec) para permitir que los usuarios usen la `CreateKey` operación solo cuando el valor del `KeySpec` parámetro sea`SYMMETRIC_DEFAULT`, que es el valor predeterminado. Esta condición permite las solicitudes que tienen el parámetro `KeySpec` con el valor `SYMMETRIC_DEFAULT` y las solicitudes que no tienen el parámetro `KeySpec`.

**Condiciones para claves KMS utilizadas en operaciones de la API**

Algunas claves de AWS KMS condición pueden controlar el acceso a las operaciones en función de una propiedad de la clave KMS que se utiliza en la operación. Por ejemplo, puede usar la KeyOrigin condición [kms:](#conditions-kms-key-origin) para permitir que los directores [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)invoquen una clave KMS solo cuando `Origin` la clave KMS lo sea`AWS_KMS`. Para averiguar si una clave de condición se puede utilizar de esta manera, consulte la descripción de la clave de condición.

La operación debe ser una *operación de recursos de clave KMS*, es decir, una operación que está autorizada para una clave KMS en particular. Para identificar las operaciones de recursos clave de KMS, en la [tabla de acciones y recursos](kms-api-permissions-reference.md#kms-api-permissions-reference-table), busque un valor de `KMS key` en la columna `Resources` para la operación. Si utiliza este tipo de clave de condición con una operación que no está autorizada para un recurso clave de KMS concreto, por ejemplo [ListKeys](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeys.html), el permiso no entra en vigor porque la condición nunca se puede cumplir. No existe ningún recurso de clave KMS involucrado en la autorización de la operación `ListKeys` y tampoco la propiedad `KeySpec`. 

En los temas siguientes se describe cada clave de AWS KMS condición e incluyen ejemplos de declaraciones de política que muestran la sintaxis de las políticas.

**Uso de operadores de conjuntos con claves de condición**

Cuando una condición de política compara dos conjuntos de valores, como el conjunto de etiquetas de una solicitud y el conjunto de etiquetas de una política, es necesario saber AWS cómo comparar los conjuntos. IAM define dos operadores de conjunto, `ForAnyValue` y `ForAllValues` con este fin. Utilice operadores de conjunto solo con *claves de condición de varios valores*, que los requieren. No utilice operadores de conjunto con *claves de condición de un solo valor*. Como siempre, pruebe sus declaraciones de políticas minuciosamente antes de usarlas en entornos de producción.

Las claves de condición tienen un valor único o un valor múltiple. Para determinar si una clave de AWS KMS condición es de un solo valor o de varios valores, consulte la columna **Tipo de valor** en la descripción de la clave de condición. 
+ Las claves de condiciones *Single-valued (Valor único)* tienen como máximo un valor en el contexto de autorización (la solicitud o el recurso). Por ejemplo, dado que cada llamada a la API solo puede originarse desde una Cuenta de AWS, [kms: CallerAccount](#conditions-kms-caller-account) es una clave de condición de un solo valor. No utilice un operador de conjunto con una clave de condición de un solo valor. 
+ Las claves de condición *de múltiples valores* tienen varios valores en el contexto de autorización (la solicitud o el recurso). Por ejemplo, dado que cada clave de KMS puede tener varios alias, [kms: ResourceAliases](#conditions-kms-resource-aliases) puede tener varios valores. Las claves de condición de varios valores requieren un operador de conjunto. 

Tenga en cuenta que la diferencia entre las claves de condición de un solo valor y de varios valores depende del número de valores en el contexto de autorización, no del número de valores de la condición de política.

**aviso**  
El uso de un operador de conjunto con una clave de condición de un solo valor puede crear una declaración de política excesivamente permisiva (o excesivamente restrictiva). Utilice operadores de conjunto solo con claves de condición de varios valores.  
Si crea o actualiza una política que incluye un operador de `ForAllValues` conjunto con la *clave de contexto* o las claves de `aws:RequestTag/tag-key` condición, AWS KMS devuelve el siguiente mensaje de error kms:EncryptionContext:  
`OverlyPermissiveCondition: Using the ForAllValues set operator with a single-valued condition key matches requests without the specified [encryption context or tag] or with an unspecified [encryption context or tag]. To fix, remove ForAllValues.`

Para obtener información detallada acerca de los operadores de conjuntos `ForAnyValue` y `ForAllValues`, consulte [Uso de múltiples claves y valores](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html#reference_policies_multi-key-or-value-conditions) en la *Guía del usuario de IAM*. Para obtener información sobre el riesgo de utilizar el operador de `ForAllValues` conjunto con una condición de un solo valor, consulte [Advertencia de seguridad: ForAllValues con clave de un solo valor](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-reference-policy-checks.html#access-analyzer-reference-policy-checks-security-warning-forallvalues-with-single-valued-key) en la Guía del usuario de *IAM*.

**Topics**
+ [km: BypassPolicyLockoutSafetyCheck](#conditions-kms-bypass-policy-lockout-safety-check)
+ [km: CallerAccount](#conditions-kms-caller-account)
+ [kms: CustomerMasterKeySpec (obsoleto)](#conditions-kms-key-spec-replaced)
+ [kms: CustomerMasterKeyUsage (obsoleto)](#conditions-kms-key-usage-replaced)
+ [km: DataKeyPairSpec](#conditions-kms-data-key-spec)
+ [km: EncryptionAlgorithm](#conditions-kms-encryption-algorithm)
+ [kmsEncryptionContext: clave de *contexto*](#conditions-kms-encryption-context)
+ [kms: EncryptionContextKeys](#conditions-kms-encryption-context-keys)
+ [km: ExpirationModel](#conditions-kms-expiration-model)
+ [kms: GrantConstraintType](#conditions-kms-grant-constraint-type)
+ [km: GrantIsFor AWSResource](#conditions-kms-grant-is-for-aws-resource)
+ [kms: GrantOperations](#conditions-kms-grant-operations)
+ [km: GranteePrincipal](#conditions-kms-grantee-principal)
+ [kms: KeyAgreementAlgorithm](#conditions-kms-key-agreement-algorithm)
+ [km: KeyOrigin](#conditions-kms-key-origin)
+ [kms: KeySpec](#conditions-kms-key-spec)
+ [kms: KeyUsage](#conditions-kms-key-usage)
+ [km: MacAlgorithm](#conditions-kms-mac-algorithm)
+ [km: MessageType](#conditions-kms-message-type)
+ [km: MultiRegion](#conditions-kms-multiregion)
+ [kms: MultiRegionKeyType](#conditions-kms-multiregion-key-type)
+ [kms: PrimaryRegion](#conditions-kms-primary-region)
+ [km: ReEncryptOnSameKey](#conditions-kms-reencrypt-on-same-key)
+ [kms: RequestAlias](#conditions-kms-request-alias)
+ [km: ResourceAliases](#conditions-kms-resource-aliases)
+ [kms: ReplicaRegion](#conditions-kms-replica-region)
+ [km: RetiringPrincipal](#conditions-kms-retiring-principal)
+ [kms: RotationPeriodInDays](#conditions-kms-rotation-period-in-days)
+ [km: ScheduleKeyDeletionPendingWindowInDays](#conditions-kms-schedule-key-deletion-pending-window-in-days)
+ [km: SigningAlgorithm](#conditions-kms-signing-algorithm)
+ [kms: ValidTo](#conditions-kms-valid-to)
+ [kms: ViaService](#conditions-kms-via-service)
+ [km: WrappingAlgorithm](#conditions-kms-wrapping-algorithm)
+ [km: WrappingKeySpec](#conditions-kms-wrapping-key-spec)

## km: BypassPolicyLockoutSafetyCheck
<a name="conditions-kms-bypass-policy-lockout-safety-check"></a>


| AWS KMS claves de condición | Tipo de condición | Tipo de valor | Operaciones de la API | Tipo de política | 
| --- | --- | --- | --- | --- | 
|  `kms:BypassPolicyLockoutSafetyCheck`  |  Booleano  | Valor único |  `CreateKey` `PutKeyPolicy`  |  Solo políticas de IAM Políticas de claves y políticas de IAM  | 

La clave de `kms:BypassPolicyLockoutSafetyCheck` condición controla el acceso a [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html)las operaciones [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)y en función del valor del `BypassPolicyLockoutSafetyCheck` parámetro de la solicitud. 

En el siguiente ejemplo, la declaración de la política de IAM impide que los usuarios eludan la comprobación de seguridad de bloqueo de la política denegándoles el permiso para crear claves KMS cuando el valor del parámetro `BypassPolicyLockoutSafetyCheck` de la solicitud `CreateKey` es `true.` 

```
{
  "Effect": "Deny",
  "Action": [
    "kms:CreateKey",
    "kms:PutKeyPolicy"
  ],
  "Resource": "*",
  "Condition": {
    "Bool": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
```

También puede utilizar la clave de condición `kms:BypassPolicyLockoutSafetyCheck` en una política de IAM o en una política de claves para controlar el acceso a la operación `PutKeyPolicy`. En el ejemplo siguiente, la declaración de una política de claves impide que los usuarios eludan la comprobación de seguridad de bloqueo cuando se modifica la política de una clave KMS. 

En lugar de utilizar una operación `Deny` explícita, esta declaración de la política utiliza `Allow` con [el operador de condición Null](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_Null) para permitir únicamente el acceso cuando la solicitud no contiene el parámetro `BypassPolicyLockoutSafetyCheck`. Cuando no se utiliza el parámetro, el valor predeterminado es `false`. Esta declaración de la política es algo más débil y puede anularse en el caso improbable de que sea necesario eludirla. 

```
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
```

**Véase también**
+ [kms: KeySpec](#conditions-kms-key-spec)
+ [km: KeyOrigin](#conditions-kms-key-origin)
+ [kms: KeyUsage](#conditions-kms-key-usage)

## km: CallerAccount
<a name="conditions-kms-caller-account"></a>


| AWS KMS claves de condición | Tipo de condición | Tipo de valor | Operaciones de la API | Tipo de política | 
| --- | --- | --- | --- | --- | 
|  `kms:CallerAccount`  |  Cadena  | Valor único |  Operaciones de recursos de claves KMS Operaciones de almacén de claves personalizadas  |  Políticas de claves y políticas de IAM  | 

Puede utilizar esta clave de condición para permitir o denegar el acceso a todas las identidades (usuarios y roles) de una Cuenta de AWS. En las políticas de claves, se usa el elemento `Principal` para especificar las identidades a las que se aplica la declaración de política. La sintaxis del elemento `Principal` no proporciona una forma de especificar todas las identidades en una Cuenta de AWS. Sin embargo, puede lograr este efecto combinando esta clave de condición con un `Principal` elemento que especifique todas AWS las identidades.

Puede usarla para controlar el acceso a cualquier *operación de recurso clave de KMS*, es decir, cualquier AWS KMS operación que utilice una clave de KMS concreta. Para identificar las operaciones de recursos clave KMS, en la[Tabla de acciones y recursos](kms-api-permissions-reference.md#kms-api-permissions-reference-table), busque un valor de `KMS key` en la columna `Resources` para la operación. También es válido para operaciones que administran [almacenes de claves personalizados](key-store-overview.md#custom-key-store-overview).

Por ejemplo, la siguiente declaración de política de claves demuestra cómo utilizar la clave de condición `kms:CallerAccount`. Esta declaración de política se encuentra en la política clave Clave administrada de AWS de Amazon EBS. Combina un `Principal` elemento que especifica todas las AWS identidades con la clave de `kms:CallerAccount` condición para permitir el acceso efectivo a todas las identidades en Cuenta de AWS 111122223333. Contiene una clave de AWS KMS condición adicional (`kms:ViaService`) para limitar aún más los permisos al permitir únicamente las solicitudes que llegan a través de Amazon EBS. Para obtener más información, consulte [kms: ViaService](#conditions-kms-via-service).

```
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
```

## kms: CustomerMasterKeySpec (obsoleto)
<a name="conditions-kms-key-spec-replaced"></a>

La clave de condición `kms:CustomerMasterKeySpec` está obsoleta. En su lugar, utilice la clave de KeySpec condición [kms:](#conditions-kms-key-spec).

Las claves de condición `kms:CustomerMasterKeySpec` y `kms:KeySpec` funcionan de la misma forma. Solo los nombres difieren. Le recomendamos que utilice `kms:KeySpec`. Sin embargo, para evitar cambios irrelevantes, AWS KMS admite ambas claves de condición.

## kms: CustomerMasterKeyUsage (obsoleto)
<a name="conditions-kms-key-usage-replaced"></a>

La clave de condición `kms:CustomerMasterKeyUsage` está obsoleta. En su lugar, utilice la clave de KeyUsage condición [kms:](#conditions-kms-key-usage).

Las claves de condición `kms:CustomerMasterKeyUsage` y `kms:KeyUsage` funcionan de la misma forma. Solo los nombres difieren. Le recomendamos que utilice `kms:KeyUsage`. Sin embargo, para evitar cambios irrelevantes, AWS KMS admite ambas claves de condición.

## km: DataKeyPairSpec
<a name="conditions-kms-data-key-spec"></a>


| AWS KMS claves de condición | Tipo de condición | Tipo de valor | Operaciones de la API | Tipo de política | 
| --- | --- | --- | --- | --- | 
|  `kms:DataKeyPairSpec`  |  Cadena  | Valor único |  `GenerateDataKeyPair` `GenerateDataKeyPairWithoutPlaintext`  |  Políticas de claves y políticas de IAM  | 

Puede utilizar esta clave de condición para controlar el acceso a las [GenerateDataKeyPairWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPairWithoutPlaintext.html)operaciones [GenerateDataKeyPair](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPair.html)y en función del valor del `KeyPairSpec` parámetro de la solicitud. Por ejemplo, puede permitir que un usuario genere solo determinados tipos de pares de claves de datos.

El siguiente ejemplo de declaración de política de claves utiliza la clave de condición `kms:DataKeyPairSpec` para permitir a los usuarios utilizar la clave KMS para generar solo pares de claves de datos RSA.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
```

**Véase también**
+ [kms: KeySpec](#conditions-kms-key-spec)
+ [km: EncryptionAlgorithm](#conditions-kms-encryption-algorithm)
+ [kmsEncryptionContext: clave de *contexto*](#conditions-kms-encryption-context)
+ [kms: EncryptionContextKeys](#conditions-kms-encryption-context-keys)

## km: EncryptionAlgorithm
<a name="conditions-kms-encryption-algorithm"></a>


| AWS KMS claves de condición | Tipo de condición | Tipo de valor | Operaciones de la API | Tipo de política | 
| --- | --- | --- | --- | --- | 
|  `kms:EncryptionAlgorithm`  |  Cadena  | Valor único |  `Decrypt` `Encrypt` `GenerateDataKey` `GenerateDataKeyPair` `GenerateDataKeyPairWithoutPlaintext` `GenerateDataKeyWithoutPlaintext` `ReEncrypt`  |  Políticas de claves y políticas de IAM  | 

Puede utilizar la clave de condición `kms:EncryptionAlgorithm` para controlar el acceso a operaciones criptográficas en función del algoritmo de cifrado que se utiliza en la operación. [Para las [ReEncrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html)operaciones de [cifrado, descifrado](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) y, por el contrario, controla el acceso en función del valor del [EncryptionAlgorithm](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html#KMS-Decrypt-request-EncryptionAlgorithm)parámetro de la solicitud.](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html) Para operaciones que generan claves de datos y pares de claves de datos, controla el acceso basado en el algoritmo de cifrado que se utiliza para cifrar la clave de datos.

Esta clave de condición no afecta a las operaciones realizadas fuera de AWS KMS, como el cifrado con la clave pública de un par de claves KMS asimétricas fuera de. AWS KMS

**EncryptionAlgorithm parámetro en una solicitud**

Para permitir a los usuarios utilizar solo un algoritmo de cifrado determinado con una clave KMS, utilice una declaración de política con un efecto `Deny` y un operador de condición `StringNotEquals`. Por ejemplo, la siguiente declaración de política de claves de ejemplo prohíbe a las entidades principales que pueden asumir el rol `ExampleRole` utilizar esta clave KMS en las operaciones criptográficas especificadas, a menos que el algoritmo de cifrado de la solicitud sea `RSAES_OAEP_SHA_256`, un algoritmo de cifrado asimétrico que se usa con claves KMS RSA.

A diferencia de una declaración de política que permite a un usuario utilizar un algoritmo de cifrado determinado, una declaración de política con un doble negativo como este impide que otras políticas y concesiones para esta clave KMS permitan que este rol utilice otros algoritmos de cifrado. `Deny` en esta declaración de política tiene prioridad sobre cualquier otra política de claves o política de IAM con un efecto `Allow` y tiene prioridad sobre todas las concesiones para esta clave KMS y sus entidades principales.

```
{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
```

**Algoritmo de cifrado utilizado para la operación**

También puede utilizar la clave de condición `kms:EncryptionAlgorithm` para controlar el acceso a operaciones según el algoritmo de cifrado utilizado en la operación, incluso cuando el algoritmo no se especifica en la solicitud. Esto le permite requerir o prohibir el algoritmo `SYMMETRIC_DEFAULT`, que puede que no se especifique en una solicitud porque es el valor predeterminado.

Esta característica le permite usar la clave de condición `kms:EncryptionAlgorithm` para controlar el acceso a las operaciones que generan claves de datos y pares de claves de datos. Estas operaciones solo utilizan claves KMS de cifrado simétricas y el algoritmo `SYMMETRIC_DEFAULT`.

Por ejemplo, esta política de IAM limita sus entidades principales al cifrado simétrico. Deniega el acceso a cualquier clave KMS en la cuenta de ejemplo para operaciones criptográficas a menos que el algoritmo de cifrado especificado en la solicitud o utilizado en la operación sea SYMMETRIC\$1DEFAULT. Incluye `GenerateDataKey*` [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)adiciones [GenerateDataKeyWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html), [GenerateDataKeyPair](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPair.html), y [GenerateDataKeyPairWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPairWithoutPlaintext.html)a los permisos. La condición no tiene ningún efecto en estas operaciones porque siempre utilizan un algoritmo de cifrado simétrico.

```
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
```

**Véase también**
+ [km: MacAlgorithm](#conditions-kms-mac-algorithm)
+ [km: SigningAlgorithm](#conditions-kms-signing-algorithm)

## kmsEncryptionContext: clave de *contexto*
<a name="conditions-kms-encryption-context"></a>


| AWS KMS claves de condición | Tipo de condición | Tipo de valor | Operaciones de la API | Tipo de política | 
| --- | --- | --- | --- | --- | 
|  `kms:EncryptionContext:context-key`  |  Cadena  | Valor único |  `CreateGrant` `Encrypt` `Decrypt` `GenerateDataKey` `GenerateDataKeyPair` `GenerateDataKeyPairWithoutPlaintext` `GenerateDataKeyWithoutPlaintext` `ReEncrypt` `RetireGrant`  |  Políticas de claves y políticas de IAM  | 

Puede usar la clave de condición `kms:EncryptionContext:context-key` para controlar el acceso a una [clave KMS de cifrado simétrica](symm-asymm-choose-key-spec.md#symmetric-cmks) en función del [contexto de cifrado](encrypt_context.md) de una solicitud para una [operación criptográfica](kms-cryptography.md#cryptographic-operations). Utilice esta clave de condición para evaluar la clave y el valor del par de contexto de cifrado. Para evaluar solo las claves de contexto de cifrado o para requerir un contexto de cifrado independientemente de las claves o los valores, utilice la clave EncryptionContextKeys condicionada [kms:](#conditions-kms-encryption-context-keys).

**nota**  
Los valores de claves de condición deben ajustarse a las reglas de caracteres de políticas de claves y políticas de IAM. Algunos caracteres válidos en un contexto de cifrado no son válidos en las políticas. Es posible que no pueda utilizar esta clave de condición para expresar todos los valores de contexto de cifrado válidos. Para obtener más información sobre las reglas del documento de política de claves, consulte [Formato de la política de claves](key-policy-overview.md#key-policy-format). Para obtener más información sobre las reglas del documento de política de IAM, consulte [Requisitos de nombres de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-names) en la *Guía del usuario de IAM*.

No puede especificar un contexto de cifrado en una operación criptográfica con una [clave KMS asimétrica](symmetric-asymmetric.md) o una [clave KMS HMAC](hmac.md). Los algoritmos asimétricos y los algoritmos MAC no son compatibles con un contexto de cifrado.

Para usar la clave de condición kms:EncryptionContext: *clave de contexto*, sustituya el *context-key* marcador de posición por la clave de contexto de cifrado. Sustituya el marcador de posición *context-value* por el valor de contexto de cifrado.

```
"kms:EncryptionContext:context-key": "context-value"
```

Por ejemplo, la siguiente clave de condición especifica un contexto de cifrado en el que la clave es `AppName` y el valor es `ExampleApp` (`AppName = ExampleApp`).

```
"kms:EncryptionContext:AppName": "ExampleApp"
```

Esta es una [clave de condición de un solo valor](#set-operators). La clave de la clave de condición especifica una clave de contexto de cifrado determinada (*context-key*). Aunque puede incluir varios pares de contexto de cifrado en cada solicitud de la API, el par de contexto de cifrado con el *context-key* puede tener solo un valor. Por ejemplo, la clave de condición `kms:EncryptionContext:Department` solo se aplica a los pares de contexto de cifrado con una clave `Department`, y cualquier par de contexto de cifrado dado con la clave `Department` solo puede tener un valor.

No utilice un operador de conjunto con la clave de condición `kms:EncryptionContext:context-key`. Si crea una declaración de política con una acción `Allow`, la clave de condición `kms:EncryptionContext:context-key` y el operador de conjunto `ForAllValues`, la condición permite solicitudes sin contexto de cifrado y solicitudes con pares de contexto de cifrado que no se especifican en la condición de política.

**aviso**  
No utilice un operador de conjunto `ForAnyValue` o `ForAllValues` con esta clave de condición de un solo valor. Estos operadores de conjunto pueden crear una condición de política que no requiera valores que pretenda requerir y permite valores que pretende prohibir.  
Si crea o actualiza una política que incluye un operador de `ForAllValues` conjunto con la *clave de contexto kms: EncryptionContext*:, AWS KMS devuelve el siguiente mensaje de error:  
`OverlyPermissiveCondition:EncryptionContext: Using the ForAllValues set operator with a single-valued condition key matches requests without the specified encryption context or with an unspecified encryption context. To fix, remove ForAllValues.`

Para requerir un par de contexto de cifrado concreto, utilice la clave de condición `kms:EncryptionContext:context-key` con el operador `StringEquals`.

En la siguiente declaración de política de claves de ejemplo se permite a las entidades principales que pueden asumir la función utilizar la clave KMS en una solicitud `GenerateDataKey` solo cuando el contexto de cifrado de la solicitud contiene el par `AppName:ExampleApp`. Se permiten otros pares de contexto de cifrado.

El nombre de las claves distingue entre mayúsculas y minúsculas. La distinción de mayúsculas y minúsculas del valor se determina mediante el operador de condición, como `StringEquals`. Para obtener más información, consulte [Uso de mayúsculas y minúsculas en las condiciones de contexto de cifrado](#conditions-kms-encryption-context-case).

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
```

Para exigir un par de contextos de cifrado y prohibir todos los demás pares de contextos de cifrado, utilice tanto kms: EncryptionContext la *clave de contexto* como la declaración de política. [`kms:EncryptionContextKeys`](#conditions-kms-encryption-context-keys) En la siguiente declaración de política de claves se utiliza la condición `kms:EncryptionContext:AppName` para requerir el par de contexto de cifrado `AppName=ExampleApp` en la solicitud. También utiliza una clave de condición `kms:EncryptionContextKeys` con el operador de conjunto `ForAllValues` para permitir solo la clave de contexto de cifrado `AppName`. 

El operador de conjunto `ForAllValues` limita las claves de contexto de cifrado en la solicitud a `AppName`. Si la condición `kms:EncryptionContextKeys` con el operador de conjunto `ForAllValues` se utilizó solo en una declaración de política, este operador de conjunto permitiría solicitudes sin contexto de cifrado. Sin embargo, si la solicitud no tenía contexto de cifrado, la condición `kms:EncryptionContext:AppName` fallaría. Para conocer los detalles sobre el operador de conjunto `ForAllValues`, consulte [Uso de múltiples claves y valores](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html#reference_policies_multi-key-or-value-conditions) en la *Guía del usuario de IAM*.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/KeyUsers"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    },
    "ForAllValues:StringEquals": {
      "kms:EncryptionContextKeys": [
        "AppName"
      ]
    }
  }
}
```

También puede utilizar esta clave de condición para denegar el acceso a una clave KMS para una operación concreta. En la siguiente declaración de política de claves de ejemplo se utiliza un efecto `Deny` para prohibir a la entidad principal utilizar la clave KMS si el contexto de cifrado de la solicitud contiene un par de contexto de cifrado `Stage=Restricted`. Esta condición permite una solicitud con otros pares de contexto de cifrado, incluidos los pares de contexto de cifrado con la clave `Stage` y otros valores, como `Stage=Test`.

```
{
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:Stage": "Restricted"
    }
  }
}
```

### Uso de varios pares de contexto de cifrado
<a name="conditions-kms-encryption-context-many"></a>

Puede requerir o prohibir varios pares de contexto de cifrado. También puede requerir uno de varios pares de contexto de cifrado. Para conocer los detalles de la lógica utilizada para interpretar estas condiciones, consulte [Crear una condición con varias claves o valores](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html) en la Guía del usuario de IAM. 

**nota**  
Las versiones anteriores de este tema mostraban declaraciones de política que utilizaban los operadores `ForAnyValue` y `ForAllValues` establecían con la clave de condición kms:EncryptionContext: clave de *contexto*. Usando un operador de conjunto con una [clave de condición de un solo valor](#set-operators) puede dar lugar a políticas que permiten solicitudes sin contexto de cifrado y pares de contexto de cifrado no especificados.   
Por ejemplo, una condición de política con el efecto `Allow`, el operador de conjunto `ForAllValues` y la clave de condición `"kms:EncryptionContext:Department": "IT"` no limita el contexto de cifrado al par "Department=IT". Permite solicitudes sin contexto de cifrado y solicitudes con pares de contexto de cifrado no especificados, como `Stage=Restricted`.  
*Revise sus políticas y elimine el operador de conjunto de cualquier condición con kms:EncryptionContext: clave de contexto.* Los intentos de crear o actualizar una política con este formato fallan con una excepción `OverlyPermissiveCondition`. Para resolver el error, elimine el operador de conjunto.

Para requerir varios pares de contexto de cifrado, enumere los pares en la misma condición. En la siguiente declaración de política de claves de ejemplo se requieren dos pares de contexto de cifrado, `Department=IT` y `Project=Alpha`. Debido a que las condiciones tienen diferentes claves (`kms:EncryptionContext:Department` y `kms:EncryptionContext:Project`), están implícitamente conectados por un operador AND. Otros pares de contexto de cifrado están permitidos, pero no son necesarios.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:Decrypt",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:Department": "IT",
      "kms:EncryptionContext:Project": "Alpha"
    }
  }
}
```

Para requerir un par de contexto de cifrado U otro par, coloque cada clave de condición en una declaración de política independiente. En la siguiente política de claves de ejemplo se requiere `Department=IT` *o* `Project=Alpha` pares, o ambos. Otros pares de contexto de cifrado están permitidos, pero no son necesarios.

```
{
 "Effect": "Allow",
 "Principal": {
  "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
 },
 "Action": "kms:GenerateDataKey",
 "Resource": "*",
 "Condition": {
  "StringEquals": {
   "kms:EncryptionContext:Department": "IT"
  }
 }
},
{
 "Effect": "Allow",
 "Principal": {
  "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
 },
 "Action": "kms:GenerateDataKey",
 "Resource": "*",
 "Condition": {
  "StringEquals": {
   "kms:EncryptionContext:Project": "Alpha"
  }
 }
}
```

Para exigir pares de cifrado específicos y excluir todos los demás pares de contextos de cifrado, utilice tanto kms: EncryptionContext la *clave de contexto* como la declaración de política [`kms:EncryptionContextKeys`](#conditions-kms-encryption-context-keys). *La siguiente declaración de política clave utiliza la condición kms:EncryptionContext: *clave de contexto* para requerir un contexto de cifrado con ambos pares y. `Department=IT`* `Project=Alpha` Utiliza una clave de condición `kms:EncryptionContextKeys` con el operador de conjuntos `ForAllValues` para permitir solo las claves de contexto de cifrado `Department` y `Project`. 

El operador de conjuntos `ForAllValues` limita las claves de contexto de cifrado en la solicitud a `Department` y `Project`. Si se usara solo en una condición, este operador de conjunto permitiría solicitudes sin contexto de cifrado, pero en esta configuración, la *clave de contexto kms: EncryptionContext*: en esta condición fallaría.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:Department": "IT",
      "kms:EncryptionContext:Project": "Alpha"
    },
    "ForAllValues:StringEquals": {
      "kms:EncryptionContextKeys": [
        "Department",
        "Project"
      ]
    }
  }
}
```

También puede prohibir varios pares de contexto de cifrado. En la siguiente declaración de política de claves de ejemplo se utiliza un efecto `Deny` para prohibir a la entidad principal utilizar las claves KMS si el contexto de cifrado de la solicitud contiene un par `Stage=Restricted` o `Stage=Production`. 

Múltiples valores (`Restricted` y `Production`) para la misma clave (`kms:EncryptionContext:Stage`) están implícitamente conectados por un OR. Para conocer los detalles, consulte la [Lógica de evaluación para condiciones con múltiples claves o valores](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html#reference_policies_multiple-conditions-eval) en la *Guía del usuario de IAM*.

```
{
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:Stage": [
         "Restricted",
         "Production"
      ] 
    }
  }
}
```

### Uso de mayúsculas y minúsculas en las condiciones de contexto de cifrado
<a name="conditions-kms-encryption-context-case"></a>

El contexto de cifrado que se especifica en una operación de descifrado debe coincidir exactamente, incluido el uso de mayúsculas y minúsculas, con el contexto de cifrado que se especifica en la operación de cifrado. Solo puede variar el orden de los pares de un contexto de cifrado con varios pares.

Sin embargo, en las condiciones de políticas, la clave de condición no distingue entre mayúsculas y minúsculas. La distinción de mayúsculas y minúsculas del valor de la condición se determina por el [operador de condición de política](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html) que utilice, como `StringEquals` o `StringEqualsIgnoreCase`.

Por tanto, la clave de condición, que consta del prefijo `kms:EncryptionContext:` y el valor sustituto de *`context-key`*, no distingue mayúsculas de minúsculas. Una política que utiliza esta condición no comprueba el uso de mayúsculas o minúsculas de ninguno de los elementos de la clave de condición. La distinción de mayúsculas y minúsculas del valor, es decir *`context-value`*, lo determina el operador de la política de condición.

Por ejemplo, la siguiente declaración de política permite la operación cuando el contexto de cifrado incluye una clave `Appname`, independientemente de si está en mayúsculas o minúsculas. La condición `StringEquals` requiere que `ExampleApp` esté en mayúsculas cuando se especifique. 

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:Decrypt",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:Appname": "ExampleApp"
    }
  }
}
```

Para requerir una clave de contexto de cifrado que distinga entre mayúsculas y minúsculas, utilice la condición [kms: EncryptionContextKeys policy](#conditions-kms-encryption-context-keys) con un operador de condición que distinga entre mayúsculas y minúsculas, como. `StringEquals` En esta condición de política, como la clave de contexto de cifrado es el valor de la condición de política, el operador de condición determina si se distingue entre mayúsculas y minúsculas. 

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "ForAnyValue:StringEquals": {
      "kms:EncryptionContextKeys": "AppName"
    }
  }
}
```

Para exigir una evaluación de la clave y el valor del contexto de cifrado que distinga entre mayúsculas y minúsculas, utilice las condiciones de política `kms:EncryptionContextKeys` y kms:EncryptionContext: *clave de contexto* juntas en la misma declaración de política. El operador de condición sensible a mayúsculas y minúsculas (como `StringEquals`) siempre se aplica al valor de la condición. La clave de contexto de cifrado (como `AppName`) es el valor de la condición `kms:EncryptionContextKeys`. *El valor del contexto de cifrado (por ejemplo`ExampleApp`) es el valor de la condición kms:EncryptionContext: clave de contexto.*

Por ejemplo, en la siguiente declaración de política de clave de ejemplo, como el operador `StringEquals` distingue entre mayúsculas y minúsculas, tanto la clave de contexto de cifrado como el valor de contexto de cifrado distinguen entre mayúsculas y minúsculas.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "ForAnyValue:StringEquals": {
      "kms:EncryptionContextKeys": "AppName"
    },
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
```

### Uso de variables en una condición de contexto de cifrado
<a name="conditions-kms-encryption-context-variables"></a>

La clave y el valor de un par de contexto de cifrado deben ser cadenas literales simples. No pueden ser números enteros ni objetos, ni ningún tipo que no esté totalmente resuelto. Si utiliza un tipo diferente, como un entero o un flotante, lo AWS KMS interpreta como una cadena literal.

```
"encryptionContext": {
    "department": "10103.0"
}
```

Sin embargo, el valor de la clave de condición `kms:EncryptionContext:context-key` puede ser una [variable de política de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html). Estas variables de política se resuelven en tiempo de ejecución con arreglo a los valores de la solicitud. Por ejemplo, `aws:CurrentTime ` se resuelve en la hora de la solicitud y `aws:username` se resuelve en el nombre descriptivo del autor de la llamada.

Puede utilizar estas variables de política para crear una declaración de política con una condición que requiera información muy específica de un contexto de cifrado, como el nombre de usuario del autor de la llamada. Como contiene una variable, puede utilizar la misma declaración de política con todos los usuarios que puedan adoptar ese rol. No tiene que escribir una declaración de política diferente para cada usuario.

Imagine una situación en la que desea que todos los usuarios que puedan adoptar un rol utilicen la misma clave KMS para cifrar y descifrar los datos. Sin embargo, solo quiere que puedan descifrar los datos que ellos han cifrado. Comience por exigir que todas las solicitudes AWS KMS incluyan un contexto de cifrado en el que la clave esté `user` y el valor sea el nombre de AWS usuario de la persona que llama, como el siguiente.

```
"encryptionContext": {
    "user": "bob"
}
```

A continuación, para forzar la aplicación de este requisito, puede utilizar una declaración de política como la del siguiente ejemplo. Esta declaración de política concede al rol `TestTeam` permiso para cifrar y descifrar datos con la clave KMS. Sin embargo, el permiso solo es válido cuando el contexto de cifrado de la solicitud incluye un par `"user": "<username>"`. Para representar el nombre de usuario, la condición utiliza la variable de política [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html#policy-vars-infotouse](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html#policy-vars-infotouse).

Cuando se evalúa la solicitud, la variable de condición se sustituye por el nombre de usuario del autor de la llamada. Por tanto, la condición necesita el contexto de cifrado `"user": "bob"` para "bob" y `"user": "alice"` para "alice".

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/TestTeam"
  },
  "Action": [
    "kms:Decrypt",
    "kms:Encrypt"
  ],
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:user": "${aws:username}"
    }
  }
}
```

Puede utilizar una variable de política de IAM únicamente en el valor del par de la clave de condición `kms:EncryptionContext:context-key`. No puede utilizar una variable en la clave.

También puede utilizar [claves de contexto específicas del proveedor](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_user-id.html) en las variables. Estas claves de contexto identifican de forma exclusiva a los usuarios que han iniciado sesión AWS mediante la federación de identidades web. 

Al igual que todas las variables, estas solo se pueden utilizar en la condición de política `kms:EncryptionContext:context-key`, no en el contexto de cifrado real. Y solo se pueden utilizar en el valor de la condición, no en la clave.

Por ejemplo, la siguiente declaración de política de clave es similar a la anterior. Sin embargo, la condición requiere un contexto de cifrado en el que la clave sea `sub` y el valor identifique de forma inequívoca a un usuario que ha iniciado sesión en un grupo de usuarios de Amazon Cognito. Para obtener más información acerca de la identificación de usuarios y roles en Amazon Cognito, consulte [Roles de IAM](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html)en la [Guía para desarrolladores de Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/).

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/TestTeam"
  },
  "Action": [
    "kms:Decrypt",
    "kms:Encrypt"
  ],
  "Resource": "*",
  "Condition": {
    "StringEquals": {
       "kms:EncryptionContext:sub": "${cognito-identity.amazonaws.com:sub}"
    }
  }
}
```

**Véase también**
+ [kms: EncryptionContextKeys](#conditions-kms-encryption-context-keys)
+ [kms: GrantConstraintType](#conditions-kms-grant-constraint-type)

## kms: EncryptionContextKeys
<a name="conditions-kms-encryption-context-keys"></a>


| AWS KMS claves de condición | Tipo de condición | Tipo de valor | Operaciones de la API | Tipo de política | 
| --- | --- | --- | --- | --- | 
|  `kms:EncryptionContextKeys`  |  Cadena (lista)  | Multivalor |  `CreateGrant` `Decrypt` `Encrypt` `GenerateDataKey` `GenerateDataKeyPair` `GenerateDataKeyPairWithoutPlaintext` `GenerateDataKeyWithoutPlaintext` `ReEncrypt` `RetireGrant`  |  Políticas de claves y políticas de IAM  | 

Puede usar la clave de condición `kms:EncryptionContextKeys` para controlar el acceso a una [clave KMS de cifrado simétrica](symm-asymm-choose-key-spec.md#symmetric-cmks) en función del [contexto de cifrado](encrypt_context.md) de una solicitud para una operación criptográfica. Utilice esta clave de condición para evaluar únicamente la clave de cada par de contexto de cifrado. Utilice esta clave de condición `kms:EncryptionContext:context-key` para evaluar la clave y el valor del par de contexto de cifrado.

No puede especificar un contexto de cifrado en una operación criptográfica con una [clave KMS asimétrica](symmetric-asymmetric.md) o una [clave KMS HMAC](hmac.md). Los algoritmos asimétricos y los algoritmos MAC no son compatibles con un contexto de cifrado.

**nota**  
Los valores de las claves de condición, incluida una clave de contexto de cifrado, deben ajustarse a las reglas de caracteres y codificación de las políticas de AWS KMS claves. Es posible que no pueda utilizar esta clave de condición para expresar todas las claves de contexto de cifrado válidas. Para obtener más información sobre las reglas del documento de política de claves, consulte [Formato de la política de claves](key-policy-overview.md#key-policy-format). Para obtener más información sobre las reglas del documento de política de IAM, consulte [Requisitos de nombres de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-names) en la *Guía del usuario de IAM*.

Esta es una [clave de condición multivalor](#set-operators). Puede especificar varios pares de contexto de cifrado en cada solicitud de la API. `kms:EncryptionContextKeys` compara las claves de contexto de cifrado de la solicitud con el conjunto de claves de contexto de cifrado de la política. Para determinar cómo se comparan estos conjuntos, debe proporcionar un operador de conjuntos `ForAnyValue` o `ForAllValues` en la condición de política. Para conocer los detalles sobre los operadores de conjuntos, consulte [Uso de múltiples claves y valores](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html#reference_policies_multi-key-or-value-conditions) en la Guía del usuario de IAM.
+ `ForAnyValue`: al menos una clave de contexto de cifrado en la solicitud debe coincidir con una clave de contexto de cifrado en la condición de política. Se permiten otras claves de contexto de cifrado. Si la solicitud no tiene contexto de cifrado, la condición no se cumple.
+ `ForAllValues`: cada clave de contexto de cifrado de la solicitud debe coincidir con una clave de contexto de cifrado en la condición de política. Este operador de conjunto limita las claves de contexto de cifrado a aquellas en la condición de política. No requiere ninguna clave de contexto de cifrado, pero prohíbe las claves de contexto de cifrado no especificadas.

En la siguiente declaración de política de claves de ejemplo se utiliza la condición `kms:EncryptionContextKeys` con la clave de condición del operador de conjuntos `ForAnyValue`. Esta declaración de la política utiliza la clave KMS para las operaciones especificadas, pero solamente cuando al menos uno de los pares de contexto de cifrado de la solicitud incluye la clave `AppName`, independientemente de su valor. 

Por ejemplo, esta declaración de política de claves permite una solicitud `GenerateDataKey` con dos pares de contexto de cifrado, `AppName=Helper` y `Project=Alpha`, porque el primer par de contexto de cifrado cumple con la condición. Una solicitud con solo `Project=Alpha` o sin contexto de cifrado fallaría.

Como la operación de la [StringEquals](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)condición distingue entre mayúsculas y minúsculas, esta declaración de política exige que la clave de contexto de cifrado esté escrita y escrita en mayúsculas y minúsculas. Sin embargo, puede utilizar un operador de condición que omita el uso de mayúsculas y minúsculas de la clave, como `StringEqualsIgnoreCase`.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": [
    "kms:Encrypt",
    "kms:GenerateDataKey*"
  ],
  "Resource": "*",
  "Condition": {
    "ForAnyValue:StringEquals": {
      "kms:EncryptionContextKeys": "AppName"
    }
  }
}
```

También puede utilizar la clave de condición `kms:EncryptionContextKeys` para solicitar un contexto de cifrado (cualquier contexto de cifrado) en las operaciones criptográficas que utilizan la clave KMS. 

La siguiente declaración de política de ejemplo utiliza la clave de condición `kms:EncryptionContextKeys` con el [operador de condición Null](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_Null) para permitir el acceso para utilizar una clave KMS de solo cuando el contexto de cifrado de la solicitud de la API no sea nulo. Esta condición no comprueba las claves ni los valores del contexto de cifrado. Solo verifica que existe el contexto de cifrado. 

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": [
    "kms:Encrypt",
    "kms:GenerateDataKey*"
  ],
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:EncryptionContextKeys": false
    }
  }
}
```

**Véase también**
+ [kmsEncryptionContext: clave de *contexto*](#conditions-kms-encryption-context)
+ [kms: GrantConstraintType](#conditions-kms-grant-constraint-type)

## km: ExpirationModel
<a name="conditions-kms-expiration-model"></a>


| AWS KMS claves de condición | Tipo de condición | Tipo de valor | Operaciones de la API | Tipo de política | 
| --- | --- | --- | --- | --- | 
|  `kms:ExpirationModel`  |  Cadena  | Valor único |  `ImportKeyMaterial`  |  Políticas de claves y políticas de IAM  | 

La clave de `kms:ExpirationModel` condición controla el acceso a la [ImportKeyMaterial](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html)operación en función del valor del [ExpirationModel](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html#KMS-ImportKeyMaterial-request-ExpirationModel)parámetro de la solicitud. 

`ExpirationModel` es un parámetro opcional que determina si el material de claves importado vence. Los valores válidos son `KEY_MATERIAL_EXPIRES` y `KEY_MATERIAL_DOES_NOT_EXPIRE`. El valor predeterminado es `KEY_MATERIAL_EXPIRES`. 

La fecha y la hora de caducidad vienen determinadas por el valor del [ValidTo](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html#KMS-ImportKeyMaterial-request-ValidTo)parámetro. El parámetro `ValidTo` es necesario a menos que el valor del parámetro `ExpirationModel` sea `KEY_MATERIAL_DOES_NOT_EXPIRE`. También puede usar la clave de ValidTo condición [kms:](#conditions-kms-valid-to) para exigir una fecha de caducidad determinada como condición de acceso.

La siguiente declaración de política de ejemplo utiliza la clave de condición `kms:ExpirationModel` para permitir a los usuarios importar solamente material de claves en una clave KMS cuando la solicitud incluye el parámetro `ExpirationModel` y su valor sea `KEY_MATERIAL_DOES_NOT_EXPIRE`. 

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:ImportKeyMaterial",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:ExpirationModel": "KEY_MATERIAL_DOES_NOT_EXPIRE"
    }
  }
}
```

También puede utilizar la clave de condición `kms:ExpirationModel` para que un usuario solamente pueda importar material de claves cuando expire el material de claves. En el ejemplo siguiente, la declaración de la política de clave utiliza la clave de condición `kms:ExpirationModel` con el [operador de condición Null](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_Null) para que un usuario solamente pueda importar material de claves cuando la solicitud no contenga un parámetro `ExpirationModel`. El valor predeterminado ExpirationModel es`KEY_MATERIAL_EXPIRES`.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:ImportKeyMaterial",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:ExpirationModel": true
    }
  }
}
```

**Véase también**
+ [kms: ValidTo](#conditions-kms-valid-to)
+ [km: WrappingAlgorithm](#conditions-kms-wrapping-algorithm)
+ [km: WrappingKeySpec](#conditions-kms-wrapping-key-spec)

## kms: GrantConstraintType
<a name="conditions-kms-grant-constraint-type"></a>


| AWS KMS claves de condición | Tipo de condición | Tipo de valor | Operaciones de la API | Tipo de política | 
| --- | --- | --- | --- | --- | 
|  `kms:GrantConstraintType`  |  Cadena  | Valor único |  `CreateGrant` `RetireGrant`  |  Políticas de claves y políticas de IAM  | 

Puede utilizar esta clave de condición para controlar el acceso a la [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)operación en función del tipo de [restricción de concesión](create-grant-overview.md#grant-constraints) de la solicitud. 

Al crear una concesión, también puede especificar una restricción de concesión para permitir las operaciones que permite la concesión solo cuando esté presente un determinado [contexto de cifrado](encrypt_context.md). La restricción de concesión puede ser uno de estos dos tipos: `EncryptionContextEquals` o `EncryptionContextSubset`. Puede usar esta clave de condición para comprobar que la solicitud contiene un tipo u otro.

**importante**  
No incluya información confidencial en este campo. Este campo puede mostrarse en texto plano en CloudTrail los registros y otros resultados.

En la siguiente declaración de política de clave utiliza la clave de condición `kms:GrantConstraintType` para permitir que un usuario cree concesiones solo cuando la solicitud incluya una restricción de concesión `EncryptionContextEquals`. En el ejemplo se muestra una declaración de política en una política de claves.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:CreateGrant",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:GrantConstraintType": "EncryptionContextEquals"
    }
  }
}
```

**Véase también**
+ [kmsEncryptionContext: clave de *contexto*](#conditions-kms-encryption-context)
+ [kms: EncryptionContextKeys](#conditions-kms-encryption-context-keys)
+ [km: GrantIsFor AWSResource](#conditions-kms-grant-is-for-aws-resource)
+ [kms: GrantOperations](#conditions-kms-grant-operations)
+ [km: GranteePrincipal](#conditions-kms-grantee-principal)
+ [km: RetiringPrincipal](#conditions-kms-retiring-principal)

## km: GrantIsFor AWSResource
<a name="conditions-kms-grant-is-for-aws-resource"></a>


| AWS KMS claves de condición | Tipo de condición | Tipo de valor | Operaciones de la API | Tipo de política | 
| --- | --- | --- | --- | --- | 
|  `kms:GrantIsForAWSResource`  |  Booleano  | Valor único |  `CreateGrant` `ListGrants` `RevokeGrant`  |  Políticas de claves y políticas de IAM  | 

Permite o deniega el [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)permiso para [RevokeGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html)las operaciones o solo cuando un [AWS servicio integrado AWS KMS](https://aws.amazon.com/kms/features/#AWS_Service_Integration) llama a la operación en nombre del usuario. [ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html) Esta condición de política no permite al usuario realizar estas operaciones de concesión directamente.

La siguiente declaración de política de ejemplo utiliza la clave de condición `kms:GrantIsForAWSResource`. Permite a AWS los servicios integrados AWS KMS, como Amazon EBS, crear concesiones en esta clave de KMS en nombre del principal especificado. 

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": "kms:CreateGrant",
  "Resource": "*",
  "Condition": {
    "Bool": {
      "kms:GrantIsForAWSResource": true
    }
  }
}
```

**Véase también**
+ [kms: GrantConstraintType](#conditions-kms-grant-constraint-type)
+ [kms: GrantOperations](#conditions-kms-grant-operations)
+ [km: GranteePrincipal](#conditions-kms-grantee-principal)
+ [km: RetiringPrincipal](#conditions-kms-retiring-principal)

## kms: GrantOperations
<a name="conditions-kms-grant-operations"></a>


| AWS KMS claves de condición | Tipo de condición | Tipo de valor | Operaciones de la API | Tipo de política | 
| --- | --- | --- | --- | --- | 
|  `kms:GrantOperations`  |  Cadena  | Multivalor |  `CreateGrant`  |  Políticas de claves y políticas de IAM  | 

Puede utilizar esta clave de condición para controlar el acceso a la [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)operación en función de [las operaciones de concesión](grants.md#terms-grant-operations) de la solicitud. Por ejemplo, puede permitir que los usuarios creen concesiones que deleguen el permiso para cifrar pero no para descifrar. Para obtener más información acerca de concesiones, consulte [Uso de concesiones](grants.md).

Esta es una [clave de condición de varios valores](#set-operators). `kms:GrantOperations` compara el conjunto de operaciones de concesión en la solicitud `CreateGrant` al conjunto de operaciones de concesión de la política. Para determinar cómo se comparan estos conjuntos, debe proporcionar un operador de conjuntos `ForAnyValue` o `ForAllValues` en la condición de política. Para conocer los detalles sobre los operadores de conjuntos, consulte [Uso de múltiples claves y valores](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html#reference_policies_multi-key-or-value-conditions) en la Guía del usuario de IAM.
+ `ForAnyValue`: al menos una operación de concesión en la solicitud debe coincidir con una de las operaciones de concesión en la condición de política. Se permiten otras operaciones de concesión.
+ ForAllValues: Cada operación de subvención incluida en la solicitud debe coincidir con una operación de subvención incluida en la condición de la política. Este operador de conjuntos limita las operaciones de concesión a las especificadas en la condición de política. No requiere ninguna operación de concesión, pero prohíbe operaciones de concesión no especificadas.

  ForAllValues también devuelve el valor true cuando no hay operaciones de subvención en la solicitud, pero `CreateGrant` no las permite. Si el parámetro `Operations` falta o tiene un valor nulo, la solicitud `CreateGrant` falla.

La siguiente declaración de política de clave de ejemplo utiliza la clave de condición `kms:GrantOperations` para crear concesiones solo cuando las operaciones de concesión sean `Encrypt`, `ReEncryptTo` o ambas. Si la concesión incluye cualquier otra operación, la solicitud `CreateGrant` falla.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": "kms:CreateGrant",
  "Resource": "*",
  "Condition": {
    "ForAllValues:StringEquals": {
      "kms:GrantOperations": [
        "Encrypt",
        "ReEncryptTo"
      ]
    }
  }
}
```

Si cambia el operador de conjuntos en la condición de política a `ForAnyValue`, la declaración de política requerirá que al menos una de las operaciones de concesión sea `Encrypt` o `ReEncryptTo`, pero permitirá otras operaciones de concesión, como `Decrypt` o `ReEncryptFrom`.

**Véase también**
+ [kms: GrantConstraintType](#conditions-kms-grant-constraint-type)
+ [km: GrantIsFor AWSResource](#conditions-kms-grant-is-for-aws-resource)
+ [km: GranteePrincipal](#conditions-kms-grantee-principal)
+ [km: RetiringPrincipal](#conditions-kms-retiring-principal)

## km: GranteePrincipal
<a name="conditions-kms-grantee-principal"></a>


| AWS KMS claves de condición | Tipo de condición | Tipo de valor | Operaciones de la API | Tipo de política | 
| --- | --- | --- | --- | --- | 
|  `kms:GranteePrincipal`  |  Cadena  | Valor único |  `CreateGrant`  |  Políticas de IAM y de claves  | 

Puede utilizar esta clave de condición para controlar el acceso a la [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)operación en función del valor del [GranteePrincipal](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html#KMS-CreateGrant-request-GranteePrincipal)parámetro de la solicitud. Por ejemplo, puede crear concesiones para utilizar una clave KMS cuando la entidad principal del beneficiario en la solicitud `CreateGrant` coincida con la entidad principal especificada en la declaración de la condición.

Para especificar la entidad principal del beneficiario utilice el nombre de recurso de Amazon (ARN) de una entidad principal de AWS . Entre los principales válidos se incluyen Cuentas de AWS los usuarios de IAM, los roles de IAM, los usuarios federados y los usuarios con roles asumidos. Para obtener ayuda con la sintaxis del ARN de un principal, consulte [IAM ARNs en la Guía del usuario de *IAM*](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns).

En el ejemplo siguiente, la declaración de la política de claves utiliza la clave de condición `kms:GranteePrincipal` para crear concesiones de una clave KMS cuando la entidad principal del beneficiario de la concesión sea `LimitedAdminRole`.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": "kms:CreateGrant",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:GranteePrincipal": "arn:aws:iam::111122223333:role/LimitedAdminRole"
    }
  }
}
```

**Véase también**
+ [kms: GrantConstraintType](#conditions-kms-grant-constraint-type)
+ [km: GrantIsFor AWSResource](#conditions-kms-grant-is-for-aws-resource)
+ [kms: GrantOperations](#conditions-kms-grant-operations)
+ [km: RetiringPrincipal](#conditions-kms-retiring-principal)

## kms: KeyAgreementAlgorithm
<a name="conditions-kms-key-agreement-algorithm"></a>


| AWS KMS claves de condición | Tipo de condición | Tipo de valor | Operaciones de la API | Tipo de política | 
| --- | --- | --- | --- | --- | 
|  `kms:KeyAgreementAlgorithm`  |  Cadena  | Valor único | `DeriveSharedSecret` |  Políticas de claves y políticas de IAM  | 

Puede utilizar la clave de `kms:KeyAgreementAlgorithm` condición para controlar el acceso a la [DeriveSharedSecret](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeriveSharedSecret.html)operación en función del valor del `KeyAgreementAlgorithm` parámetro de la solicitud. Para `KeyAgreementAlgorithm`, el único valor válido es `ECDH`.

Por ejemplo, la siguiente declaración de política clave utiliza la clave de `kms:KeyAgreementAlgorithm` condición para denegar todo acceso a DeriveSharedSecret menos que lo `KeyAgreementAlgorithm` sea`ECDH`.

```
{
       "Effect": "Deny",
       "Principal": {
         "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
       },
       "Action": "kms:DeriveSharedSecret",
       "Resource": "*",
       "Condition": {
            "StringNotEquals": {
               "kms:KeyAgreementAlgorithm": "ECDH"
         }
       }
}
```

**Véase también**
+ [kms: KeyUsage](#conditions-kms-key-usage)

## km: KeyOrigin
<a name="conditions-kms-key-origin"></a>


| AWS KMS claves de condición | Tipo de condición | Tipo de valor | Operaciones de la API | Tipo de política | 
| --- | --- | --- | --- | --- | 
|  `kms:KeyOrigin`  |  Cadena  | Valor único |  `CreateKey` Operaciones de recursos de claves KMS  |  Políticas de IAM Políticas de claves y políticas de IAM  | 

La clave de condición `kms:KeyOrigin` controla el acceso a las operaciones en función del valor de la propiedad `Origin` de clave KMS creada por la operación o utilizada en ella. Funciona como una condición de recurso o una condición de solicitud.

Puede utilizar esta clave de condición para controlar el acceso a la [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)operación en función del valor del parámetro [Origin](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html#KMS-CreateKey-request-Origin) de la solicitud. Los valores válidos para `Origin` son `AWS_KMS`, `AWS_CLOUDHSM`, `EXTERNAL_KEY_STORE` y `EXTERNAL`. 

Por ejemplo, puede crear una clave KMS solo cuando el material clave se genere en AWS KMS (`AWS_KMS`), solo cuando el material clave se genere en un AWS CloudHSM clúster que esté asociado a un almacén de [claves personalizado de CloudHSM](key-store-overview.md#custom-key-store-overview) `AWS_CLOUDHSM` (), solo cuando el material clave se genere en [un almacén de claves externo](key-store-overview.md#custom-key-store-overview) `EXTERNAL_KEY_STORE` () o solo cuando [el material clave se](importing-keys.md) importe de una fuente externa (). `EXTERNAL` 

El siguiente ejemplo de declaración de política clave usa la clave de `kms:KeyOrigin` condición para crear una clave KMS solo cuando AWS KMS crea el material clave.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
      },
      "Action": "kms:CreateKey",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "kms:KeyOrigin": "AWS_KMS"
        }
      }
    },
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
      },
      "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:GenerateDataKey",
        "kms:GenerateDataKeyWithoutPlaintext",
        "kms:GenerateDataKeyPair",
        "kms:GenerateDataKeyPairWithoutPlaintext",
        "kms:ReEncrypt*"
      ],
      "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
      "Condition": {
        "StringEquals": {
          "kms:KeyOrigin": "AWS_CLOUDHSM"
        }
      }
    }
  ]
}
```

------

También puede utilizar la clave de condición `kms:KeyOrigin` para controlar el acceso a las operaciones que utilizan o administran una clave de KMS en función de la propiedad `Origin` de la clave de KMS utilizada para la operación. La operación debe ser una *operación de recursos de clave KMS*, es decir, una operación que está autorizada para una clave KMS en particular. Para identificar las operaciones de recursos clave KMS, en la[Tabla de acciones y recursos](kms-api-permissions-reference.md#kms-api-permissions-reference-table), busque un valor de `KMS key` en la columna `Resources` para la operación.

Por ejemplo, la siguiente política de IAM permite a las entidades principales realizar las operaciones de recursos de clave KMS especificadas, pero solo con las claves KMS de la cuenta que se crearon en un almacén de claves personalizado.

```
{
  "Effect": "Allow",  
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:GenerateDataKey",
    "kms:GenerateDataKeyWithoutPlaintext",
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext",
    "kms:ReEncrypt*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringEquals": {
      "kms:KeyOrigin": "AWS_CLOUDHSM"
    }
  }
}
```

**Véase también**
+ [km: BypassPolicyLockoutSafetyCheck](#conditions-kms-bypass-policy-lockout-safety-check)
+ [kms: KeySpec](#conditions-kms-key-spec)
+ [kms: KeyUsage](#conditions-kms-key-usage)

## kms: KeySpec
<a name="conditions-kms-key-spec"></a>


| AWS KMS claves de condición | Tipo de condición | Tipo de valor | Operaciones de la API | Tipo de política | 
| --- | --- | --- | --- | --- | 
|  `kms:KeySpec`  |  Cadena  | Valor único |  `CreateKey` Operaciones de recursos de claves KMS |  Políticas de IAM Políticas de claves y políticas de IAM  | 

La clave de condición `kms:KeySpec` controla el acceso a las operaciones en función del valor de la propiedad `KeySpec` de clave KMS creada por la operación o utilizada en ella. 

Puede utilizar esta clave de condición en una política de IAM para controlar el acceso a la [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)operación en función del valor del [KeySpec](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html#KMS-CreateKey-request-KeySpec)parámetro de una `CreateKey` solicitud. Por ejemplo, puede utilizar esta condición para permitir a los usuarios crear solo claves KMS de cifrado simétricas o solo claves KMS HMAC.

El siguiente ejemplo la declaración de política de IAM utiliza la clave de condición `kms:KeySpec` para permitir a las entidades principales crear solo claves KMS asimétricas RSA. El permiso solo es válido cuando el `KeySpec` en la solicitud comienza con `RSA_`.

```
{
  "Effect": "Allow",
  "Action": "kms:CreateKey",
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:KeySpec": "RSA_*"
    }
  }
}
```

También puede utilizar la clave de condición `kms:KeySpec` para controlar el acceso a las operaciones que utilizan o administran una clave de KMS en función de la propiedad `KeySpec` de la clave de KMS utilizada para la operación. La operación debe ser una *operación de recursos de clave KMS*, es decir, una operación que está autorizada para una clave KMS en particular. Para identificar las operaciones de recursos clave de KMS, en la [tabla de acciones y recursos](kms-api-permissions-reference.md#kms-api-permissions-reference-table), busque un valor de `KMS key` en la columna `Resources` para la operación. 

Por ejemplo, la siguiente política de IAM permite a las entidades principales realizar las operaciones de recursos de clave KMS especificadas, pero solo con las claves KMS de cifrado simétricas de la cuenta. 

```
{
  "Effect": "Allow",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:DescribeKey"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringEquals": {
      "kms:KeySpec": "SYMMETRIC_DEFAULT"
    }
  }
}
```

**Véase también**
+ [km: BypassPolicyLockoutSafetyCheck](#conditions-kms-bypass-policy-lockout-safety-check)
+ [kms: CustomerMasterKeySpec (obsoleto)](#conditions-kms-key-spec-replaced)
+ [km: DataKeyPairSpec](#conditions-kms-data-key-spec)
+ [km: KeyOrigin](#conditions-kms-key-origin)
+ [kms: KeyUsage](#conditions-kms-key-usage)

## kms: KeyUsage
<a name="conditions-kms-key-usage"></a>


| AWS KMS claves de condición | Tipo de condición | Tipo de valor | Operaciones de la API | Tipo de política | 
| --- | --- | --- | --- | --- | 
|  `kms:KeyUsage`  |  Cadena  | Valor único |  `CreateKey` Operaciones de recursos de claves KMS  |  Políticas de IAM Políticas de claves y políticas de IAM  | 

La clave de condición `kms:KeyUsage` controla el acceso a las operaciones en función del valor de la propiedad `KeyUsage` de clave KMS creada por la operación o utilizada en ella. 

Puede utilizar esta clave de condición para controlar el acceso a la [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)operación en función del valor del [KeyUsage](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html#KMS-CreateKey-request-KeyUsage)parámetro de la solicitud. Los valores válidos para `KeyUsage` son `ENCRYPT_DECRYPT`, `SIGN_VERIFY`, `GENERATE_VERIFY_MAC` y `KEY_AGREEMENT`.

Por ejemplo, puede crear una clave KMS solo cuando `KeyUsage` sea `ENCRYPT_DECRYPT` o denegar un permiso de usuario cuando `KeyUsage` sea `SIGN_VERIFY`. 

En el siguiente ejemplo la declaración de política de IAM utiliza la clave de condición `kms:KeyUsage` para crear una clave KMS solo cuando `KeyUsage` sea `ENCRYPT_DECRYPT`.

```
{
  "Effect": "Allow",  
  "Action": "kms:CreateKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:KeyUsage": "ENCRYPT_DECRYPT"
    }
  }
}
```

También puede utilizar la clave de condición `kms:KeyUsage` para controlar el acceso a las operaciones que utilizan o administran una clave KMS en función de la propiedad `KeyUsage` de la clave KMS utilizada para la operación. La operación debe ser una *operación de recursos de clave KMS*, es decir, una operación que está autorizada para una clave KMS en particular. Para identificar las operaciones de recursos clave KMS, en la[Tabla de acciones y recursos](kms-api-permissions-reference.md#kms-api-permissions-reference-table), busque un valor de `KMS key` en la columna `Resources` para la operación.

Por ejemplo, la siguiente política de IAM permite a las entidades principales realizar las operaciones de recursos de clave KMS especificadas, pero solo con las claves KMS de la cuenta que se utilizan para la firma y la verificación.

```
{
  "Effect": "Allow",
  "Action": [
    "kms:CreateGrant",
    "kms:DescribeKey",
    "kms:GetPublicKey",
    "kms:ScheduleKeyDeletion"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringEquals": {
      "kms:KeyUsage": "SIGN_VERIFY"
    }
  }
}
```

**Véase también**
+ [km: BypassPolicyLockoutSafetyCheck](#conditions-kms-bypass-policy-lockout-safety-check)
+ [kms: CustomerMasterKeyUsage (obsoleto)](#conditions-kms-key-usage-replaced)
+ [km: KeyOrigin](#conditions-kms-key-origin)
+ [kms: KeySpec](#conditions-kms-key-spec)

## km: MacAlgorithm
<a name="conditions-kms-mac-algorithm"></a>


| AWS KMS claves de condición | Tipo de condición | Tipo de valor | Operaciones de la API | Tipo de política | 
| --- | --- | --- | --- | --- | 
|  `kms:MacAlgorithm`  |  Cadena  | Valor único | `GenerateMac``VerifyMac` |  Políticas de claves y políticas de IAM  | 

Puede utilizar la clave de `kms:MacAlgorithm` condición para controlar el acceso a las [VerifyMac](https://docs.aws.amazon.com/kms/latest/APIReference/API_VerifyMac.html)operaciones [GenerateMac](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateMac.html)y en función del valor del `MacAlgorithm` parámetro de la solicitud. 

El siguiente ejemplo de política de claves permite a los usuarios que pueden asumir el rol de `testers` utilizar la clave KMS HMAC para generar y verificar etiquetas HMAC solo cuando el algoritmo MAC de la solicitud es `HMAC_SHA_384` o `HMAC_SHA_512`. Esta política utiliza dos declaraciones de políticas independientes, cada una con su propia condición. Si especifica más de un algoritmo MAC en una única declaración de condición, la condición requiere ambos algoritmos, en lugar de uno u otro.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/testers"
      },
      "Action": [
        "kms:GenerateMac",
        "kms:VerifyMac"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "kms:MacAlgorithm": "HMAC_SHA_384"
        }
      }
    },
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/testers"
      },
      "Action": [
        "kms:GenerateMac",
        "kms:VerifyMac"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "kms:MacAlgorithm": "HMAC_SHA_512"
        }
      }
    }
  ]
}
```

------

**Véase también**
+ [km: EncryptionAlgorithm](#conditions-kms-encryption-algorithm)
+ [km: SigningAlgorithm](#conditions-kms-signing-algorithm)

## km: MessageType
<a name="conditions-kms-message-type"></a>


| AWS KMS claves de condición | Tipo de condición | Tipo de valor | Operaciones de la API | Tipo de política | 
| --- | --- | --- | --- | --- | 
|  `kms:MessageType`  |  Cadena  | Valor único |  `Sign` `Verify`  | Políticas de claves y políticas de IAM | 

La clave de condición `kms:MessageType` controla el acceso a las operaciones [Sign](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html) y [Verify](https://docs.aws.amazon.com/kms/latest/APIReference/API_Verify.html) en función del valor del parámetro `MessageType` de la solicitud. Los valores válidos para `MessageType` son `RAW` y `DIGEST`. 

Por ejemplo, la siguiente declaración de política de claves utiliza la clave de condición `kms:MessageType` para utilizar una clave KMS asimétrica para firmar un mensaje, pero no un resumen de mensajes.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": "kms:Sign",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:MessageType": "RAW"
    }
  }
}
```

**Véase también**
+ [km: SigningAlgorithm](#conditions-kms-signing-algorithm)

## km: MultiRegion
<a name="conditions-kms-multiregion"></a>


| AWS KMS claves de condición | Tipo de condición | Tipo de valor | Operaciones de la API | Tipo de política | 
| --- | --- | --- | --- | --- | 
|  `kms:MultiRegion`  |  Booleano  | Valor único |  `CreateKey` Operaciones de recursos de claves KMS  |  Políticas de claves y políticas de IAM  | 

Puede utilizar esta clave de condición para permitir operaciones solo en claves de una región o solo en [claves de varias regiones](multi-region-keys-overview.md). La clave de `kms:MultiRegion` condición controla el acceso a AWS KMS las operaciones en las claves de KMS y a la [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)operación en función del valor de la `MultiRegion` propiedad de la clave de KMS. Los valores válidos son `true` (de varias regiones) y `false` (de una sola región). Todas las claves KMS tienen una propiedad `MultiRegion`.

El siguiente ejemplo la declaración de política de IAM utiliza la clave de condición `kms:MultiRegion` para permitir a las entidades principales crear solo claves de una sola región. 

```
{
  "Effect": "Allow",
  "Action": "kms:CreateKey",
  "Resource": "*",
  "Condition": {
    "Bool": {
      "kms:MultiRegion": false
    }
  }
}
```

## kms: MultiRegionKeyType
<a name="conditions-kms-multiregion-key-type"></a>


| AWS KMS claves de condición | Tipo de condición | Tipo de valor | Operaciones de la API | Tipo de política | 
| --- | --- | --- | --- | --- | 
|  `kms:MultiRegionKeyType`  |  Cadena  | Valor único |  `CreateKey` Operaciones de recursos de claves KMS  |  Políticas de claves y políticas de IAM  | 

Puede utilizar esta clave de condición para permitir operaciones solo en [claves principales de varias regiones](multi-region-keys-overview.md#mrk-primary-key) o solo en [claves de réplicas de varias regiones](multi-region-keys-overview.md#mrk-replica-key). La clave de `kms:MultiRegionKeyType` condición controla el acceso a AWS KMS las operaciones en las claves de KMS y la [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)operación en función de la `MultiRegionKeyType` propiedad de la clave de KMS. Los valores válidos son `PRIMARY` y `REPLICA`. Solo las claves de varias regiones tienen una propiedad `MultiRegionKeyType`.

Normalmente, utilice la clave de condición `kms:MultiRegionKeyType` en una política de IAM para controlar el acceso a varias claves KMS. Sin embargo, dado que una clave de varias regiones puede cambiar a principal o réplica, es posible que desee utilizar esta condición en una política de clave para permitir una operación solo cuando la clave de varias regiones concreta sea una clave principal o de réplica.

Por ejemplo, la siguiente declaración de política de IAM utiliza la clave de condición `kms:MultiRegionKeyType` para permitir que las principales entidades programen y cancelen la eliminación de claves solo en claves de réplica de varias regiones en la Cuenta de AWS especificada. 

```
{
  "Effect": "Allow",
  "Action": [
    "kms:ScheduleKeyDeletion",
    "kms:CancelKeyDeletion"
  ],
  "Resource": "arn:aws:kms:*:111122223333:key/*",
  "Condition": {
    "StringEquals": {
      "kms:MultiRegionKeyType": "REPLICA"
    }
  }
}
```

Para permitir o denegar el acceso a todas las claves de varias regiones, puede usar ambos valores o un valor nulo con `kms:MultiRegionKeyType`. Sin embargo, se recomienda utilizar la clave de MultiRegion condición [kms:](#conditions-kms-multiregion) para ello.

## kms: PrimaryRegion
<a name="conditions-kms-primary-region"></a>


| AWS KMS claves de condición | Tipo de condición | Tipo de valor | Operaciones de la API | Tipo de política | 
| --- | --- | --- | --- | --- | 
|  `kms:PrimaryRegion`  |  Cadena (lista)  | Valor único |  `UpdatePrimaryRegion`  |  Políticas de claves y políticas de IAM  | 

Puede utilizar esta clave de condición para limitar las regiones de destino de una [UpdatePrimaryRegion](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdatePrimaryRegion.html)operación. Estas son las Regiones de AWS que pueden alojar las claves principales de varias regiones. 

La clave de `kms:PrimaryRegion` condición controla el acceso a la [UpdatePrimaryRegion](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdatePrimaryRegion.html)operación en función del valor del `PrimaryRegion` parámetro. El `PrimaryRegion` parámetro especifica la [clave Región de AWS de réplica multirregional](multi-region-keys-overview.md#mrk-replica-key) que se va a convertir en principal. El valor de la condición es uno o más Región de AWS nombres, como `us-east-1` o`ap-southeast-2`, o patrones de nombres de regiones, como `eu-*`

Por ejemplo, la siguiente declaración de política utiliza la clave de condición `kms:PrimaryRegion` para permitir que las entidades principales actualicen la región principal de una clave de varias regiones a una de las cuatro regiones especificadas.

```
{
  "Effect": "Allow",
  "Action": "kms:UpdatePrimaryRegion",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/Developer"
  },
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:PrimaryRegion": [ 
         "us-east-1",
         "us-west-2",
         "eu-west-3",
         "ap-southeast-2"
      ]
    }
  }
}
```

## km: ReEncryptOnSameKey
<a name="conditions-kms-reencrypt-on-same-key"></a>


| AWS KMS claves de condición | Tipo de condición | Tipo de valor | Operaciones de la API | Tipo de política | 
| --- | --- | --- | --- | --- | 
|  `kms:ReEncryptOnSameKey`  |  Booleano  | Valor único |  `ReEncrypt`  |  Políticas de claves y políticas de IAM  | 

Puede usar esta clave de condición para controlar el acceso a la [ReEncrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html)operación en función de si la solicitud especifica una clave KMS de destino que sea la misma que se utilizó para el cifrado original. 

Por ejemplo, la siguiente declaración de política de clave utiliza la clave de condición `kms:ReEncryptOnSameKey` para volver a cifrar únicamente cuando la clave KMS de destino sea la misma que se utilizó para el cifrado original.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": "kms:ReEncrypt*",
  "Resource": "*",
  "Condition": {
    "Bool": {
      "kms:ReEncryptOnSameKey": true
    }
  }
}
```

## kms: RequestAlias
<a name="conditions-kms-request-alias"></a>


| AWS KMS claves de condición | Tipo de condición | Tipo de valor | Operaciones de la API | Tipo de política | 
| --- | --- | --- | --- | --- | 
|  `kms:RequestAlias`  |  Cadena (lista)  | Valor único |  [Operaciones criptográficas](kms-cryptography.md#cryptographic-operations) [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) [GetPublicKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html)  |  Políticas de claves y políticas de IAM  | 

Puede utilizar esta clave de condición para permitir una operación solo cuando la solicitud utiliza un alias determinado para identificar la clave KMS. La clave de condición `kms:RequestAlias` controla el acceso a una clave KMS utilizada en una operación criptográfica, `GetPublicKey`, o bien `DescribeKey` en función del [alias](kms-alias.md) que identifica esa clave KMS en la solicitud. (Esta condición de política no afecta a la [GenerateRandom](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateRandom.html)operación porque la operación no utiliza una clave o alias de KMS). 

Esta condición admite el [control de acceso basado en atributos](abac.md) (ABAC) AWS KMS, que permite controlar el acceso a las claves de KMS en función de las etiquetas y los alias de una clave de KMS. Puede utilizar etiquetas y alias para permitir o denegar el acceso a una clave KMS sin cambiar las políticas o las concesiones. Para obtener más información, consulte [ABAC para AWS KMS](abac.md).

Para especificar el alias en esta condición de política, utilice un [nombre del alias](concepts.md#key-id-alias-name), como, por ejemplo, `alias/project-alpha`, o un patrón de nombre de alias, como `alias/*test*`. No puede especificar una [ARN de alias](concepts.md#key-id-alias-ARN) en el valor de esta clave de condición.

Para satisfacer esta condición, el valor del parámetro `KeyId` de la solicitud debe tener un nombre de alias o ARN de alias coincidente. Si la solicitud utiliza un [identificador de clave](concepts.md#key-id) diferente, no cumple con la condición, incluso si identifica la misma clave KMS.

Por ejemplo, la siguiente declaración de política clave permite al director llamar a la [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)operación mediante la clave KMS. Sin embargo, esto solo está permitido cuando el valor del parámetro `KeyId` de la solicitud es `alias/finance-key` o un ARN de alias con ese nombre de alias, como por ejemplo `arn:aws:kms:us-west-2:111122223333:alias/finance-key`.

```
{
  "Sid": "Key policy using a request alias condition",
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/developer"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:RequestAlias": "alias/finance-key"
    }
  }
}
```

No puede usar esta clave de condición para controlar el acceso a las operaciones de alias, como [CreateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html)o [DeleteAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeleteAlias.html). Para obtener más información sobre cómo controlar el acceso a operaciones de alias, consulte [Control del acceso a alias](alias-access.md).

## km: ResourceAliases
<a name="conditions-kms-resource-aliases"></a>


| AWS KMS claves de condición | Tipo de condición | Tipo de valor | Operaciones de la API | Tipo de política | 
| --- | --- | --- | --- | --- | 
|  `kms:ResourceAliases`  |  Cadena (lista)  | Multivalor | Operaciones de recursos de claves KMS |  Solo políticas de IAM  | 

Utilice esta clave de condición para controlar el acceso a una clave KMS según los [alias](kms-alias.md) que estén asociados a la clave KMS. La operación debe ser una *operación de recursos de clave KMS*, es decir, una operación que está autorizada para una clave KMS en particular. Para identificar las operaciones de recursos clave de KMS, en la [tabla de acciones y recursos](kms-api-permissions-reference.md#kms-api-permissions-reference-table), busque un valor de `KMS key` en la columna `Resources` para la operación.

Esta condición admite el control de acceso basado en atributos (ABAC) en AWS KMS. Con ABAC, puede controlar el acceso a las claves KMS en función de las etiquetas asignadas a una clave KMS y los alias asociados a una clave KMS. Puede utilizar etiquetas y alias para permitir o denegar el acceso a una clave KMS sin cambiar las políticas o las concesiones. Para obtener más información, consulte [ABAC para AWS KMS](abac.md).

El alias debe ser único en una región Cuenta de AWS y, pero esta condición le permite controlar el acceso a varias claves de KMS de la misma región (mediante el operador de `StringLike` comparación) o a varias claves Regiones de AWS de KMS en distintas cuentas.

**nota**  
La ResourceAliases condición [kms:](#conditions-kms-resource-aliases) solo entra en vigor cuando la clave KMS se ajusta a la cuota de [alias por clave de KMS](resource-limits.md#aliases-per-key). Si una clave KMS supera esta cuota, las entidades principales que están autorizadas a usar la clave KMS mediante la condición `kms:ResourceAliases` se deniega el acceso a la clave KMS.

Para especificar el alias en esta condición de política, utilice un [nombre del alias](concepts.md#key-id-alias-name), como, por ejemplo, `alias/project-alpha`, o un patrón de nombre de alias, como `alias/*test*`. No puede especificar una [ARN de alias](concepts.md#key-id-alias-ARN) en el valor de esta clave de condición. Para satisfacer la condición, la clave KMS utilizada en la operación debe tener el alias especificado. No importa si la clave KMS se identifica o cómo se identifica en la solicitud de la operación.

Se trata de una clave de condición multivalor que compara el conjunto de alias asociado a una clave KMS con el conjunto de alias de la política. Para determinar cómo se comparan estos conjuntos, debe proporcionar un operador de conjuntos `ForAnyValue` o `ForAllValues` en la condición de política. Para conocer los detalles sobre los operadores de conjuntos, consulte [Uso de múltiples claves y valores](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html#reference_policies_multi-key-or-value-conditions) en la Guía del usuario de IAM.
+ ForAnyValue: Al menos un alias asociado a la clave de KMS debe coincidir con un alias de la condición de la política. Se permiten otros alias. Si la clave KMS no tiene alias, la condición no se cumple.
+ ForAllValues: Todos los alias asociados a la clave de KMS deben coincidir con un alias de la política. Este operador de conjuntos limita los alias asociados con la clave KMS a los que se encuentran en la condición de política. No requiere ningún alias, pero prohíbe los alias no especificados.

Por ejemplo, la siguiente declaración de política de IAM permite al director llamar a la [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)operación desde cualquier clave de KMS especificada Cuenta de AWS que esté asociada al `finance-key` alias. (Las políticas de clave de las claves KMS afectadas también deben permitir que la cuenta de la entidad principal las utilice para esta operación.) Para indicar que la condición se cumple cuando uno de los muchos alias que podrían estar asociados con la clave KMS es `alias/finance-key`, la condición utiliza el operador de conjuntos `ForAnyValue`. 

Ya que la condición `kms:ResourceAliases` se basa en el recurso, no en la solicitud, se realiza con éxito una llamada a `GenerateDataKey` para cualquier clave de KMS asociada con el alias `finance-key`, incluso si la solicitud utiliza un [ID de clave](concepts.md#key-id-key-id) o [ARN de clave](concepts.md#key-id-key-ARN) para identificar la clave de KMS. 

```
{
  "Sid": "AliasBasedIAMPolicy",
  "Effect": "Allow",
  "Action": "kms:GenerateDataKey",
  "Resource": [
    "arn:aws:kms:*:111122223333:key/*",
    "arn:aws:kms:*:444455556666:key/*"
  ],
  "Condition": {
    "ForAnyValue:StringEquals": {
      "kms:ResourceAliases": "alias/finance-key"
    }
  }
}
```

El siguiente ejemplo de declaración de política de IAM permite que la principal entidad habilite y deshabilite las claves KMS, pero solo cuando todos los alias de las claves KMS incluyen “`Test`“. Esta declaración de política utiliza dos condiciones. La condición con el operador de conjuntos `ForAllValues` requiere que todos los alias asociados con la clave KMS incluyan “Test” (Prueba). La condición con el operador de conjuntos `ForAnyValue` requiere que la clave KMS tenga al menos un alias con “Test” (Prueba). Sin la condición `ForAnyValue`, esta declaración de política habría permitido a la entidad principal utilizar claves KMS que no tenían alias.

```
{
  "Sid": "AliasBasedIAMPolicy",
  "Effect": "Allow",
  "Action": [
    "kms:EnableKey",
    "kms:DisableKey"
  ],
  "Resource": "arn:aws:kms:*:111122223333:key/*",
  "Condition": {
    "ForAllValues:StringLike": {
      "kms:ResourceAliases": [
        "alias/*Test*"
      ]
    },
    "ForAnyValue:StringLike": {
      "kms:ResourceAliases": [
        "alias/*Test*"
      ]
    }
  }
}
```

## kms: ReplicaRegion
<a name="conditions-kms-replica-region"></a>


| AWS KMS claves de condición | Tipo de condición | Tipo de valor | Operaciones de la API | Tipo de política | 
| --- | --- | --- | --- | --- | 
|  `kms:ReplicaRegion`  |  Cadena (lista)  | Valor único |  `ReplicateKey`  |  Políticas de claves y políticas de IAM  | 

Puede utilizar esta clave de condición para limitar el número de Regiones de AWS veces que un principal puede replicar una [clave multirregional](multi-region-keys-overview.md). La clave de `kms:ReplicaRegion` condición controla el acceso a la [ReplicateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)operación en función del valor del [ReplicaRegion](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html#KMS-CreateGrant-request-RetiringPrincipal)parámetro de la solicitud. Este parámetro especifica la Región de AWS para la nueva [clave de réplica](multi-region-keys-overview.md#mrk-replica-key). 

El valor de la condición es uno o más Región de AWS nombres, como `us-east-1` o`ap-southeast-2`, o patrones de nombres, como`eu-*`. Para obtener una lista de los nombres de Regiones de AWS esos AWS KMS soportes, consulte los [AWS Key Management Service puntos finales y las cuotas](https://docs.aws.amazon.com/general/latest/gr/kms.html) en. Referencia general de AWS

Por ejemplo, la siguiente declaración de política clave utiliza la clave de `kms:ReplicaRegion` condición para permitir que los directores llamen a la [ReplicateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReplicateKey.html)operación solo cuando el valor del `ReplicaRegion` parámetro es una de las regiones especificadas.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/Administrator"
  },
  "Action": "kms:ReplicateKey"
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:ReplicaRegion": [ 
         "us-east-1",
         "eu-west-3",
         "ap-southeast-2"
      ]
    }
  }
}
```

Esta clave de condición controla el acceso únicamente a la [ReplicateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReplicateKey.html)operación. Para controlar el acceso a la [UpdatePrimaryRegion](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdatePrimaryRegion.html)operación, utilice la clave de PrimaryRegion condición [kms:](#conditions-kms-primary-region).

## km: RetiringPrincipal
<a name="conditions-kms-retiring-principal"></a>


| AWS KMS claves de condición | Tipo de condición | Tipo de valor | Operaciones de la API | Tipo de política | 
| --- | --- | --- | --- | --- | 
|  `kms:RetiringPrincipal`  |  Cadena (lista)  | Valor único |  `CreateGrant`  |  Políticas de claves y políticas de IAM  | 

Puede utilizar esta clave de condición para controlar el acceso a la [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)operación en función del valor del [RetiringPrincipal](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html#KMS-CreateGrant-request-RetiringPrincipal)parámetro de la solicitud. Por ejemplo, puede crear concesiones para utilizar una clave KMS cuando el `RetiringPrincipal` de la solicitud `CreateGrant` coincida con el `RetiringPrincipal` de la declaración de la condición.

Para especificar la entidad principal de retirada utilice el nombre de recurso de Amazon (ARN) de una entidad principal de AWS . Entre los principales válidos se incluyen Cuentas de AWS los usuarios de IAM, los roles de IAM, los usuarios federados y los usuarios con roles asumidos. Para obtener ayuda con la sintaxis del ARN de un principal, consulte [IAM ARNs en la Guía del usuario de *IAM*](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns).

El siguiente ejemplo de declaración de política de claves permite a un usuario crear concesiones para la clave KMS. La clave de condición `kms:RetiringPrincipal` restringe el permiso a las solicitudes `CreateGrant` en las que la entidad principal a la cual se va a retirar la concesión sea el `LimitedAdminRole`.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": "kms:CreateGrant",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:RetiringPrincipal": "arn:aws:iam::111122223333:role/LimitedAdminRole"
    }
  }
}
```

**Véase también**
+ [kms: GrantConstraintType](#conditions-kms-grant-constraint-type)
+ [km: GrantIsFor AWSResource](#conditions-kms-grant-is-for-aws-resource)
+ [kms: GrantOperations](#conditions-kms-grant-operations)
+ [km: GranteePrincipal](#conditions-kms-grantee-principal)

## kms: RotationPeriodInDays
<a name="conditions-kms-rotation-period-in-days"></a>


| AWS KMS claves de condición | Tipo de condición | Tipo de valor | Operaciones de la API | Tipo de política | 
| --- | --- | --- | --- | --- | 
|  `kms:RotationPeriodInDays`  |  Numérico  | Valor único |  `EnableKeyRotation`  |  Políticas de claves y políticas de IAM  | 

Puede usar esta clave de condición para limitar los valores que los directores pueden especificar en el `RotationPeriodInDays` parámetro de una [EnableKeyRotation](https://docs.aws.amazon.com/kms/latest/APIReference/API_EnableKeyRotation.html)solicitud.

`RotationPeriodInDays`Especifica el número de días entre cada fecha de rotación automática de claves. AWS KMS permite especificar un período de rotación de entre 90 y 2560 días, pero puede utilizar la clave de `kms:RotationPeriodInDays` condición para restringir aún más el período de rotación, por ejemplo, imponiendo un período de rotación mínimo dentro del rango válido.

Por ejemplo, la siguiente declaración de política de claves utiliza la clave de condición `kms:RotationPeriodInDays` para impedir que las entidades principales habiliten rotación de claves si el periodo de rotación es inferior o igual a 180 días.

```
{
  "Effect": "Deny",
  "Action": "kms:EnableKeyRotation",
  "Principal": "*",
  "Resource": "*",
  "Condition" : {
      "NumericLessThanEquals" : {
        "kms:RotationPeriodInDays" : "180"
      }
  }
}
```

## km: ScheduleKeyDeletionPendingWindowInDays
<a name="conditions-kms-schedule-key-deletion-pending-window-in-days"></a>


| AWS KMS claves de condición | Tipo de condición | Tipo de valor | Operaciones de la API | Tipo de política | 
| --- | --- | --- | --- | --- | 
|  `kms:ScheduleKeyDeletionPendingWindowInDays`  |  Numérico  | Valor único |  `ScheduleKeyDeletion`  |  Políticas de claves y políticas de IAM  | 

Puede usar esta clave de condición para limitar los valores que los directores pueden especificar en el `PendingWindowInDays` parámetro de una [ScheduleKeyDeletion](https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html)solicitud.

`PendingWindowInDays`Especifica el número de días que deben AWS KMS transcurrir antes de eliminar una clave. AWS KMS permite especificar un período de espera de entre 7 y 30 días, pero puede usar la clave de `kms:ScheduleKeyDeletionPendingWindowInDays` condición para restringir aún más el período de espera, por ejemplo, imponiendo un período de espera mínimo dentro del rango válido.

Por ejemplo, la siguiente declaración de política de claves utiliza la clave de condición `kms:ScheduleKeyDeletionPendingWindowInDays` para impedir que las entidades principales programen la eliminación de claves si el periodo de espera es inferior o igual a 21 días.

```
{
  "Effect": "Deny",
  "Action": "kms:ScheduleKeyDeletion",
  "Principal": "*",
  "Resource": "*",
  "Condition" : {
      "NumericLessThanEquals" : {
        "kms:ScheduleKeyDeletionPendingWindowInDays" : "21"
      }
  }
}
```

## km: SigningAlgorithm
<a name="conditions-kms-signing-algorithm"></a>


| AWS KMS claves de condición | Tipo de condición | Tipo de valor | Operaciones de la API | Tipo de política | 
| --- | --- | --- | --- | --- | 
|  `kms:SigningAlgorithm`  |  Cadena  | Valor único |  `Sign`  `Verify`  |  Políticas de claves y políticas de IAM  | 

Puede usar la clave de `kms:SigningAlgorithm` condición para controlar el acceso a las operaciones de [firma](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html) y [verificación](https://docs.aws.amazon.com/kms/latest/APIReference/API_Verify.html) en función del valor del [SigningAlgorithm](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html#KMS-Sign-request-SigningAlgorithm)parámetro de la solicitud. Esta clave de condición no afecta a las operaciones realizadas fuera de AWS KMS, como la verificación de firmas con la clave pública en un par de claves KMS asimétricas fuera de. AWS KMS

La siguiente política de claves de ejemplo permite a los usuarios que puedan asumir el rol `testers` utilizar la clave KMS para firmar mensajes solo cuando el algoritmo de firma utilizado para la solicitud sea un algoritmo RSASSA\$1PSS, como `RSASSA_PSS_SHA512`.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/testers"
  },
  "Action": "kms:Sign",
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:SigningAlgorithm": "RSASSA_PSS*"
    }
  }
}
```

**Véase también**
+ [km: EncryptionAlgorithm](#conditions-kms-encryption-algorithm)
+ [km: MacAlgorithm](#conditions-kms-mac-algorithm)
+ [km: MessageType](#conditions-kms-message-type)

## kms: ValidTo
<a name="conditions-kms-valid-to"></a>


| AWS KMS claves de condición | Tipo de condición | Tipo de valor | Operaciones de la API | Tipo de política | 
| --- | --- | --- | --- | --- | 
|  `kms:ValidTo`  |  Timestamp  | Valor único |  `ImportKeyMaterial`  |  Políticas de claves y políticas de IAM  | 

La clave de `kms:ValidTo` condición controla el acceso a la [ImportKeyMaterial](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html)operación en función del valor del [ValidTo](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html#KMS-ImportKeyMaterial-request-ValidTo)parámetro de la solicitud, que determina cuándo caduca el material clave importado. El valor se expresa en [tiempo Unix](https://en.wikipedia.org/wiki/Unix_time).

De forma predeterminada, el parámetro `ValidTo` es obligatorio en las solicitudes `ImportKeyMaterial`. Sin embargo, si el valor del [ExpirationModel](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html#KMS-ImportKeyMaterial-request-ExpirationModel)parámetro es`KEY_MATERIAL_DOES_NOT_EXPIRE`, no es válido. `ValidTo` También puede usar la clave de ExpirationModel condición [kms:](#conditions-kms-expiration-model) para requerir el `ExpirationModel` parámetro o un valor de parámetro específico.

La siguiente declaración de política de ejemplo permite a un usuario importar material de claves en una clave KMS. La clave de condición `kms:ValidTo` limita el permiso a las solicitudes `ImportKeyMaterial` en las que el valor `ValidTo` sea menor o igual que `1546257599.0` (31 de diciembre de 2018 11:59:59 p. m.). 

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": "kms:ImportKeyMaterial",
  "Resource": "*",
  "Condition": {
    "NumericLessThanEquals": {
      "kms:ValidTo": "1546257599.0"
    }
  }
}
```

**Véase también**
+ [km: ExpirationModel](#conditions-kms-expiration-model) 
+ [km: WrappingAlgorithm](#conditions-kms-wrapping-algorithm)
+ [km: WrappingKeySpec](#conditions-kms-wrapping-key-spec)

## kms: ViaService
<a name="conditions-kms-via-service"></a>


| AWS KMS claves de condición | Tipo de condición | Tipo de valor | Operaciones de la API | Tipo de política | 
| --- | --- | --- | --- | --- | 
|  `kms:ViaService`  |  Cadena  | Valor único |  Operaciones de recursos de claves KMS  |  Políticas de claves y políticas de IAM  | 

La clave de `kms:ViaService` condición limita el uso de una clave KMS a las solicitudes especificadas Servicios de AWS. Esta clave de condición solo se aplica a las [sesiones de acceso directo](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html). Puede especificar uno o varios servicios en cada clave de condición `kms:ViaService`. La operación debe ser una *operación de recursos de clave KMS*, es decir, una operación que está autorizada para una clave KMS en particular. Para identificar las operaciones de recursos clave KMS, en la[Tabla de acciones y recursos](kms-api-permissions-reference.md#kms-api-permissions-reference-table), busque un valor de `KMS key` en la columna `Resources` para la operación.

Por ejemplo, la siguiente declaración de una política de claves utiliza la clave de condición `kms:ViaService` para permitir que se use una [clave administrada por el cliente](concepts.md#customer-mgn-key) para las acciones especificadas solo cuando la solicitud provenga de Amazon EC2 o Amazon RDS en la región EE. UU. Oeste (Oregón) en nombre de `ExampleRole`.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:ListGrants",
    "kms:DescribeKey"
  ],
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:ViaService": [
        "ec2.us-west-2.amazonaws.com",
        "rds.us-west-2.amazonaws.com"
      ]
    }
  }
}
```

También puede utilizar un clave de condición `kms:ViaService` para denegar permisos para usar una clave KMS cuando la solicitud provenga de determinados servicios. Por ejemplo, la siguiente declaración de una política de claves utiliza una clave de condición `kms:ViaService` para impedir que se utilice una clave administrada por el cliente para las operaciones `Encrypt` cuando la solicitud provenga de AWS Lambda en nombre de `ExampleRole`.

```
{
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt"    
  ],
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:ViaService": [
          "lambda.us-west-2.amazonaws.com"
      ]
    }
  }
}
```

**importante**  
Cuando se utiliza la clave de condición `kms:ViaService`, el servicio realiza la solicitud en nombre de una entidad principal de la Cuenta de AWS. Estas entidades principales deben tener los siguientes permisos:  
Permiso para usar la clave KMS. La entidad principal debe conceder estos permisos al servicio integrado para que pueda utilizar la clave administrada por el cliente en nombre de la entidad principal. Para obtener más información, consulte [Uso del AWS KMS cifrado con AWS servicios](service-integration.md).
Permiso para utilizar el servicio integrado. Para obtener más información sobre cómo dar a los usuarios acceso a un AWS servicio que se integra con él AWS KMS, consulte la documentación del servicio integrado.

Todas las [Claves administradas por AWS](concepts.md#aws-managed-key) utilizan una clave de condición `kms:ViaService` incluida en su documento de política de claves. Esta condición permite que solo se utilice la clave KMS para las solicitudes que proceden del servicio que ha creado la clave KMS. Para ver la política clave de un Clave administrada de AWS, utilice la [GetKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetKeyPolicy.html)operación. 

La clave de condición `kms:ViaService` es válida en IAM y las declaraciones de políticas de clave. Los servicios que especifique deben estar [integrados con AWS KMS](https://aws.amazon.com/kms/features/#AWS_Service_Integration) y admitir la clave de condición `kms:ViaService`.

### Servicios que admiten la clave de condición `kms:ViaService`
<a name="viaService_table"></a>

En la siguiente tabla se enumeran AWS los servicios que están integrados con la clave de `kms:ViaService` condición en las claves administradas por el cliente AWS KMS y que permiten su uso. Es posible que los servicios de esta tabla no estén disponibles en todas las regiones. Utilice el `.amazonaws.com` sufijo del AWS KMS ViaService nombre en todas las AWS particiones.

**nota**  
Es posible que deba desplazarse horizontal o verticalmente para ver todos los datos de esta tabla.


| Nombre del servicio | AWS KMS ViaService nombre | 
| --- | --- | 
| Amazon AI Operations | aiops.AWS\$1region.amazonaws.com | 
| AWS App Runner | apprunner.AWS\$1region.amazonaws.com | 
| AWS AppFabric | appfabric.AWS\$1region.amazonaws.com | 
| Amazon AppFlow | appflow.AWS\$1region.amazonaws.com | 
| AWS Application Migration Service | mgn.AWS\$1region.amazonaws.com | 
| Amazon Athena | athena.AWS\$1region.amazonaws.com | 
| AWS Audit Manager | auditmanager.AWS\$1region.amazonaws.com | 
| Amazon Aurora | rds.AWS\$1region.amazonaws.com | 
| AWS Backup | backup.AWS\$1region.amazonaws.com | 
| AWS Backup Gateway | backup-gateway.AWS\$1region.amazonaws.com | 
| Copia del modelo de Amazon Bedrock | bedrock.AWS\$1region.amazonaws.com | 
| Amazon Chime SDK | chimevoiceconnector.AWS\$1region.amazonaws.com | 
| AWS Clean Rooms ML | cleanrooms-ml.AWS\$1region.amazonaws.com | 
| AWS CodeArtifact | codeartifact.AWS\$1region.amazonaws.com | 
|  CodeGuru Revisor de Amazon | codeguru-reviewer.AWS\$1region.amazonaws.com | 
| Amazon Comprehend | comprehend.AWS\$1region.amazonaws.com | 
| Amazon Connect | connect.AWS\$1region.amazonaws.com | 
| Perfiles de clientes de Amazon Connect | profile.AWS\$1region.amazonaws.com | 
| Amazon Q en Connect | wisdom.AWS\$1region.amazonaws.com | 
| AWS Database Migration Service (AWS DMS) | dms.AWS\$1region.amazonaws.com | 
| AWS DeepRacer | deepracer.AWS\$1region.amazonaws.com | 
| AWS Directory Service | directoryservice.AWS\$1region.amazonaws.com | 
| Amazon DocumentDB | docdb-elastic.AWS\$1region.amazonaws.com | 
| Amazon DynamoDB | dynamodb.AWS\$1region.amazonaws.com | 
| Amazon EC2 Systems Manager (SSM) | ssm.AWS\$1region.amazonaws.com | 
| Amazon Elastic Block Store (Amazon EBS) | ec2.AWS\$1region.amazonaws.com (EBS solo) | 
| Amazon Elastic Container Registry (Amazon ECR) | ecr.AWS\$1region.amazonaws.com | 
| Amazon Elastic File System (Amazon EFS) | elasticfilesystem.AWS\$1region.amazonaws.com | 
| Amazon ElastiCache |  Incluye ambos ViaService nombres en el valor de la clave de condición: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/kms/latest/developerguide/conditions-kms.html)  | 
| AWS Elemental MediaTailor | mediatailor.AWS\$1region.amazonaws.com | 
| AWS Resolución de la entidad | entityresolution.AWS\$1region.amazonaws.com | 
| Amazon EventBridge | events.AWS\$1region.amazonaws.com | 
| Amazon FinSpace | finspace.AWS\$1region.amazonaws.com | 
| Amazon Forecast | forecast.AWS\$1region.amazonaws.com | 
| Amazon FSx | fsx.AWS\$1region.amazonaws.com | 
| AWS Glue | glue.AWS\$1region.amazonaws.com | 
| AWS Ground Station | groundstation.AWS\$1region.amazonaws.com | 
| Amazon GuardDuty | malware-protection.AWS\$1region.amazonaws.com | 
| AWS HealthLake | healthlake.AWS\$1region.amazonaws.com | 
| AWS IoT SiteWise | iotsitewise.AWS\$1region.amazonaws.com | 
| Amazon Kendra | kendra.AWS\$1region.amazonaws.com | 
| Amazon Keyspaces (para Apache Cassandra) | cassandra.AWS\$1region.amazonaws.com | 
| Amazon Kinesis | kinesis.AWS\$1region.amazonaws.com | 
| Amazon Data Firehose | firehose.AWS\$1region.amazonaws.com | 
| Amazon Kinesis Video Streams | kinesisvideo.AWS\$1region.amazonaws.com | 
| AWS Lambda | lambda.AWS\$1region.amazonaws.com | 
| Amazon Lex | lex.AWS\$1region.amazonaws.com | 
| AWS License Manager | license-manager.AWS\$1region.amazonaws.com | 
| Amazon Location Service | geo.AWS\$1region.amazonaws.com | 
| Amazon Lookout for Equipment | lookoutequipment.AWS\$1region.amazonaws.com | 
| Amazon Lookout for Metrics | lookoutmetrics.AWS\$1region.amazonaws.com | 
| Amazon Lookout for Vision | lookoutvision.AWS\$1region.amazonaws.com | 
| Amazon Macie | macie.AWS\$1region.amazonaws.com | 
| AWS Mainframe Modernization | m2.AWS\$1region.amazonaws.com | 
| AWS Mainframe Modernization Pruebas de aplicaciones | apptest.AWS\$1region.amazonaws.com | 
| Amazon Managed Blockchain | managedblockchain.AWS\$1region.amazonaws.com | 
| Amazon Managed Streaming for Apache Kafka (Amazon MSK) | kafka.AWS\$1region.amazonaws.com | 
| Amazon Managed Workflows para Apache Airflow (MWAA) | airflow.AWS\$1region.amazonaws.com | 
| Amazon MemoryDB | memorydb.AWS\$1region.amazonaws.com | 
| Amazon Monitron | monitron.AWS\$1region.amazonaws.com | 
| Amazon MQ | mq.AWS\$1region.amazonaws.com | 
| Amazon Neptune | rds.AWS\$1region.amazonaws.com | 
| Amazon Nimble Studio | nimble.AWS\$1region.amazonaws.com | 
| AWS HealthOmics | omics.AWS\$1region.amazonaws.com | 
|  OpenSearch Servicio Amazon | es.AWS\$1region.amazonaws.com, aoss.AWS\$1region.amazonaws.com | 
| Paquetes OpenSearch personalizados de Amazon | custom-packages.AWS\$1region.amazonaws.com | 
| AWS Proton | proton.AWS\$1region.amazonaws.com | 
| Amazon Quantum Ledger Database (Amazon QLDB) | qldb.AWS\$1region.amazonaws.com | 
| Información de rendimiento de Amazon RDS | rds.AWS\$1region.amazonaws.com | 
| Amazon Redshift | redshift.AWS\$1region.amazonaws.com | 
| Editor de consultas de Amazon Redshift V2 | sqlworkbench.AWS\$1region.amazonaws.com | 
| Amazon Redshift Serverless | redshift-serverless.AWS\$1region.amazonaws.com | 
| Amazon Rekognition | rekognition.AWS\$1region.amazonaws.com | 
| Amazon Relational Database Service (Amazon RDS) | rds.AWS\$1region.amazonaws.com | 
| Almacén de datos replicados de Amazon | ards.AWS\$1region.amazonaws.com | 
| Amazon SageMaker AI | sagemaker.AWS\$1region.amazonaws.com | 
| AWS Secrets Manager | secretsmanager.AWS\$1region.amazonaws.com | 
| Amazon Security Lake | securitylake.AWS\$1region.amazonaws.com | 
| Amazon Simple Email Service (Amazon SES) | ses.AWS\$1region.amazonaws.com | 
| Amazon Simple Notification Service (Amazon SNS) | sns.AWS\$1region.amazonaws.com | 
| Amazon Simple Queue Service (Amazon SQS) | sqs.AWS\$1region.amazonaws.com | 
| Amazon Simple Storage Service (Amazon S3) | s3.AWS\$1region.amazonaws.com | 
| Tablas de Amazon S3 | s3tables.AWS\$1region.amazonaws.com | 
| AWS Snowball Edge | importexport.AWS\$1region.amazonaws.com | 
| AWS Step Functions | states.AWS\$1region.amazonaws.com | 
| AWS Storage Gateway | storagegateway.AWS\$1region.amazonaws.com | 
| Administrador de incidentes de AWS Systems Manager | ssm-incidents.AWS\$1region.amazonaws.com | 
| Administrador de incidentes de AWS Systems Manager Contactos | ssm-contacts.AWS\$1region.amazonaws.com | 
| Amazon Timestream | timestream.AWS\$1region.amazonaws.com | 
| Amazon Translate | translate.AWS\$1region.amazonaws.com | 
| Acceso verificado de AWS | verified-access.AWS\$1region.amazonaws.com | 
| Amazon WorkMail | workmail.AWS\$1region.amazonaws.com | 
| Amazon WorkSpaces | workspaces.AWS\$1region.amazonaws.com | 
| Amazon WorkSpaces Thin Client | thinclient.AWS\$1region.amazonaws.com | 
| Amazon WorkSpaces Web | workspaces-web.AWS\$1region.amazonaws.com | 
| AWS X-Ray | xray.AWS\$1region.amazonaws.com | 

## km: WrappingAlgorithm
<a name="conditions-kms-wrapping-algorithm"></a>


| AWS KMS claves de condición | Tipo de condición | Tipo de valor | Operaciones de la API | Tipo de política | 
| --- | --- | --- | --- | --- | 
|  `kms:WrappingAlgorithm`  |  Cadena  | Valor único |  `GetParametersForImport`  |  Políticas de claves y políticas de IAM  | 

Esta clave de condición controla el acceso a la [GetParametersForImport](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html)operación en función del valor del [WrappingAlgorithm](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html#KMS-GetParametersForImport-request-WrappingAlgorithm)parámetro de la solicitud. Puede utilizar esta condición para exigir que las entidades principales usen un algoritmo para cifrar el material durante el proceso de importación. Las solicitudes de la clave pública y el token de importación necesarios no se realizan cuando especifican un algoritmo de encapsulamiento diferente.

La siguiente declaración de política de clave de ejemplo utiliza la clave de condición `kms:WrappingAlgorithm` para conceder al usuario de ejemplo permiso para llamar a la operación `GetParametersForImport`, pero le impide utilizar el algoritmo de encapsulamiento `RSAES_OAEP_SHA_1`. Cuando `WrappingAlgorithm` en la solicitud `GetParametersForImport` es `RSAES_OAEP_SHA_1`, se produce un error en la operación.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": "kms:GetParametersForImport",
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:WrappingAlgorithm": "RSAES_OAEP_SHA_1"
    }
  }
}
```

**Véase también**
+ [km: ExpirationModel](#conditions-kms-expiration-model)
+ [kms: ValidTo](#conditions-kms-valid-to)
+ [km: WrappingKeySpec](#conditions-kms-wrapping-key-spec)

## km: WrappingKeySpec
<a name="conditions-kms-wrapping-key-spec"></a>


| AWS KMS claves de condición | Tipo de condición | Tipo de valor | Operaciones de la API | Tipo de política | 
| --- | --- | --- | --- | --- | 
|  `kms:WrappingKeySpec`  |  Cadena  | Valor único |  `GetParametersForImport`  |  Políticas de claves y políticas de IAM  | 

Esta clave de condición controla el acceso a la [GetParametersForImport](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html)operación en función del valor del [WrappingKeySpec](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html#KMS-GetParametersForImport-request-WrappingKeySpec)parámetro de la solicitud. Puede utilizar esta condición para exigir que las entidades principales usen un determinado tipo de clave pública durante el proceso de importación. Si la solicitud especifica un tipo de clave diferente, produce un error.

Como el único valor válido del parámetro `WrappingKeySpec` es `RSA_2048`, al impedir que los usuarios utilicen este valor, se evita que utilicen la operación `GetParametersForImport`. 

En el ejemplo siguiente, la declaración de la política utiliza la clave de condición `kms:WrappingAlgorithm` para requerir que el parámetro `WrappingKeySpec` de la solicitud sea `RSA_4096`.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": "kms:GetParametersForImport",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:WrappingKeySpec": "RSA_4096"
    }
  }
}
```

**Véase también**
+ [km: ExpirationModel](#conditions-kms-expiration-model)
+ [kms: ValidTo](#conditions-kms-valid-to)
+ [km: WrappingAlgorithm](#conditions-kms-wrapping-algorithm)