Usar concessões - AWS Key Management Service

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 concessões

Uma concessão é um instrumento de política que permite que AWSprincipais da usem AWS KMS chaves mestras do cliente (CMKs) em operações criptográficas. Ela também pode permitir que eles visualizem uma CMK (DescribeKey) e criem e gerenciem concessões. Ao autorizar o acesso a um CMK, as concessões são consideradas juntamente com as políticas de chaves e as políticas do IAM. As concessões são frequentemente usadas para permissões temporárias porque você pode criar uma, usar suas permissões e excluí-la sem alterar suas políticas de chaves ou políticas do IAM.

Juntamente com as políticas de chaves, que são obrigatórias, e as políticas do IAM, que são opcionais, as concessões fornecem um componente poderoso e flexível da estratégia de controle de acesso. Normalmente, você usa políticas de chaves para estabelecer permissões estáticas de longo prazo para o CMK. Use políticas do IAM para controlar o acesso a operações que não envolvem um determinado CMK, como CreateKey, e para descrever permissões que se aplicam a vários CMKs ou incluem permissões para os recursos de vários serviços da AWS. Depois, para conceder acesso temporário ou limitado a um CMK, use uma concessão.

As concessões são comumente usadas por serviços da AWS que se integram ao 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 retira a concessão assim que sua tarefa é concluída. Para obter detalhes sobre como os serviços da AWS usam concessões, consulte Como os serviços da AWS, usam o AWS KMS ou o tópico Criptografia em repouso no guia do usuário ou no guia do desenvolvedor do serviço.

Para exemplos de código que demonstram como trabalhar com concessões em várias linguagens de programação, consulte Trabalhar com concessões.

Sobre concessões

Concessões são um mecanismo de controle de acesso muito flexível e útil. Quando você anexa uma concessão a uma Chave mestra do cliente (CMK), a concessão permite que um principal chame operações específicas em uma CMK quando as condições especificadas na concessão forem atendidas.

  • Cada concessão controla o acesso a apenas um CMK. podem estar na mesma conta da CMK ou em outra.AWS

  • Você pode usar uma concessão para permitir o acesso, mas não para negá-lo. Concessões só podem permitir acesso a operações de concessão.

  • Os principais que obtêm permissões de uma concessão podem usar essas permissões sem especificar a concessão, da mesma forma que se as permissões viessem de uma política de chaves ou política do IAM. Contudo, quando você cria, aposenta ou revoga uma concessão, pode haver um breve atraso, geralmente menos de cinco minutos, até que a operação obtenha consistência eventual. Para usar as permissões em uma concessão imediatamente, use um token de concessão.

  • Você pode usar concessões para permitir que os principais em uma conta da AWS diferente usem uma CMK.

  • Se uma entidade principal tiver as permissões necessárias, ela poderá excluir a concessão (retirar ou revogar). Essa ações elimina todas as permissões permitidas pela concessão. Você não precisa descobrir quais políticas adicionar ou ajustar para desfazer a concessão.

  • Quando você cria, aposenta ou revoga uma concessão, pode haver um breve intervalo, geralmente menos de 5 minutos, até que a alteração esteja disponível em todo o AWS KMS. Para obter detalhes, consulte Consistência eventual de concessões.

Seja cauteloso ao criar concessões e ao conceder a outras pessoas permissão para criar concessões. A permissão para criar concessões tem implicações de segurança, assim como permitir que a permissão kms:PutKeyPolicy defina políticas.

  • Usuários com permissão para criar concessões para uma CMK (kms:CreateGrant) podem usar uma concessão para permitir que usuários e funções, incluindo serviços da AWS, usem a CMK. As entidades principais podem ser identidades em sua própria conta da AWS ou identidades em uma conta ou organização diferente.

  • Concessões podem permitir apenas um subconjunto de operações AWS KMS. Você pode usar concessões para permitir que os principais visualizem a CMK, use-a em operações de criptografia e criem e desative concessões. Para obter detalhes, consulte Conceder operações. Você também pode usar restrições de concessão para limitar as permissões em uma concessão.

  • Os principais podem obter permissão para criar concessões a partir de uma política de chaves ou de políticas do IAM. Esses principais podem criar concessões para qualquer operação de concessão no CMK, mesmo que não tenham a permissão. Quando você concede permissão kms:CreateGrant em uma política, você pode usar condições de política para limitar essa permissão.

  • Os principais também podem obter permissão para criar concessões de uma concessão. Essa entidade principal só pode delegar as permissões que foram concedidas, mesmo que tenham outras permissões de uma política. Para obter mais detalhes, consulte Conceder a permissãoCreateGrant.

Para obter ajuda com conceitos relacionados a concessões, consulte Terminologia de concessão.

Concessões para CMKs simétricas e assimétricas

É possível criar uma concessão que controle o acesso a uma CMK simétrica ou a uma CMK assimétrica. No entanto, não é possível criar uma concessão que permita que um principal execute uma operação que não seja compatível com a CMK. Se você tentar fazer isso, o AWS KMS retornará uma exceção ValidationError.

CMKs simétricas

As concessões para CMKs simétricas não podem permitir as operações Sign, Verify ou GetPublicKey. (Há exceções limitadas a essa regra para operações legadas, mas você não deve criar uma concessão para uma operação que não é compatível com o AWS KMS.)

CMKs assimétricas

As concessões para CMKs assimétricas não podem permitir operações que gerem chaves de dados ou pares de chaves de dados. Elas também não podem permitir operações relacionadas à alternância automática de chaves, ao material de chave importada ou às CMKs nos armazenamentos de chaves personalizados.

