

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Usar um token de concessão
<a name="using-grant-token"></a>

A AWS KMS API segue um modelo de [consistência eventual](grants.md#terms-eventual-consistency). Ao criar uma concessão, esta pode não entrar em vigor imediatamente. Pode haver um breve atraso antes que a alteração esteja disponível em todo o AWS KMS. Normalmente, a alteração leva menos de alguns segundos para se propagar por todo o sistema, mas, em alguns casos, pode levar vários minutos. Uma vez que a alteração tenha se propagado em todo o sistema, a entidade principal receptora da concessão poderá usar as permissões na concessão sem especificar o token de concessão ou qualquer evidência da concessão. No entanto, se uma concessão for tão nova que ainda não seja conhecida por todos AWS KMS, a solicitação poderá falhar com um `AccessDeniedException` erro.

Para usar as permissões em uma nova concessão imediatamente, use o [token de concessão](grants.md#grant_token) para a concessão. Salve o token de concessão que a [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)operação retorna. Em seguida, envie o token de concessão na solicitação da AWS KMS operação. Você pode enviar um token de concessão para qualquer [operação de AWS KMS concessão](grants.md#terms-grant-operations) e pode enviar vários tokens de concessão na mesma solicitação.



O exemplo a seguir usa a `CreateGrant` operação para criar uma concessão que permite as operações [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)e [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html). Ele salva o token de concessão retornado por `CreateGrant` na variável `token`. Em seguida, em uma chamada para `GenerateDataKey`, ele usa o token de concessão na variável `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
```

As entidades principais com permissão também podem usar um token de concessão para desativar uma nova concessão antes mesmo que ela fique disponível por meio do AWS KMS. (A operação `RevokeGrant` não aceita um token de concessão.) Para obter detalhes, consulte [Retirar e revogar concessões](grant-delete.md).

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