

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 ](grants.md#terms-eventual-consistency) eventual. 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 es conocida por todos AWS KMS, la solicitud podría fallar y provocar 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. Guarda 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ía 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 usa la `CreateGrant` operación para crear una concesión que permita las [ operaciones [ GenerateDataKey ](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) y ](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) desencriptar. 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
```