As concessões para CMKs com um uso de chave de SIGN_VERIFY não podem permitir operações de criptografia. As concessões para CMKs com um uso de chave de ENCRYPT_DECRYPT não podem permitir as operações Sign ou Verify.

Terminologia de concessões

Para usar concessões efetivamente, você precisará entender os termos e conceitos que o AWS KMS usa.

Restrição de concessão

Uma condição que limita as permissões na concessão. No momento, o AWS KMS oferece suporte a restrições de concessão com base no contexto de criptografia na solicitação de uma operação de criptografia. Para obter mais detalhes, consulte Usar restrições de concessão.

ID da concessão

O identificador exclusivo de uma concessão de um CMK. É possível usar uma concessão, juntamente com um identificador de chave, para identificar uma concessão em uma solicitação RetireGrant ou RevokeGrant.

Operações de concessão

As operações do AWS KMS que você pode permitir em uma concessão. Essas também são as operações que aceitam um token de concessão. Para obter informações detalhadas sobre essas permissões, consulte o Permissões de AWS KMS.

Essas operações na verdade 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:

Não é possível criar uma concessão para uma operação que não é compatível com o CMK. Se você tentar fazer isso, o AWS KMS retornará uma exceção ValidationError.

Token de concessão

Quando você cria uma concessão, pode haver um breve atraso, geralmente menos de cinco minutos, até que a nova concessão esteja disponível em todo o AWS KMS, ou seja, até que ela obtenha consistência eventual. Se tentar usar uma concessão antes de atingir consistência eventual, você poderá receber um erro de acesso negado. Um token de concessão permite consultar a concessão e usar as permissões de concessão imediatamente.

Um token de concessão é uma string exclusiva, 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. Contudo, 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 atinja consistência eventual. Depois disso, o principal favorecido pode usar a permissão na concessão sem fornecer um token de concessão ou quaisquer outras evidências da concessão. Você pode usar um token de concessão a qualquer momento, mas assim que a concessão for eventualmente consistente, o AWS KMS usará a concessão para determinar as permissões, e não o token de concessão.

Por exemplo, o comando a seguir chama a operação GenerateDataKey do . Ele usa um token de concessão para representar a concessão que concede ao chamador (o principal favorecido) permissão para chamar GenerateDataKey no CMK especificado.

$ aws kms generate-data-key \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --key-spec AES_256 \ --grant-token $token

Você também pode usar um token de concessão para identificar uma concessão em operações que gerenciam concessões. Por exemplo, a entidade principal de desativação pode usar um token de concessão em uma chamada para a operação RetireGrant.

$ 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 qualquer outra operação do AWS KMS ou do evento de log do CloudTrail para a operação .CreateGrant As operações ListGrants e ListRetirableGrants retornam o ID de concessão, mas não um token de concessão.

Para obter mais detalhes, consulte Usar um token de concessão.

Principal favorecido

A identidade que obtém as permissões especificadas na concessão. Uma concessão deve ter pelo menos um principal favorecido. O principal favorecido pode ser qualquer principal da AWS, incluindo uma conta da AWS (raiz), um usuário do IAM, uma função do IAM, uma função federada ou usuário ou um usuário da função assumida. O principal favorecido pode estar na mesma conta que o CMK ou em uma conta diferente. No entanto, o principal favorecido não pode ser um principal de serviço, um grupo do IAM ou uma organização do .AWS

Desativar (uma concessão)

Encerra uma concessão. Você aposenta uma concessão quando terminar de usar as permissões.

A revogação e a desativação de uma concessão excluem a concessão. Mas a desativação é feita por um principal especificado na concessão. A revogação geralmente é feita por um administrador de chaves. Para obter mais detalhes, consulte Desativar e revogar concessões.

Desativar a entidade principal

Uma entidade principal que pode retirar uma concessão. Você pode especificar uma entidade principal a ser desativada em uma concessão, mas isso não é obrigatório. O principal a ser desativado pode ser qualquer principal da AWS, incluindo contas da AWS (raiz), usuários do IAM, funções do IAM, usuários federados e usuários da função assumida. O principal que está sendo desativado pode estar na mesma conta do CMK ou em uma conta diferente.

Além de desativar o principal especificado na concessão, uma concessão pode ser desativada pela conta da AWS (usuário raiz) na qual a concessão foi criada. Se a concessão permitir a operação RetireGrant, o principal favorecido poderá desativar a concessão. Além disso, a conta da AWS (usuário raiz) ou uma conta da AWS que é a entidade principal que está sendo desativada pode delegar a permissão para desativar uma concessão para uma entidade principal do IAM na mesma conta da AWS. Para obter mais detalhes, consulte Desativar e revogar concessões.

Revogar (uma concessão)

Encerra uma concessão. Você revoga uma concessão para negar ativamente as permissões permitidas pela concessão.

A revogação e a desativação de uma concessão excluem a concessão. Mas a desativação é feita por um principal especificado na concessão. A revogação geralmente é feita por um administrador de chaves. Para obter mais detalhes, consulte Desativar e revogar concessões.

Consistência eventual (para concessões)

Quando você cria, aposenta 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. Quando esse intervalo for concluído, consideraremos que a operação obteve consistência eventual.

Talvez você saiba esse 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 conhecida em todo o AWS KMS, poderá obter um erro de acesso negado. Se você aposentar ou revogar uma concessão, o principal favorecido 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 de recuo automático e de nova tentativa.

O AWS KMS tem recursos para minimizar esse breve atraso.

nota