

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.

# Subvenciones en AWS KMS
<a name="grants"></a>

Una *concesión* es un instrumento de política que permite que las [principales entidades de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html#intro-structure-principal) usen claves KMS en operaciones criptográficas. También puede permitirles ver una clave KMS (`DescribeKey`) y crear y administrar concesiones. Al autorizar el acceso a una clave KMS, se consideran concesiones junto con [políticas de claves](key-policies.md) y [políticas de IAM](iam-policies.md). Las concesiones se utilizan a menudo para permisos temporales, ya que puede crear uno, utilizar sus permisos y eliminarlo sin cambiar las políticas de claves o las políticas de IAM.

Los AWS servicios que se integran AWS KMS para cifrar los datos en reposo suelen utilizar las subvenciones. El servicio crea una concesión en nombre de un usuario de la cuenta, utiliza sus permisos y retira la concesión tan pronto como finalice su tarea. Para obtener más información sobre cómo AWS los servicios utilizan las subvenciones, consulta el tema El *cifrado en reposo* en la guía del usuario o la guía para desarrolladores del servicio.

Las concesiones son un mecanismo de control de acceso muy flexible y útil. Al crear una concesión para una clave de KMS, la concesión permite a las entidades principales beneficiarias llamar a las operaciones de concesión especificadas en la clave de KMS siempre que se cumplan todas las condiciones especificadas en la concesión. 
+ Cada concesión permite el acceso a exactamente una clave KMS. Puede crear una concesión para una clave KMS en una Cuenta de AWS diferente.
+ Una concesión puede permitir el acceso a una clave KMS, pero no denegar el acceso.
+ Cada concesión tiene una [entidad principal beneficiaria](#terms-grantee-principal). El titular de la subvención puede representar una o más identidades en la Cuenta de AWS misma clave de KMS o en una cuenta diferente.
+ Una concesión solo puede permitir [operaciones de concesión](#terms-grant-operations). Las operaciones de concesión deben estar respaldadas por la clave KMS de la concesión. Si especificas una operación no admitida, la [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)solicitud fallará con una excepción. `ValidationError`
+ La entidad principal beneficiaria puede utilizar los permisos que la concesión le otorga sin especificar la concesión, tal como lo haría si los permisos procedieran de una política de clave o de una política de IAM. Sin embargo, dado que la AWS KMS API sigue un modelo de [coherencia eventual](#terms-eventual-consistency), al crear, retirar o revocar una subvención, es posible que se produzca un breve retraso antes de que el cambio esté disponible de forma definitiva. AWS KMS Para utilizar los permisos de una concesión inmediatamente, [use un token de concesión](using-grant-token.md).
+ Un beneficiario principal autorizado puede eliminar la concesión ([retirarla](#terms-retire-grant) o [revocarla](#terms-revoke-grant)). Al eliminar una concesión se eliminan todos los permisos permitidos por la concesión. No es necesario averiguar qué políticas se deben agregar o quitar para deshacer la concesión. 
+ AWS KMS limita el número de concesiones en cada clave de KMS. Para obtener más información, consulte [Concesiones por clave KMS: 50 000](resource-limits.md#grants-per-key).

Tenga cuidado al crear concesiones y al dar permiso a otros para crear concesiones. El permiso para crear subvenciones tiene implicaciones de seguridad, al igual que permitir el PutKeyPolicy permiso de [KMS](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html) para establecer políticas.
+ Los usuarios con permiso para crear concesiones para una clave de KMS (`kms:CreateGrant`) pueden usar una concesión para permitir que los usuarios y los roles, incluidos los AWS servicios, usen la clave de KMS. Los elementos principales pueden ser identidades propias Cuenta de AWS o identidades de una cuenta u organización diferente.
+ Las subvenciones solo permiten un subconjunto de AWS KMS operaciones. Puede utilizar concesiones para permitir a los principales beneficiarios ver la clave KMS, utilizarla en operaciones criptográficas y crear y retirar concesiones. Para obtener más información, consulte [Operaciones de concesión](#terms-grant-operations). También puede utilizar [restricciones de la concesión](create-grant-overview.md#grant-constraints) para limitar los permisos de una concesión para una clave de cifrado simétrica.
+ Las entidades principales pueden obtener permiso para crear concesiones a partir de una política de claves o de una política de IAM. Las entidades principales que reciben el permiso `kms:CreateGrant` de una política puede crear concesiones para cualquier [operación de concesión](#terms-grant-operations) en la clave KMS. Estas entidades principales no necesitan tener el permiso que conceden en la clave. Cuando se permite permiso `kms:CreateGrant` en una política, puede usar [condiciones de política](grant-authorization.md) para limitar este permiso.
+ Los principales beneficiarios también pueden obtener permiso para crear concesiones a partir de una concesión. Estas entidades principales solo pueden delegar los permisos que se les concedieron, incluso si tienen otros permisos de una política. Para obtener más información, consulte [Concesión del permiso CreateGrant](create-grant-overview.md#grant-creategrant).

## Conceptos de concesión
<a name="grant-concepts"></a>

Para utilizar las concesiones de manera efectiva, deberá comprender los términos y conceptos que AWS KMS utiliza. 

**Restricción de concesiones**  <a name="terms-grant-constraint"></a>
Condición que limita los permisos de la concesión. Actualmente, AWS KMS admite restricciones de concesión basadas en el [contexto de cifrado](encrypt_context.md) de la solicitud de una operación criptográfica. Para obtener más información, consulte [Uso de restricciones de concesiones](create-grant-overview.md#grant-constraints).

**ID de concesión**  <a name="terms-grant-id"></a>
El identificador único de una concesión de una clave KMS. Puede usar un identificador de concesión, junto con un [identificador clave](concepts.md#key-id), para identificar una concesión en una [RevokeGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html)solicitud [RetireGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html)o solicitud.

**Operaciones de concesión**  <a name="terms-grant-operations"></a>
Las AWS KMS operaciones que puedes permitir en una subvención. Si especificas otras operaciones, la [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)solicitud fallará con una `ValidationError` excepción. Estas son también las operaciones que aceptan un [token de concesión](#grant_token). Para obtener información detallada sobre estos permisos, consulte la [AWS KMS permisos](kms-api-permissions-reference.md).  
Estas operaciones de concesión representan realmente permiso para usar la operación. Por lo tanto, para la operación `ReEncrypt`, puede especificar `ReEncryptFrom`, `ReEncryptTo` o ambos `ReEncrypt*`.  
Las operaciones de concesión son:  
+ Operaciones criptográficas
  + [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)
  + [DeriveSharedSecret](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeriveSharedSecret.html)
  + [Encrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html)
  + [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)
  + [GenerateDataKeyPair](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPair.html)
  + [GenerateDataKeyPairWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPairWithoutPlaintext.html)
  + [GenerateDataKeyWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html)
  + [GenerateMac](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateMac.html)
  + [ReEncryptFrom](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html)
  + [ReEncryptTo](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html)
  + [Sign](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html)
  + [Verificar](https://docs.aws.amazon.com/kms/latest/APIReference/API_Verify.html)
  + [VerifyMac](https://docs.aws.amazon.com/kms/latest/APIReference/API_VerifyMac.html)
+ Otras operaciones
  + [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)
  + [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)
  + [GetPublicKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html)
  + [RetireGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html)
Las operaciones de concesión que usted permita deben ser compatibles con la clave KMS de la concesión. Si especificas una operación no admitida, la [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)solicitud fallará con una `ValidationError` excepción. Por ejemplo, las concesiones para claves KMS de cifrado simétricas no pueden permitir las operaciones [Firmar](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html), [Verificar](https://docs.aws.amazon.com/kms/latest/APIReference/API_Verify.html) [https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateMac.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateMac.html) o [https://docs.aws.amazon.com/kms/latest/APIReference/API_VerifyMac.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_VerifyMac.html). Las concesiones para claves CMK asimétricas no pueden permitir operaciones que generen claves de datos o pares de claves de datos.

**Token de concesión**  <a name="grant_token"></a>
La AWS KMS API sigue un modelo de [coherencia eventual](#terms-eventual-consistency). Al crear una concesión, es posible que haya un breve retraso antes de que el cambio esté disponible a través de AWS KMS. Por lo general, el cambio tarda menos de unos segundos en propagarse por todo el sistema, pero en algunos casos puede tardar varios minutos. Si intenta utilizar una concesión antes de que se propague por completo por el sistema, es posible que obtenga un error de acceso denegado. Un token de concesión le permite hacer referencia a la concesión y utilizar los permisos de concesión inmediatamente.   
Un *token de concesión* es una cadena única, no secreta, de longitud variable, codificada en base64 que representa una concesión. Puede usar el token de concesión para identificar la concesión en cualquier [operación de concesión](#terms-grant-operations). Sin embargo, debido a que el valor del token es un resumen hash, no revela ningún detalle sobre la concesión.  
Un token de concesión está diseñado para utilizarse solo hasta que la concesión se haya propagado por completo a través de AWS KMS. Después de eso, el [principal beneficiario](#terms-grantee-principal) puede utilizar el permiso de la concesión sin proporcionar un token de concesión ni cualquier otra prueba de la concesión. Puedes usar un token de concesión en cualquier momento, pero una vez que la concesión sea coherente, AWS KMS utiliza la concesión para determinar los permisos, no el token de concesión.  
Por ejemplo, el siguiente comando llama a la [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)operación. Utiliza un token de concesión para representar la concesión que da a la persona que llama (el principal beneficiario) permiso para llamar a `GenerateDataKey` en la clave KMS especificada.  

```
$ aws kms generate-data-key \
        --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
        --key-spec AES_256 \
        --grant-token $token
```
También puede utilizar un token de concesión para identificar una concesión en operaciones que administran concesiones. Por ejemplo, el [director que se retira](#terms-retiring-principal) puede usar un token de concesión en una llamada a la [RetireGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html)operación.   

```
$ aws kms retire-grant \
        --grant-token $token
```
`CreateGrant` es la única operación que devuelve un token de concesión. No puede obtener un token de concesión de ninguna otra AWS KMS operación ni del [evento de CloudTrail registro](ct-creategrant.md) de la CreateGrant operación. Las [ListRetirableGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListRetirableGrants.html)operaciones [ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html)y devuelven el [ID de concesión](#terms-grant-id), pero no un token de concesión.  
Para obtener más información, consulte [Uso de un token de concesión](using-grant-token.md).

**Principal beneficiario**  <a name="terms-grantee-principal"></a>
Las identidades que obtienen los permisos especificados en la concesión. Cada concesión tiene una entidad principal beneficiaria, pero la entidad principal beneficiaria puede representar varias identidades.   
El cesionario principal puede ser cualquier AWS principal, incluido un usuario Cuenta de AWS (root), un [usuario de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html), un rol de [IAM, un rol](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) o usuario [federado o un usuario con un rol](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html) asumido. El principal del beneficiario puede estar en la misma cuenta que la clave KMS o en una cuenta diferente. Sin embargo, el principal beneficiario no puede ser una [entidad principal del servicio](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services), un [grupo de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) o una [organización de AWS](https://docs.aws.amazon.com/organizations/latest/userguide/).  
Las prácticas recomendadas de IAM desalientan el uso de usuarios de IAM con credenciales a largo plazo. Siempre que sea posible, utilice los roles de IAM, que proporcionan credenciales temporales. Para obtener más información, consulte la sección [Prácticas recomendadas de seguridad de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) en la *Guía del usuario de IAM;*.

**Retiro (de una concesión)**  <a name="terms-retire-grant"></a>
Termina una concesión. Retire una concesión cuando termine de usar los permisos.  
La revocación y el retiro de una concesión eliminan la concesión. Sin embargo, el retiro se realiza por medio de una entidad principal especificada en la concesión. La revocación suele realizarla un administrador de claves. Para obtener más información, consulte [Retiro y revocación de concesiones](grant-delete.md).

**Entidad principal que se va a dar de baja**  <a name="terms-retiring-principal"></a>
Una entidad principal que puede [retirar una concesión](#terms-retire-grant). Puede especificar una entidad principal que se va a dar de baja en una concesión, pero no es necesario. El principal que se jubila puede ser cualquier AWS principal, incluidos Cuentas de AWS los usuarios de IAM, los roles de IAM, los usuarios federados y los usuarios con roles asumidos. La entidad principal que se va a dar de baja puede estar en la misma cuenta de que la clave KMS o en una cuenta diferente.  
Las prácticas recomendadas de IAM desalientan el uso de usuarios de IAM con credenciales a largo plazo. Siempre que sea posible, utilice los roles de IAM, que proporcionan credenciales temporales. Para obtener más información, consulte la sección [Prácticas recomendadas de seguridad de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) en la *Guía del usuario de IAM;*.
Además de retirar el principal especificado en la subvención, se puede retirar una subvención antes de la fecha Cuenta de AWS en que se creó la subvención. El [principal beneficiario](#terms-grantee-principal) puede retirar la concesión, si la concesión admite la operación `RetireGrant`. Además, el director Cuenta de AWS o un director Cuenta de AWS que se jubila puede delegar el permiso para retirar una subvención a un director de la IAM en el mismo país. Cuenta de AWS Para obtener más información, consulte [Retiro y revocación de concesiones](grant-delete.md).

**Revocación (de una concesión)**  <a name="terms-revoke-grant"></a>
Termina una concesión. Puede revocar una concesión para denegar activamente los permisos que permite la concesión.   
La revocación y el retiro de una concesión eliminan la concesión. Sin embargo, el retiro se realiza por medio de una entidad principal especificada en la concesión. La revocación suele realizarla un administrador de claves. Para obtener más información, consulte [Retiro y revocación de concesiones](grant-delete.md).

**Consistencia final (para las concesiones)**  <a name="terms-eventual-consistency"></a>
La AWS KMS API sigue un modelo de [coherencia eventual](https://en.wikipedia.org/wiki/Eventual_consistency). Al crear, retirar o revocar una concesión, es posible que haya un breve retraso antes de que el cambio esté disponible a través de AWS KMS. Por lo general, el cambio tarda menos de unos segundos en propagarse por todo el sistema, pero en algunos casos puede tardar varios minutos.  
Puede darse cuenta de este breve retraso si recibe errores inesperados. Por ejemplo, si intentas gestionar una nueva concesión o utilizas los permisos de una nueva concesión antes de que se conozca la concesión en su totalidad AWS KMS, es posible que se produzca un error de acceso denegado. Si retira o revoca una concesión, es posible que el principal beneficiario pueda seguir utilizando sus permisos durante un breve período hasta que la concesión se elimine por completo. La estrategia habitual consiste en volver a intentar la solicitud, y algunas AWS SDKs incluyen una lógica automática de rechazo y reintento.  
AWS KMS tiene funciones para mitigar este breve retraso.   
+ Para utilizar los permisos de una nueva concesión inmediatamente, utilice un [token de concesión](using-grant-token.md). Puede usar un token de concesión para referirse a una concesión en cualquier [operación de concesión](#terms-grant-operations). Para obtener instrucciones, consulte [Uso de un token de concesión](using-grant-token.md). 
+ La [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)operación tiene un `Name` parámetro que impide que las operaciones de reintento generen concesiones duplicadas.
Los tokens de concesión reemplazan la validez de la concesión hasta que todos los puntos de conexión del servicio se hayan actualizado con el nuevo estado de concesión. En la mayoría de los casos, la consistencia final se logrará en cinco minutos.
Para obtener más información, consulte [Coherencia final de AWS KMS](accessing-kms.md#programming-eventual-consistency).

# Mejores prácticas para las subvenciones AWS KMS
<a name="grant-best-practices"></a>

AWS KMS recomienda las siguientes prácticas recomendadas a la hora de crear, utilizar y gestionar las subvenciones.
+ Limite los permisos de la concesión a los que requiere el principal beneficiario. Utilice el principio de [acceso menos privilegiado](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege).
+ Utilice un principal beneficiario específico, como un rol de IAM, y otorgue permiso al principal beneficiario para usar solo las operaciones de API que requieran. 
+ Use el contexto de cifrado de [restricciones de concesión](grants.md#terms-grant-constraint) para asegurarse de que las personas que llaman utilizan la clave KMS para el propósito previsto. Para obtener más información sobre cómo utilizar el contexto de cifrado en una solicitud para proteger sus datos, consulte [Cómo proteger la integridad de sus datos cifrados mediante el uso AWS Key Management Service y EncryptionContext](https://aws.amazon.com/blogs/security/how-to-protect-the-integrity-of-your-encrypted-data-by-using-aws-key-management-service-and-encryptioncontext/) en el *blog sobre AWS seguridad*.
**sugerencia**  
Utilice la restricción de [EncryptionContextEqual](create-grant-overview.md#grant-constraints)concesión siempre que sea posible. La restricción de [EncryptionContextSubset](create-grant-overview.md#grant-constraints)concesión es más difícil de usar correctamente. Si necesita usarlo, lea detenidamente la documentación y pruebe la limitación de concesión para asegurarse de que funciona según lo previsto.
+ Suprima concesiones duplicadas. Las concesiones duplicadas tienen la misma clave ARN, acciones de API, principal beneficiario, contexto de cifrado y nombre. Si retira o revoca la concesión original pero deja los duplicados, las concesiones duplicadas sobrantes constituyen escaladas no intencionadas de privilegios. Para evitar duplicar concesiones al volver a intentar una solicitud `CreateGrant`, utilice el [parámetro `Name`](create-grant-overview.md#grant-create). Para detectar concesiones duplicadas, utilice la [ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html)operación. Si crea accidentalmente una concesión duplicada, retírela o revóquela lo antes posible. 
**nota**  
Las concesiones para las [claves administradas por AWS](concepts.md#aws-managed-key) podrían parecer duplicados, pero tienen diferentes beneficiarios principales.  
El campo `GranteePrincipal` de la respuesta `ListGrants` generalmente contiene el principal beneficiario de la concesión. Sin embargo, cuando el principal beneficiario de la subvención es un AWS servicio, el `GranteePrincipal` campo contiene el [principal del servicio](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services), que puede representar a varios directores distintos del concesionario.
+ Recuerde que las concesiones no caducan automáticamente. [Retire o revoque la concesiones](grant-delete.md) ni bien el permiso ya no sea necesario. Las concesiones que no se eliminan pueden crear un riesgo de seguridad para los recursos cifrados.

# Control del acceso a las concesiones
<a name="grant-authorization"></a>

Puede controlar el acceso a las operaciones que crean y administran concesiones en políticas de claves, políticas de IAM y concesiones. Las principales entidades que reciben el permiso `CreateGrant` de una concesión tienen [permisos de concesión más limitados](create-grant-overview.md#grant-creategrant). 


| Operación de la API | Política de claves o política de IAM | Concesión | 
| --- | --- | --- | 
| CreateGrant | ✓ | ✓ | 
| ListGrants | ✓ | - | 
| ListRetirableGrants | ✓ | - | 
| Retiro de concesiones | (Limitado. Consulte [Retiro y revocación de concesiones](grant-delete.md)) | ✓ | 
| RevokeGrant | ✓ | - | 

Si utiliza una política clave o una política de IAM para controlar el acceso a las operaciones que crean y gestionan las subvenciones, puede utilizar una o varias de las siguientes condiciones de política para limitar el permiso. AWS KMS admite todas las siguientes claves de condición relacionadas con la concesión. Para obtener más detalles y ejemplos, consulte [AWS KMS claves de condición](conditions-kms.md).

[km: GrantConstraintType](conditions-kms.md#conditions-kms-grant-constraint-type)  
Permite a las entidades principales crear una concesión solo cuando la concesión incluye la [restricción de concesiones](create-grant-overview.md#grant-constraints) especificada.

[km: GrantIsFor AWSResource](conditions-kms.md#conditions-kms-grant-is-for-aws-resource)  
Permite que los directores `CreateGrant` llamen o `RevokeGrant` solo cuando [un AWS servicio integrado AWS KMS envía](https://aws.amazon.com/kms/features/#AWS_Service_Integration) la solicitud en nombre del director. `ListGrants`

[km: GrantOperations](conditions-kms.md#conditions-kms-grant-operations)  
Permite a las entidades principales crear una concesión, pero limita la concesión a las operaciones especificadas.

[km: GranteePrincipal](conditions-kms.md#conditions-kms-grantee-principal)  
Permite a las entidades principales crear una concesión solo para el [beneficiario principal](grants.md#terms-grantee-principal).

[km: RetiringPrincipal](conditions-kms.md#conditions-kms-retiring-principal)  
Permite a las entidades principales crear una concesión solo cuando la concesión especifica una [entidad principal que se retira](grants.md#terms-retiring-principal) en particular.

# Creación de concesiones
<a name="create-grant-overview"></a>

Antes de crear una concesión, obtenga información sobre las opciones para personalizar su concesión. Puede usar *restricciones de concesión* para limitar los permisos de la concesión. Además, obtenga más información sobre la concesión de permiso `CreateGrant`. Las principales entidades que obtienen permiso para crear concesiones a partir de una concesión están limitadas en las concesiones que pueden crear.

**Topics**
+ [Crear una concesión](#grant-create)
+ [Concesión del permiso CreateGrant](#grant-creategrant)

## Crear una concesión
<a name="grant-create"></a>

Para crear una subvención, llame a la [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)operación. Especifique una clave KMS, un [beneficiario principal](grants.md#terms-grantee-principal) y una lista de [operaciones de concesión](grants.md#terms-grant-operations) permitidas. También puede designar una [entidad principal que se retira](grants.md#terms-retiring-principal). Para personalizar la concesión, utilice los parámetros opcionales `Constraints` para definir [restricciones de concesión](https://docs.aws.amazon.com/kms/latest/APIReference/API_GrantConstraints.html).

Al crear, retirar o revocar una concesión, es posible que haya un breve retraso, normalmente menos de cinco minutos, antes de que el cambio esté disponible a través de AWS KMS. Para obtener más información, consulte [Eventual consistency (for grants)](grants.md#terms-eventual-consistency).

Por ejemplo, el siguiente comando `CreateGrant` crea una concesión que permite a los usuarios que están autorizados a asumir el rol `keyUserRole` para llamar a la operación [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) en la [clave KMS simétrica](symm-asymm-choose-key-spec.md#symmetric-cmks) especificada. La concesión utiliza el parámetro `RetiringPrincipal` para designar una entidad principal que puede retirar la concesión. También incluye una restricción de concesión que permite el permiso únicamente cuando el [contexto de cifrado](encrypt_context.md) de la solicitud incluye `"Department": "IT"`.

```
$  aws kms create-grant \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --grantee-principal arn:aws:iam::111122223333:role/keyUserRole \
    --operations Decrypt \
    --retiring-principal arn:aws:iam::111122223333:role/adminRole \
    --constraints EncryptionContextSubset={Department=IT}
```

Si su código vuelve a intentar la operación `CreateGrant`, o utiliza una [AWS SDK que reintenta automáticamente las solicitudes](https://docs.aws.amazon.com/general/latest/gr/api-retries.html), utilice el parámetro opcional [Name](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html#KMS-CreateGrant-request-Name) (Nombre) para evitar la creación de concesiones duplicadas. Si AWS KMS recibe una `CreateGrant` solicitud de concesión con las mismas propiedades que una subvención existente, incluido el nombre, reconoce la solicitud como un reintento y no crea una nueva concesión. No puede usar el valor `Name` para identificar la concesión en cualquier operación de AWS KMS .

**importante**  
No incluya información confidencial en el nombre de la concesión. Puede aparecer en texto plano en CloudTrail los registros y otros resultados.

```
$ aws kms create-grant \
    --name IT-1234abcd-keyUserRole-decrypt \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --grantee-principal arn:aws:iam::111122223333:role/keyUserRole \
    --operations Decrypt \
    --retiring-principal arn:aws:iam::111122223333:role/adminRole \
    --constraints EncryptionContextSubset={Department=IT}
```

En [Úselo `CreateGrant` con un AWS SDK o CLI](example_kms_CreateGrant_section.md), puede consultar ejemplos de código que muestran cómo crear concesiones en varios lenguajes de programación.

### Uso de restricciones de concesiones
<a name="grant-constraints"></a>

Las [restricciones de concesión](https://docs.aws.amazon.com/kms/latest/APIReference/API_GrantConstraints.html) establecen condiciones sobre los permisos que la concesión otorga a entidad principal beneficiaria. Las restricciones de concesión sustituyen a las [claves de condición](policy-conditions.md) en una [política de claves](key-policies.md) o una [política de IAM](iam-policies.md). Cada valor de restricción de concesión puede incluir hasta 8 pares de contexto de cifrado. El valor de contexto de cifrado en cada restricción de concesión no puede superar los 384 caracteres.

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

AWS KMS admite dos restricciones de concesión `EncryptionContextEquals` y `EncryptionContextSubset` ambas establecen los requisitos para el [contexto de cifrado](encrypt_context.md) en una solicitud de una operación criptográfica. 

Las restricciones de concesión de contexto de cifrado están diseñadas para ser utilizadas con [operaciones de concesión](grants.md#terms-grant-operations) que tienen un parámetro de contexto de cifrado. 
+ Las restricciones de contexto de cifrado solo son válidas en una concesión para una clave KMS de cifrado simétrica. Las operaciones criptográficas con otras claves KMS no son compatibles con un contexto de cifrado.
+ La restricción de contexto de cifrado se omite para las operaciones `DescribeKey` y `RetireGrant`. `DescribeKey` y `RetireGrant` no tienen un parámetro de contexto de cifrado, pero puede incluir estas operaciones en una concesión que tenga una restricción de contexto de cifrado.
+ Puede usar una restricción de contexto de cifrado en una concesión para la operación `CreateGrant`. La restricción de contexto de cifrado requiere que cualquier concesión creada con el permiso `CreateGrant` tenga una restricción de contexto de cifrado igualmente estricta o más estricta.

AWS KMS admite las siguientes restricciones de concesión del contexto de cifrado.

**EncryptionContextEquals**  
Use `EncryptionContextEquals` para especificar el contexto de cifrado exacto para las solicitudes permitidas.   
`EncryptionContextEquals` requiere que los pares de contexto de cifrado de la solicitud coincidan exactamente, incluido el uso de mayúsculas y minúsculas, con los pares de contexto de cifrado de la restricción de concesión. Los pares pueden aparecer en cualquier orden, pero las claves y los valores de cada par no pueden variar.   
Por ejemplo, si la limitación de la concesión `EncryptionContextEquals` requiere el par de restricción de concesión `"Department": "IT"`, la concesión permite solicitudes del tipo especificado cuando el contexto de cifrado de la solicitud es exactamente `"Department": "IT"`.

**EncryptionContextSubset**  
Use `EncryptionContextSubset` para requerir que las solicitudes incluyan pares de contexto de cifrado particulares.  
`EncryptionContextSubset` requiere que la solicitud incluya todos los pares de contexto de cifrado de la restricción de concesión (una coincidencia exacta, incluido el uso de mayúsculas y minúsculas), pero la solicitud también puede tener pares de contexto de cifrado adicionales. Los pares pueden aparecer en cualquier orden, pero las claves y los valores de cada par no pueden variar.   
Por ejemplo, si la limitación de la concesión `EncryptionContextSubset` requiere el par de contexto de concesión de `Department=IT`, la concesión permite solicitudes del tipo especificado cuando el contexto de cifrado de la solicitud es `"Department": "IT"`, o incluye `"Department": "IT"` junto con otros pares de contexto de cifrado, como `"Department": "IT","Purpose": "Test"`.

Para especificar una restricción de contexto de cifrado en la concesión de una clave KMS de cifrado simétrico, utilice el `Constraints` parámetro en la [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)operación. La concesión que crea este comando concede a los usuarios autorizados asumir el permiso del rol `keyUserRole` para llamar a la operación [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html). Sin embargo, ese permiso solo es efectivo cuando el contexto de cifrado de la solicitud `Decrypt` es un par de contexto de cifrado `"Department": "IT"`.

```
$ aws kms create-grant \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --grantee-principal arn:aws:iam::111122223333:role/keyUserRole \
    --operations Decrypt \
    --retiring-principal arn:aws:iam::111122223333:role/adminRole \
    --constraints EncryptionContextEquals={Department=IT}
```

La concesión resultante se parece a la siguiente. Tenga en cuenta que el permiso concedido al rol `keyUserRole` solo es efectivo cuando la solicitud `Decrypt` utiliza el mismo par de contexto de cifrado especificado en la restricción de concesiones. Para encontrar las concesiones de una clave KMS, utilice la [ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html)operación.

```
$ aws kms list-grants --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
{
    "Grants": [
        {
            "Name": "",
            "IssuingAccount": "arn:aws:iam::111122223333:root",
            "GrantId": "abcde1237f76e4ba7987489ac329fbfba6ad343d6f7075dbd1ef191f0120514a",
            "Operations": [
                "Decrypt"
            ],
            "GranteePrincipal": "arn:aws:iam::111122223333:role/keyUserRole",
            "Constraints": {
                "EncryptionContextEquals": {
                    "Department": "IT"
                }
            },
            "CreationDate": 1568565290.0,
            "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
            "RetiringPrincipal": "arn:aws:iam::111122223333:role/adminRole"
        }
    ]
}
```

Para satisfacer la limitación de concesión `EncryptionContextEquals`, el contexto de cifrado en la solicitud para la operación `Decrypt` debe ser un par `"Department": "IT"`. Una solicitud como la siguiente del principal beneficiario satisfaría la restricción de concesiones `EncryptionContextEquals`.

```
$ aws kms decrypt \
    --key-id arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\
    --ciphertext-blob fileb://encrypted_msg \
    --encryption-context Department=IT
```

Cuando la restricción de concesión es `EncryptionContextSubset`, los pares de contexto de cifrado de la solicitud deben incluir los pares de contexto de cifrado de la restricción de concesión, pero la solicitud también puede incluir otros pares de contexto de cifrado. La siguiente restricción de concesión requiere que uno de los pares de contexto de cifrado en la solicitud sea `"Deparment": "IT"`.

```
"Constraints": {
   "EncryptionContextSubset": {
       "Department": "IT"
   }
}
```

La siguiente solicitud del principal beneficiario sería capaz de satisfacer tanto las restricciones de concesión `EncryptionContextEqual` y `EncryptionContextSubset` en este ejemplo.

```
$ aws kms decrypt \
    --key-id arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab \
    --ciphertext-blob fileb://encrypted_msg \
    --encryption-context Department=IT
```

Sin embargo, una solicitud como la siguiente del principal beneficiario podría satisfacer la limitación de concesión `EncryptionContextSubset`, pero se produciría un error en la restricción de concesiones `EncryptionContextEquals`.

```
$ aws kms decrypt \
    --key-id arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab \
    --ciphertext-blob fileb://encrypted_msg \
    --encryption-context Department=IT,Purpose=Test
```

AWS los servicios suelen utilizar restricciones de contexto de cifrado en las concesiones que les dan permiso para usar las claves de KMS en su Cuenta de AWS. Por ejemplo, Amazon DynamoDB utiliza una concesión como la siguiente para obtener permiso para utilizar la [Clave administrada de AWS](concepts.md#aws-managed-key) para DynamoDB de su cuenta. La restricción `EncryptionContextSubset` de esta concesión hace que los permisos de la concesión solo sean efectivos cuando el contexto de cifrado de la solicitud contiene pares `"tableName": "Services"` y `"subscriberID": "111122223333"`. Esta restricción de concesión significa que la concesión permite a DynamoDB utilizar la clave KMS especificada solo en una determinada tabla de su Cuenta de AWS.

Para obtener este resultado, ejecute la [ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html)operación en DynamoDB de su cuenta. Clave administrada de AWS 

```
$ aws kms list-grants --key-id 0987dcba-09fe-87dc-65ba-ab0987654321

{
    "Grants": [
        {
            "Operations": [
                "Decrypt",
                "Encrypt",
                "GenerateDataKey",
                "ReEncryptFrom",
                "ReEncryptTo",
                "RetireGrant",
                "DescribeKey"
            ],
            "IssuingAccount": "arn:aws:iam::111122223333:root",
            "Constraints": {
                "EncryptionContextSubset": {
                    "aws:dynamodb:tableName": "Services",
                    "aws:dynamodb:subscriberId": "111122223333"
                }
            },
            "CreationDate": 1518567315.0,
            "KeyId": "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321",
            "GranteePrincipal": "dynamodb.us-west-2.amazonaws.com",
            "RetiringPrincipal": "dynamodb.us-west-2.amazonaws.com",
            "Name": "8276b9a6-6cf0-46f1-b2f0-7993a7f8c89a",
            "GrantId": "1667b97d27cf748cf05b487217dd4179526c949d14fb3903858e25193253fe59"
        }
    ]
}
```

## Concesión del permiso CreateGrant
<a name="grant-creategrant"></a>

Una concesión puede incluir permiso para llamar a la operación `CreateGrant`. Pero cuando un [principal beneficiario](grants.md#terms-grantee-principal) obtiene permiso para llamar a `CreateGrant` desde una concesión, en lugar de una política, ese permiso es limitado. 
+ El principal beneficiario solo puede crear concesiones que permitan algunas o todas las operaciones de la concesión principal.
+ Las [restricciones de concesión](#grant-constraints) en las concesiones que crean deben ser al menos tan estrictas como las de la concesión principal.

Estas limitaciones no se aplican a las entidades principales que obtienen permito `CreateGrant` de una política, aunque sus permisos pueden estar limitados por [condiciones de política](grant-authorization.md).

Por ejemplo, supongamos que existe una concesión que permite a la entidad principal beneficiaria llamar a las operaciones `GenerateDataKey`, `Decrypt` y `CreateGrant`. Llamamos a una concesión que permita un permiso `CreateGrant` una *concesión principal*.

```
# The original grant in a ListGrants response.
{
    "Grants": [
        {
            "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
            "CreationDate": 1572216195.0,
            "GrantId": "abcde1237f76e4ba7987489ac329fbfba6ad343d6f7075dbd1ef191f0120514a",
            "Operations": [
                "GenerateDataKey",
                "Decrypt",
                "CreateGrant
            ]
            "RetiringPrincipal": "arn:aws:iam::111122223333:role/adminRole",
            "Name": "",
            "IssuingAccount": "arn:aws:iam::111122223333:root",
            "GranteePrincipal": "arn:aws:iam::111122223333:role/keyUserRole",
            "Constraints": {
                "EncryptionContextSubset": {
                    "Department": "IT"
                }
            },
        }
    ]
}
```

La entidad principal beneficiaria, exampleUser, puede utilizar este permiso para crear una concesión que incluya cualquier subconjunto de las operaciones especificadas en la concesión principal, como `CreateGrant` y `Decrypt`. La *concesión secundaria* no puede incluir otras operaciones, como `ScheduleKeyDeletion` o `ReEncrypt`.

Además, las [restricciones de concesión](https://docs.aws.amazon.com/kms/latest/APIReference/API_GrantConstraints.html) de las concesiones secundarias deben ser restrictivas o más restrictivas que las de la concesión principal. Por ejemplo, la concesión secundaria puede agregar pares a una restricción `EncryptionContextSubset` de la concesión principal, pero no puede eliminarlos. La concesión secundaria puede cambiar una restricción `EncryptionContextSubset` por una restricción `EncryptionContextEquals`, pero no al revés.

Las prácticas recomendadas de IAM desalientan el uso de usuarios de IAM con credenciales a largo plazo. Siempre que sea posible, utilice los roles de IAM, que proporcionan credenciales temporales. Para obtener más información, consulte la sección [Prácticas recomendadas de seguridad de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) en la *Guía del usuario de IAM;*.

Por ejemplo, el principal beneficiario puede usar el permiso `CreateGrant` que obtuvo de la concesión principal para crear la siguiente concesión secundaria. Las operaciones del subsidio por hijos son un subconjunto de las operaciones del subsidio parental y las restricciones de la concesión son más restrictivas.

```
# The child grant in a ListGrants response.
{
    "Grants": [
        {
            "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
            "CreationDate": 1572249600.0,
            "GrantId": "fedcba9999c1e2e9876abcde6e9d6c9b6a1987650000abcee009abcdef40183f",
            "Operations": [
                "CreateGrant"
                "Decrypt"
            ]
            "RetiringPrincipal": "arn:aws:iam::111122223333:user/exampleUser",
            "Name": "",
            "IssuingAccount": "arn:aws:iam::111122223333:root",
            "GranteePrincipal": "arn:aws:iam::111122223333:user/anotherUser",
            "Constraints": {
                "EncryptionContextEquals": {
                    "Department": "IT"
                }
            },
        }
    ]
}
```

El principal beneficiario en la concesión secundaria, `anotherUser`, puede usar su permiso `CreateGrant` para crear concesiones. Sin embargo, las concesiones que `anotherUser` crea deben incluir las operaciones en su concesión principal o en un subconjunto, y las restricciones de concesión deben ser las mismas o más estrictas. 

# Visualización de concesiones
<a name="grant-view"></a>

Para ver la concesión, utilice la [ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html)operación. Debe especificar la clave KMS a la que se aplican las concesiones. También puede filtrar la lista de concesiones por ID de concesión o entidad beneficiaria principal. Para obtener más ejemplos, consulte [Úselo `ListGrants` con un AWS SDK o CLI](example_kms_ListGrants_section.md).

Para ver todas las subvenciones de la región Cuenta de AWS y con un [principal saliente](grants.md#terms-retiring-principal) en particular, utilice [ListRetirableGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListRetirableGrants.html). Las respuestas incluyen detalles sobre cada concesión.

**nota**  
El campo `GranteePrincipal` de la respuesta `ListGrants` generalmente contiene el principal beneficiario de la concesión. Sin embargo, cuando el principal beneficiario de la subvención es un AWS servicio, el `GranteePrincipal` campo contiene el [principal del servicio](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services), que puede representar a varios directores distintos del concesionario.

Por ejemplo, el siguiente comando muestra todas las concesiones de una clave KMS.

```
$  aws kms list-grants --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
{
    "Grants": [
        {
            "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
            "CreationDate": 1572216195.0,
            "GrantId": "abcde1237f76e4ba7987489ac329fbfba6ad343d6f7075dbd1ef191f0120514a",
            "Constraints": {
                "EncryptionContextSubset": {
                    "Department": "IT"
                }
            },
            "RetiringPrincipal": "arn:aws:iam::111122223333:role/adminRole",
            "Name": "",
            "IssuingAccount": "arn:aws:iam::111122223333:root",
            "GranteePrincipal": "arn:aws:iam::111122223333:user/exampleUser",
            "Operations": [
                "Decrypt"
            ]
        }
    ]
}
```

# Uso de un token de concesión
<a name="using-grant-token"></a>

[La AWS KMS API sigue un modelo de coherencia eventual.](grants.md#terms-eventual-consistency) Al crear una concesión, es posible que la concesión no sea efectiva inmediatamente. Es posible que haya un breve retraso antes de que el cambio esté disponible a través de AWS KMS. Por lo general, el cambio tarda menos de unos segundos en propagarse por todo el sistema, pero en algunos casos puede tardar varios minutos. Una vez que el cambio se haya propagado totalmente a través del sistema, la entidad principal beneficiaria puede utilizar los permisos de la concesión sin especificar el token de concesión ni ninguna prueba de la concesión. Sin embargo, si una concesión es tan nueva que aún no la conocen todos AWS KMS, es posible que la solicitud no se realice correctamente y se produzca un `AccessDeniedException` error.

Para utilizar los permisos de una nueva concesión inmediatamente, utilice el [token de concesión](grants.md#grant_token) para la concesión. Guarde el token de concesión que devuelve la [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)operación. A continuación, envíe el token de concesión en la solicitud de la AWS KMS operación. Puedes enviar un token de subvención a cualquier [operación de AWS KMS subvención](grants.md#terms-grant-operations) y puedes enviar varios tokens de subvención en la misma solicitud.



En el siguiente ejemplo, se utiliza la `CreateGrant` operación para crear una concesión que permita las operaciones de [descifrado [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)y descifrado.](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) Guarda el token de concesión que `CreateGrant` devuelve en la variable `token`. Luego, en una llamada a la operación `GenerateDataKey`, utiliza el token de concesión en la variable `token`.

```
# Create a grant; save the grant token 
$ token=$(aws kms create-grant \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --grantee-principal arn:aws:iam::111122223333:user/appUser \
    --retiring-principal arn:aws:iam::111122223333:user/acctAdmin \
    --operations GenerateDataKey Decrypt \
    --query GrantToken \
    --output text)

# Use the grant token in a request
$ aws kms generate-data-key \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    –-key-spec AES_256 \
    --grant-tokens $token
```

Las entidades principales con permiso también pueden usar un token de concesión para retirar una nueva concesión incluso antes de que la concesión esté disponible en AWS KMS. (La operación `RevokeGrant` no acepta un token de concesión). Para obtener más información, consulte [Retiro y revocación de concesiones](grant-delete.md).

```
# Retire the grant
$ aws kms retire-grant --grant-token $token
```

# Retiro y revocación de concesiones
<a name="grant-delete"></a>

Para eliminar una concesión, retírela o revoquela.

Las [RevokeGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html)operaciones [RetireGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html)y son muy similares entre sí. Ambas operaciones eliminan una concesión, lo que elimina los permisos que permite la concesión. La principal diferencia entre estas operaciones es cómo se autorizan.

**RevokeGrant**  
Como la mayoría de AWS KMS las operaciones, el acceso a la `RevokeGrant` operación se controla mediante [políticas clave y políticas](key-policies.md) de [IAM](iam-policies.md). Cualquier director puede llamar a la [RevokeGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html)API con `kms:RevokeGrant` permiso. Este permiso está incluido en los permisos estándar otorgados a los administradores de claves. Normalmente, los administradores revocan una concesión para denegar los permisos que permite la concesión.

**RetireGrant**  
La concesión determina quién puede retirarla. Este diseño le permite controlar el ciclo de vida de una concesión sin cambiar las políticas de claves o las políticas de IAM. Normalmente, usted retira una concesión cuando ha terminado de usar sus permisos.  
Una [entidad principal que se retira](grants.md#terms-retiring-principal) opcional especificada puede retirar una concesión. La [entidad beneficiaria principal](grants.md#terms-grantee-principal) también puede retirar la concesión, pero solo si también se trata de una entidad principal que se retira o si la concesión incluye la operación `RetireGrant`. Como alternativa, la entidad Cuenta de AWS en la que se creó la subvención puede retirarla.  
Hay un permiso `kms:RetireGrant` que se puede utilizar en las políticas de IAM, pero tiene una utilidad limitada. Las entidades principales especificadas en la concesión pueden retirar una concesión sin el permiso `kms:RetireGrant`. El permiso `kms:RetireGrant` por sí solo no permite a las entidades principales retirar una concesión. El permiso `kms:RetireGrant` no entra en vigor en una [política clave](key-policies.md) o en [una políticade control de recursos](resource-control-policies.md).  
+ Para denegar el permiso de retirar una concesión, puede usar una acción `Deny` con el permiso `kms:RetireGrant` en sus políticas de IAM.
+ El Cuenta de AWS propietario de la clave KMS puede delegar el `kms:RetireGrant` permiso a un principal de IAM de la cuenta. 
+ Si el principal que se retira es otro Cuenta de AWS, los administradores de la otra cuenta pueden delegar el permiso `kms:RetireGrant` para retirar la concesión a un director de IAM de esa cuenta.

La AWS KMS API sigue un modelo de [coherencia eventual](grants.md#terms-eventual-consistency). Al crear, retirar o revocar una concesión, es posible que haya un breve retraso antes de que el cambio esté disponible a través de AWS KMS. Por lo general, el cambio tarda menos de unos segundos en propagarse por todo el sistema, pero en algunos casos puede tardar varios minutos. Si necesitas eliminar una nueva subvención inmediatamente, antes de que esté disponible en todo momento AWS KMS, [usa un token de subvención](using-grant-token.md) para retirarla. No puede usar un token de concesión para revocar una concesión.