

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á.

# Subsídios em AWS KMS
<a name="grants"></a>

Uma *concessão* é um instrumento de política que permite que as [entidades principais da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html#intro-structure-principal) usem chaves do KMS em operações de criptografia. Ela também pode permitir que essas entidades visualizem uma chave do KMS (`DescribeKey`) e criem e gerenciem concessões. Ao autorizar o acesso a uma chave do KMS, concessões são consideradas junto com [políticas de chave](key-policies.md) e [políticas do IAM](iam-policies.md). Concessões geralmente são usadas para permissões temporárias, pois você pode criar uma, usar suas permissões e excluí-la sem alterar suas principais políticas ou políticas do IAM.

As concessões são comumente usadas por AWS serviços que se integram AWS KMS para criptografar seus dados em repouso. O serviço cria uma concessão em nome de um usuário na conta, usa suas permissões e desativa a concessão assim que sua tarefa é concluída. Para obter detalhes sobre como AWS os serviços usam concessões, consulte o tópico *Criptografia em repouso* no guia do usuário ou no guia do desenvolvedor do serviço.

Concessões são um mecanismo de controle de acesso muito flexível e útil. Quando você cria uma concessão para uma chave do KMS, essa concessão permite que a entidade principal autorizada chame as operações de concessão especificadas na chave do KMS, desde que todas as condições especificadas na concessão sejam atendidas. 
+ Cada concessão permite o acesso a exatamente uma chave do KMS. Você pode criar uma concessão para uma chave do KMS em uma Conta da AWS diferente.
+ Uma concessão pode permitir acesso a uma chave do KMS, mas não pode negar acesso.
+ Cada concessão tem uma [entidade principal autorizada](#terms-grantee-principal). O principal beneficiário pode representar uma ou mais identidades na Conta da AWS mesma chave KMS ou em uma conta diferente.
+ Uma concessão só pode permitir [operações de concessão](#terms-grant-operations). Operações de concessão devem ter suporte pela chave do KMS na concessão. Se você especificar uma operação sem suporte, a [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)solicitação falhará com uma `ValidationError` exceção.
+ A entidade principal autorizada pode usar as permissões autorizadas pela concessão sem especificar a concessão, exatamente como fariam se as permissões fossem provenientes de uma política de chave ou de uma política do IAM. No entanto, como a AWS KMS API segue um modelo de [consistência eventual](#terms-eventual-consistency), quando você cria, retira ou revoga uma concessão, pode haver um breve atraso antes que a alteração esteja disponível por completo. AWS KMS Para usar as permissões em uma concessão imediatamente, [use um token de concessão](using-grant-token.md).
+ Uma entidade principal autorizada pode excluir a concessão ([retirar](#terms-retire-grant) ou [revogar](#terms-revoke-grant) a concessão). A exclusão de uma concessão elimina todas as permissões permitidas por ela. Você não precisa descobrir quais políticas adicionar ou remover para desfazer a concessão. 
+ AWS KMS limita o número de concessões em cada chave KMS. Para obter detalhes, consulte [Concessões por chave do KMS: 50.000](resource-limits.md#grants-per-key).

Tenha cautela ao criar concessões e ao dar permissão a outras pessoas para criar concessões. A permissão para criar concessões tem implicações de segurança, assim como permitir que o [kms: PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html) defina políticas.
+ Usuários com permissão para criar concessões para uma chave KMS (`kms:CreateGrant`) podem usar uma concessão para permitir que usuários e funções, incluindo AWS serviços, usem a chave KMS. Os diretores podem ser identidades próprias Conta da AWS ou identidades em uma conta ou organização diferente.
+ Os subsídios podem permitir somente um subconjunto de AWS KMS operações. É possível usar concessões para permitir que as entidades principais exibam a chave do KMS, usá-la em operações de criptografia e criar e retirar concessões. Para obter mais detalhes, consulte [Operações de concessão](#terms-grant-operations). Você também pode usar [restrições de concessão](create-grant-overview.md#grant-constraints) para limitar as permissões em uma concessão para uma chave de criptografia simétrica.
+ As entidades principais podem obter permissão para criar concessões a partir de uma política de chave ou de uma política do IAM. Entidades principais que recebem a permissão `kms:CreateGrant` de uma política podem criar concessões para qualquer [operação de concessão](#terms-grant-operations) na chave do KMS. Essas entidades principais não precisam ter a permissão que estão concedendo na chave. Quando você concede a permissão `kms:CreateGrant` em uma política, pode usar [condições de políticas](grant-authorization.md) para limitar essa permissão.
+ As entidades principais também podem obter permissão para criar concessões de uma concessão. Mesmo que tenham outras permissões de uma política, essas entidades principais só podem delegar as permissões que foram concedidas a elas. Para obter detalhes, consulte [Concedendo permissão CreateGrant](create-grant-overview.md#grant-creategrant).

## Conceitos sobre concessões
<a name="grant-concepts"></a>

Para usar concessões de maneira eficaz, você precisa entender os termos e conceitos que são usados pela AWS KMS . 

**Restrições de concessão**  <a name="terms-grant-constraint"></a>
Uma condição que limita as permissões na concessão. Atualmente, AWS KMS suporta restrições de concessão com base no [contexto de criptografia](encrypt_context.md) na solicitação de uma operação criptográfica. Para obter detalhes, consulte [Usar restrições de concessão](create-grant-overview.md#grant-constraints).

**ID de concessão**  <a name="terms-grant-id"></a>
O identificador exclusivo de uma concessão para uma chave do KMS. Você pode usar uma ID de concessão, junto com um [identificador de chave](concepts.md#key-id), para identificar uma concessão em uma [RevokeGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html)solicitação [RetireGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html)or.

**Operações de concessão**  <a name="terms-grant-operations"></a>
As AWS KMS operações que você pode permitir em uma concessão. Se você especificar outras operações, a [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)solicitação falhará com uma `ValidationError` exceção. Estas são também as operações que aceitam um [token de concessão](#grant_token). Para obter informações detalhadas sobre essas permissões, consulte a [AWS KMS permissões](kms-api-permissions-reference.md).  
Essas operações de concessão realmente representam permissão para usar a operação. Portanto, para a operação `ReEncrypt`, você pode especificar `ReEncryptFrom`, `ReEncryptTo` ou ambos `ReEncrypt*`.  
As operações de concessão são:  
+ Operações 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)
+ Outras operações
  + [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)
As operações de concessão permitidas devem ter suporte pela chave do KMS na concessão. Se você especificar uma operação sem suporte, a [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)solicitação falhará com uma `ValidationError` exceção. Por exemplo, as concessões para chaves do KMS de criptografia simétrica não podem permitir as operações [Sign](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html), [Verify](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) ou [https://docs.aws.amazon.com/kms/latest/APIReference/API_VerifyMac.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_VerifyMac.html). As concessões para chaves assimétricas do KMS não podem permitir nenhuma operação que gere chaves de dados ou pares de chaves de dados.

**Token de concessão**  <a name="grant_token"></a>
A AWS KMS API segue um modelo de [consistência eventual](#terms-eventual-consistency). Quando você cria uma concessão, 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. Se você tentar usar uma concessão antes de ela se propagar totalmente pelo sistema, poderá obter um erro de acesso negado. Um token de concessão permite que você faça referência à concessão e use as permissões de concessão imediatamente.   
Um *token de concessão* é uma string única, não secreta, de comprimento variável e codificada em base64 que representa uma concessão. Você pode usar o token de concessão para identificar a concessão em qualquer [operação de concessão](#terms-grant-operations). No entanto, como o valor do token é um resumo de hash, ele não revela detalhes sobre a concessão.  
Um token de concessão é projetado para ser usado somente até que a concessão seja totalmente propagada em todo o AWS KMS. Depois disso, a [entidade principal receptora da concessão](#terms-grantee-principal) pode usar a permissão nessa concessão sem fornecer um token de concessão ou qualquer outra evidência da concessão. Você pode usar um token de concessão a qualquer momento, mas quando a concessão estiver consistente, AWS KMS use a concessão para determinar as permissões, não o token de concessão.  
Por exemplo, o comando a seguir chama a [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)operação. Ele usa um token de concessão para representar a concessão que dá ao autor da chamada (a entidade principal receptora da concessão) permissão para chamar `GenerateDataKey` na chave do KMS especificada.  

```
$ aws kms generate-data-key \
        --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
        --key-spec AES_256 \
        --grant-token $token
```
Também é possível pode usar um token de concessão para identificar uma concessão em operações que gerenciam concessões. Por exemplo, o [diretor que está se aposentando](#terms-retiring-principal) pode usar um token de concessão em uma chamada para a [RetireGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html)operação.   

```
$ aws kms retire-grant \
        --grant-token $token
```
`CreateGrant` é a única operação que retorna um token de concessão. Você não pode obter um token de concessão de nenhuma outra AWS KMS operação ou do [evento de CloudTrail log](ct-creategrant.md) da CreateGrant operação. As [ListRetirableGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListRetirableGrants.html)operações [ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html)e retornam o [ID de concessão](#terms-grant-id), mas não um token de concessão.  
Para obter detalhes, consulte [Usar um token de concessão](using-grant-token.md).

**Entidade principal receptora da concessão**  <a name="terms-grantee-principal"></a>
As identidades que obtêm as permissões especificadas na concessão. Cada concessão tem uma entidade principal autorizada, mas a entidade principal autorizada pode representar várias identidades.   
O principal beneficiário pode ser qualquer AWS principal, incluindo um Conta da AWS (root), um [usuário do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html), uma função do [IAM, uma função](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) ou usuário [federado ou um usuário com função](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html) assumida. A entidade principal receptora da concessão pode estar na mesma conta da que a chave do KMS ou uma conta diferente. No entanto, a entidade principal receptora da concessão não pode ser uma[entidade principal do serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services), um[grupo do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) ou um[AWS organização](https://docs.aws.amazon.com/organizations/latest/userguide/).  
As práticas recomendadas do IAM não encorajam o uso de usuários do IAM com credenciais de longo prazo. Sempre que possível, use os perfis do IAM, por fornecerem credenciais temporárias. Para obter detalhes, consulte [Práticas recomendadas de segurança no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) no *Guia do usuário do IAM*.

**Retira (uma concessão)**  <a name="terms-retire-grant"></a>
Encerra uma concessão. Você retira uma concessão ao terminar de usar as permissões.  
A revogação e a retirada de uma concessão excluem essa concessão. No entanto, o processo é feito por uma entidade principal especificada na concessão. A revogação geralmente é feita por um administrador de chave. Para obter detalhes, consulte [Retirar e revogar concessões](grant-delete.md).

**Retirada da entidade principal**  <a name="terms-retiring-principal"></a>
Uma entidade principal que pode [retirar uma concessão](#terms-retire-grant). Você pode especificar uma entidade de retirada em uma concessão, mas ela não é necessária. O diretor que está se aposentando pode ser qualquer AWS principal, incluindo usuários do IAM Contas da AWS, funções do IAM, usuários federados e usuários com funções assumidas. A entidade principal de retirada pode estar na mesma conta da que a chave do KMS ou uma conta diferente.  
As práticas recomendadas do IAM não encorajam o uso de usuários do IAM com credenciais de longo prazo. Sempre que possível, use os perfis do IAM, por fornecerem credenciais temporárias. Para obter detalhes, consulte [Práticas recomendadas de segurança no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) no *Guia do usuário do IAM*.
Além de se aposentar do diretor especificado no subsídio, um subsídio pode ser aposentado pela pessoa Conta da AWS em que o subsídio foi criado. Se a concessão permitir a operação `RetireGrant`, a [entidade principal receptora da concessão](#terms-grantee-principal) poderá retirar a concessão. Além disso, o Conta da AWS ou Conta da AWS aquele que é o diretor que está se aposentando pode delegar a permissão para retirar uma bolsa a um diretor do IAM no mesmo. Conta da AWS Para obter detalhes, consulte [Retirar e revogar concessões](grant-delete.md).

**Revocar (uma concessão)**  <a name="terms-revoke-grant"></a>
Encerra uma concessão. Você revoga uma concessão para negar ativamente as permissões que a concessão permite.   
A revogação e a retirada de uma concessão excluem essa concessão. No entanto, o processo é feito por uma entidade principal especificada na concessão. A revogação geralmente é feita por um administrador de chave. Para obter detalhes, consulte [Retirar e revogar concessões](grant-delete.md).

**Consistência eventual (para concessões)**  <a name="terms-eventual-consistency"></a>
A AWS KMS API segue um modelo de [consistência eventual](https://en.wikipedia.org/wiki/Eventual_consistency). Quando você cria, retira ou revoga uma concessão, 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.  
Você pode ter conhecimento desse breve atraso se receber erros inesperados. Por exemplo, se você tentar gerenciar uma nova concessão ou usar as permissões em uma nova concessão antes que a concessão seja totalmente conhecida AWS KMS, você pode receber um erro de acesso negado. Se você retirar ou revogar uma concessão, a entidade principal receptora da concessão ainda poderá usar suas permissões por um breve período até que a concessão seja totalmente excluída. A estratégia típica é repetir a solicitação, e algumas AWS SDKs incluem lógica automática de recuo e repetição.  
AWS KMS tem recursos para mitigar esse breve atraso.   
+ Para usar as permissões em uma nova concessão imediatamente, use um [token de concessão](using-grant-token.md). Você pode usar um token de concessão para fazer referência a uma concessão em qualquer [operação de concessão](#terms-grant-operations). Para instruções, consulte [Usar um token de concessão](using-grant-token.md). 
+ A [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)operação tem um `Name` parâmetro que impede que operações de repetição criem concessões duplicadas.
Os tokens de concessão substituem a validade da concessão até que todos os endpoints do serviço sejam atualizados com o novo estado de concessão. Na maioria dos casos, a consistência eventual será alcançada em cinco minutos.
Para obter informações, consulte [consistência eventual do AWS KMS](accessing-kms.md#programming-eventual-consistency).

# Melhores práticas para AWS KMS subsídios
<a name="grant-best-practices"></a>

AWS KMS recomenda as seguintes melhores práticas ao criar, usar e gerenciar subsídios.
+ Limite as permissões na concessão àquelas que são exigidas pela entidade principal receptora da concessão. Use o princípio de [acesso com menos privilégio](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege).
+ Use uma entidade principal receptora da concessão específica, como uma função do IAM, e dê a ela permissão para usar somente as operações de API necessárias. 
+ Use [restrições de concessão](grants.md#terms-grant-constraint) do contexto de criptografia para garantir que os autores de chamadas estejam usando a chave do KMS para o propósito pretendido. Para obter detalhes sobre como usar o contexto de criptografia em uma solicitação para proteger seus dados, consulte [Como proteger a integridade de seus dados criptografados usando AWS Key Management Service e EncryptionContext](https://aws.amazon.com/blogs/security/how-to-protect-the-integrity-of-your-encrypted-data-by-using-aws-key-management-service-and-encryptioncontext/) no *blog AWS de segurança*.
**dica**  
Use a restrição de [EncryptionContextEqual](create-grant-overview.md#grant-constraints)concessão sempre que possível. A restrição de [EncryptionContextSubset](create-grant-overview.md#grant-constraints)concessão é mais difícil de usar corretamente. Se precisar usá-la, leia atentamente a documentação e teste a restrição de concessão para se certificar de que ela funciona como pretendido.
+ Exclua concessões duplicadas. Concessões duplicadas têm o mesmo ARN de chave, ações de API, entidade principal receptora da concessão, contexto de criptografia e nome. Se você retirar ou revogar a concessão original, mas deixar as duplicatas, as concessões duplicadas restantes constituirão escalonamentos não intencionais de privilégio. Para evitar duplicar concessões ao tentar novamente uma solicitação `CreateGrant`, use o [parâmetro `Name`](create-grant-overview.md#grant-create). Para detectar concessões duplicadas, use a [ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html)operação. Se você criar acidentalmente uma concessão duplicada, retire ou revogue-a assim que possível. 
**nota**  
Concessões para [chaves gerenciadas da AWS](concepts.md#aws-managed-key) podem parecer duplicadas, mas têm diferentes entidades principais receptoras de concessão.  
O campo `GranteePrincipal` na resposta `ListGrants` geralmente contém o principal favorecido da concessão. No entanto, quando o principal beneficiário da concessão é um AWS serviço, o `GranteePrincipal` campo contém o [principal do serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services), que pode representar vários diretores beneficiários diferentes.
+ Lembre-se de que as concessões não expiram automaticamente. [Reitre ou revogue a concessão](grant-delete.md) assim que a permissão não for mais necessária. Concessões que não forem excluídas podem criar riscos de segurança para recursos criptografados.

# Controlar o acesso a concessões
<a name="grant-authorization"></a>

Você pode controlar o acesso às operações que criam e gerenciam concessões em políticas de chaves, políticas do IAM e concessões. As entidades principais que recebem a permissão `CreateGrant` de uma concessão tem [permissões de concessão mais limitadas](create-grant-overview.md#grant-creategrant). 


| Operação de API | Política de chaves ou política do IAM | Concessão | 
| --- | --- | --- | 
| CreateGrant | ✓ | ✓ | 
| ListGrants | ✓ | - | 
| ListRetirableGrants | ✓ | - | 
| Retirar concessões | (Limitado. Consulte [Retirar e revogar concessões](grant-delete.md)) | ✓ | 
| RevokeGrant | ✓ | - | 

Ao usar uma política de chaves ou uma política do IAM para controlar o acesso às operações que criam e gerenciam concessões, você pode usar uma ou mais das seguintes condições de política para limitar a permissão. AWS KMS suporta todas as seguintes chaves de condição relacionadas à concessão. Para obter informações e exemplos detalhados, consulte [AWS KMS chaves de condição](conditions-kms.md).

[kms: GrantConstraintType](conditions-kms.md#conditions-kms-grant-constraint-type)  
Permite que as entidades principais criem uma concessão somente quando esta inclui a [restrição de concessão](create-grant-overview.md#grant-constraints) especificada.

[kms: GrantIsFor AWSResource](conditions-kms.md#conditions-kms-grant-is-for-aws-resource)  
Permite que os diretores `CreateGrant` liguem ou `RevokeGrant` somente quando [um AWS serviço integrado AWS KMS](https://aws.amazon.com/kms/features/#AWS_Service_Integration) envia a solicitação em nome do diretor. `ListGrants`

[kms: GrantOperations](conditions-kms.md#conditions-kms-grant-operations)  
Permite que as entidades principais criem uma concessão, mas limita a concessão às operações especificadas.

[kms: GranteePrincipal](conditions-kms.md#conditions-kms-grantee-principal)  
Permite que as entidades principais criem uma concessão somente para a [entidade principal receptora da concessão](grants.md#terms-grantee-principal).

[kms: RetiringPrincipal](conditions-kms.md#conditions-kms-retiring-principal)  
Permite que as entidades principais criem uma concessão somente quando esta especifica um [entidade principal de retirada](grants.md#terms-retiring-principal).

# Criar concessões
<a name="create-grant-overview"></a>

Antes de criar uma concessão, saiba mais sobre as opções para personalizar sua concessão. Você pode usar *restrições de concessão* para limitar as permissões na concessão. Além disso, saiba mais sobre como conceder a permissão `CreateGrant`. As entidades principais que obtêm permissão para criar concessões a partir de uma concessão são limitados em termos das concessões que elas podem criar.

**Topics**
+ [Criar uma concessão](#grant-create)
+ [Concedendo permissão CreateGrant](#grant-creategrant)

## Criar uma concessão
<a name="grant-create"></a>

Para criar uma concessão, chame a [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)operação. Especifique uma chave do KMS, uma [entidade principal receptora da concessão](grants.md#terms-grantee-principal) e uma lista de [operações de concessão](grants.md#terms-grant-operations). Você também pode designar uma [entidade principal de retirada](grants.md#terms-retiring-principal) opcional. Para personalizar a concessão, use parâmetros `Constraints` opcionais para definir as [restrições de concessão](https://docs.aws.amazon.com/kms/latest/APIReference/API_GrantConstraints.html)

Quando você cria, retira ou revoga uma concessão, pode haver um breve atraso, geralmente menos de cinco minutos, antes que a alteração esteja disponível em todo o AWS KMS. Para obter informações, consulte [Eventual consistency (for grants)](grants.md#terms-eventual-consistency) (Consistência eventual (para concessões)).

Por exemplo, o comando `CreateGrant` a seguir cria uma concessão que permite que usuários que estão autorizados a assumir o perfil `keyUserRole` chamem a operação [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) na [chave do KMS simétrica](symm-asymm-choose-key-spec.md#symmetric-cmks) especificada. A concessão usa o parâmetro `RetiringPrincipal` para designar um principal que pode desativar a concessão. Ele também inclui uma restrição de concessão que concede a permissão somente quando o [contexto de criptografia](encrypt_context.md) na solicitação inclui `"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}
```

Se o seu código tentar novamente a operação `CreateGrant` ou usar um[SDK da AWS que repete solicitações automaticamente](https://docs.aws.amazon.com/general/latest/gr/api-retries.html), use o parâmetro [Name](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html#KMS-CreateGrant-request-Name) opcional para impedir a criação de concessões duplicadas. Se AWS KMS receber uma `CreateGrant` solicitação de concessão com as mesmas propriedades de uma concessão existente, incluindo o nome, ela reconhecerá a solicitação como uma nova tentativa e não criará uma nova concessão. Não é possível usar o valor `Name` para identificar a concessão em qualquer operação do AWS KMS .

**Importante**  
Não inclua informações confidenciais ou sigilosas no nome da concessão. Ele pode aparecer em texto simples em CloudTrail registros e outras saídas.

```
$ 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}
```

Para exemplos de código que demonstram como criar concessões em várias linguagens de programação, consulte [Use `CreateGrant` com um AWS SDK ou CLI](example_kms_CreateGrant_section.md).

### Usar restrições de concessão
<a name="grant-constraints"></a>

[Restrições de concessão](https://docs.aws.amazon.com/kms/latest/APIReference/API_GrantConstraints.html) definem condições para as permissões que a concessão fornece à entidade principal receptora da concessão. Restrições de concessão ocupam o lugar de [chaves de condição](policy-conditions.md) em uma [política de chaves](key-policies.md) ou [política do IAM](iam-policies.md). Cada valor de restrição de concessão pode incluir até oito pares de contexto de criptografia. O valor do contexto de criptografia em cada restrição de concessão não pode exceder 384 caracteres.

**Importante**  
Não inclua informações confidenciais ou sigilosas nesse campo. Esse campo pode ser exibido em texto simples em CloudTrail registros e outras saídas.

AWS KMS suporta duas restrições de concessão `EncryptionContextEquals` e `EncryptionContextSubset` ambas estabelecem requisitos para o [contexto de criptografia](encrypt_context.md) em uma solicitação de uma operação criptográfica. 

As restrições de concessão de contexto de criptografia foram projetadas para serem usadas com [operações de concessão](grants.md#terms-grant-operations) que têm um parâmetro de contexto de criptografia. 
+ As restrições de contexto de criptografia são válidas somente em uma concessão para uma chave do KMS de criptografia simétrica. Operações criptográficas com outras chaves do KMS não são compatíveis com um contexto de criptografia.
+ A restrição do contexto de criptografia é ignorada para operações `DescribeKey` e `RetireGrant`. `DescribeKey` e `RetireGrant` não têm um parâmetro de contexto de criptografia, mas você pode incluir essas operações em uma concessão que tenha uma restrição de contexto de criptografia.
+ É possível usar uma restrição de contexto de criptografia em uma concessão para a operação `CreateGrant`. A restrição de contexto de criptografia requer que todas as concessões criadas com a permissão `CreateGrant` tenham uma restrição de contexto de criptografia igualmente rigorosa ou ainda mais rigorosa.

AWS KMS suporta as seguintes restrições de concessão de contexto de criptografia.

**EncryptionContextEquals**  
Use `EncryptionContextEquals` para especificar o contexto de criptografia exato para solicitações permitidas.   
`EncryptionContextEquals` requer que os pares de contexto de criptografia na solicitação sejam uma correspondência exata, com distinção entre maiúsculas e minúsculas, para os pares de contexto de criptografia na restrição de concessão. Os pares podem aparecer em qualquer ordem, mas as chaves e os valores em cada par não podem variar.   
Por exemplo, se a restrição de concessão `EncryptionContextEquals` exigir o par de contexto de criptografia `"Department": "IT"`, a concessão permitirá solicitações do tipo especificado apenas quando o contexto de criptografia na solicitação for exatamente`"Department": "IT"`.

**EncryptionContextSubset**  
Use `EncryptionContextSubset` para exigir que as solicitações incluam pares de contexto de criptografia específicos.  
`EncryptionContextSubset` requer que a solicitação inclua todos os pares de contexto de criptografia na restrição de concessão (uma correspondência exata com distinção entre maiúsculas e minúsculas), mas a solicitação também pode conter pares de contexto de criptografia adicionais. Os pares podem aparecer em qualquer ordem, mas as chaves e os valores em cada par não podem variar.   
Por exemplo, se a restrição de concessão `EncryptionContextSubset` exigir o par de contexto de criptografia `Department=IT`, a concessão permitirá solicitações do tipo especificado quando o contexto de criptografia na solicitação for `"Department": "IT"` ou incluir `"Department": "IT"` juntamente com outros pares de contexto de criptografia, como `"Department": "IT","Purpose": "Test"`.

Para especificar uma restrição de contexto de criptografia em uma concessão para uma chave KMS de criptografia simétrica, use o `Constraints` parâmetro na operação. [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html) A concessão que esse comando cria concede aos usuários que estão autorizados a assumir a permissão do perfil `keyUserRole` para chamar a operação [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html). Porém, essa permissão entrará em vigor somente quando o contexto de criptografia na solicitação `Decrypt` for um par de contexto de criptografia `"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}
```

A concessão resultante é semelhante à seguinte. Observe que a permissão concedida ao perfil `keyUserRole` entrará em vigor somente quando a solicitação `Decrypt` usar o mesmo par de contexto de criptografia especificado na restrição de concessão. Para encontrar as concessões em uma chave KMS, use a [ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html)operação.

```
$ 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 atender à restrição de concessão `EncryptionContextEquals`, o contexto de criptografia na solicitação para a operação `Decrypt` deve ser um par `"Department": "IT"`. Uma solicitação como a seguinte da entidade principal receptora da concessão atenderia à restrição de concessão `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
```

Quando a restrição de concessão é `EncryptionContextSubset`, os pares de contexto de criptografia na solicitação devem incluir pares de contexto de criptografia na restrição de concessão, mas a solicitação também pode incluir outros pares de contexto de criptografia. A restrição de concessão a seguir exige que um dos pares de contexto de criptografia na solicitação seja `"Deparment": "IT"`.

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

A solicitação a seguir da entidade principal receptora da concessão atenderia a ambas as restrições de concessão `EncryptionContextEqual` e `EncryptionContextSubset` neste exemplo.

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

No entanto, uma solicitação como o seguinte da entidade principal receptora da concessão atenderia a restrição de concessão `EncryptionContextSubset`, mas falharia na restrição de concessão `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 os serviços geralmente usam restrições de contexto de criptografia nas concessões que lhes dão permissão para usar chaves KMS em seu. Conta da AWS Por exemplo, o Amazon DynamoDB usa uma concessão, como a seguinte, para obter permissão de uso da [Chave gerenciada pela AWS](concepts.md#aws-managed-key) para o DynamoDB na sua conta. A restrição de concessão `EncryptionContextSubset` nessa concessão colocará em vigor as permissões na concessão somente quando o contexto de criptografia na solicitação incluir os pares `"subscriberID": "111122223333"` e `"tableName": "Services"`. Essa restrição de concessão significa que a concessão permite que o DynamoDB use a chave do KMS especificada apenas para uma tabela específica na sua Conta da AWS.

Para obter essa saída, execute a [ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html)operação no Chave gerenciada pela AWS for DynamoDB em sua conta.

```
$ 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"
        }
    ]
}
```

## Concedendo permissão CreateGrant
<a name="grant-creategrant"></a>

Uma concessão pode incluir permissão para chamar a operação `CreateGrant`. Porém, quando uma [entidade principal receptora da concessão](grants.md#terms-grantee-principal) obtém permissão para chamar `CreateGrant` de uma concessão, em vez de uma política, essa permissão é limitada. 
+ A entidade principal receptora da concessão só pode criar concessões que permitam algumas ou todas as operações na concessão pai.
+ As [restrições de concessão](#grant-constraints) nas concessões que elas criam devem ser pelo menos tão rigorosas quanto as contidos na concessão pai.

Essas limitações não se aplicam a entidades principais que obtêm a permissão `CreateGrant` de uma política, embora suas permissões possam ser limitadas por [condições de política](grant-authorization.md).

Por exemplo, considere uma concessão que permite que o principal favorecido chame as operações `GenerateDataKey`, `Decrypt` e `CreateGrant`. Chamamos uma concessão que aceita a permissão `CreateGrant` para uma *concessão pai*.

```
# 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"
                }
            },
        }
    ]
}
```

A entidade principal receptora da concessão, exampleUser, pode usar essa permissão para criar uma concessão que inclui qualquer subconjunto das operações especificadas na concessão original, como `CreateGrant` e `Decrypt`. A *concessão filho* não pode incluir outras operações, como `ScheduleKeyDeletion` ou `ReEncrypt`.

Além disso, as [restrições de concessão](https://docs.aws.amazon.com/kms/latest/APIReference/API_GrantConstraints.html) nas concessões filho devem ser igualmente ou mais restritivas que as da concessão pai. Por exemplo, a concessão filho pode adicionar pares a uma restrição `EncryptionContextSubset` na concessão pai, mas não pode removê-los. A concessão filho pode alterar uma restrição `EncryptionContextSubset` para uma restrição `EncryptionContextEquals`, mas não o contrário.

As práticas recomendadas do IAM não encorajam o uso de usuários do IAM com credenciais de longo prazo. Sempre que possível, use os perfis do IAM, por fornecerem credenciais temporárias. Para obter detalhes, consulte [Práticas recomendadas de segurança no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) no *Guia do usuário do IAM*.

Por exemplo, a entidade principal receptora da concessão pode usar a permissão `CreateGrant` que obteve da concessão pai para criar a seguinte concessão filho. As operações na concessão filho são um subconjunto das operações na concessão pai, e as restrições de concessão são mais restritivas.

```
# 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"
                }
            },
        }
    ]
}
```

A entidade principal receptora da concessão na concessão filho, `anotherUser`, pode usar a permissão `CreateGrant` para criar concessões. No entanto, as concessões criadas por `anotherUser` devem incluir as operações em sua concessão pai ou um subconjunto, e as restrições de concessão devem ser iguais ou mais rigorosas. 

# Visualizar concessões
<a name="grant-view"></a>

Para visualizar a concessão, use a [ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html)operação. Você deve especificar a chave do KMS à qual as concessões se aplicam. Você também pode filtrar a lista de concessões por ID de concessão ou entidade principal receptora da concessão. Para obter mais exemplos, consulte [Use `ListGrants` com um AWS SDK ou CLI](example_kms_ListGrants_section.md).

Para ver todas as doações na Conta da AWS região com um determinado [diretor aposentado](grants.md#terms-retiring-principal), use [ListRetirableGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListRetirableGrants.html). As respostas incluem detalhes sobre cada concessão.

**nota**  
O campo `GranteePrincipal` na resposta `ListGrants` geralmente contém o principal favorecido da concessão. No entanto, quando o principal beneficiário da concessão é um AWS serviço, o `GranteePrincipal` campo contém o [principal do serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services), que pode representar vários diretores beneficiários diferentes.

Por exemplo, o comando a seguir lista todas as concessões para uma chave do 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"
            ]
        }
    ]
}
```

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

# Retirar e revogar concessões
<a name="grant-delete"></a>

Para excluir uma concessão, retire-a ou revogue-a.

As [RevokeGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html)operações [RetireGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html)e são muito semelhantes entre si. Ambas excluem uma concessão, o que elimina as permissões por ela permitidas. A principal diferença entre elas é como elas são autorizadas.

**RevokeGrant**  
Como a maioria das AWS KMS operações, o acesso à `RevokeGrant` operação é controlado por meio de [políticas-chave e políticas](key-policies.md) [do IAM](iam-policies.md). A [RevokeGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html)API pode ser chamada por qualquer diretor com `kms:RevokeGrant` permissão. Essa permissão está incluída nas permissões padrão fornecidas aos administradores de chaves. Normalmente, os administradores revogam uma concessão para negar permissões que são permitidas pela concessão.

**RetireGrant**  
A concessão determina quem pode retirá-la. Esse design permite que você controle o ciclo de vida de uma concessão sem alterar políticas de chaves ou políticas do IAM. Normalmente, você retira uma concessão ao terminar de usar suas permissões.  
Uma concessão pode ser retirada por uma [entidade principal de retirada](grants.md#terms-retiring-principal) especificada nessa concessão. A [entidade principal receptora da concessão](grants.md#terms-grantee-principal) também pode retirar a concessão, mas somente se ela também for uma entidade principal de retirada ou se a concessão incluir a operação `RetireGrant`. Como backup, aquele Conta da AWS em que o subsídio foi criado pode retirar o subsídio.  
Existe uma permissão `kms:RetireGrant` que pode ser usada em políticas do IAM, mas sua utilidade é limitada. Entidades principais especificadas na concessão podem retirar uma concessão sem a permissão `kms:RetireGrant`. A permissão `kms:RetireGrant` por si só não permite que as entidades principais retirem uma concessão. A permissão de `kms:RetireGrant` não tem efeito em uma [política de chave](key-policies.md) ou [política de controle de recurso](resource-control-policies.md).  
+ Para negar a permissão de retirar uma concessão, você pode usar uma ação `Deny` com a permissão de `kms:RetireGrant` em suas políticas do IAM.
+ O Conta da AWS proprietário da chave KMS pode delegar a `kms:RetireGrant` permissão a um diretor do IAM na conta. 
+ Se o diretor aposentado for diferente Conta da AWS, os administradores da outra conta podem usar `kms:RetireGrant` para delegar permissão para retirar a concessão a um diretor do IAM nessa conta.

A AWS KMS API segue um modelo de [consistência eventual](grants.md#terms-eventual-consistency). Quando você cria, retira ou revoga uma concessão, 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. Se você precisar excluir uma nova concessão imediatamente, antes que ela esteja disponível por toda parte AWS KMS, [use um token de concessão](using-grant-token.md) para retirar a concessão. Não é possível usar um token de concessão para revogar uma concessão.