

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.

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