Subsídios em AWS KMS - 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á.

Subsídios em AWS KMS

Uma concessão é um instrumento político que permite que AWS os diretores usem KMS chaves em operações criptográficas. Também permite que eles visualizem uma KMS chave (DescribeKey) e criem e gerenciem subsídios. Ao autorizar o acesso a uma KMS chave, os subsídios são considerados junto com as principais políticas e IAMpolíticas. As concessões geralmente são usadas para permissões temporárias porque você pode criar uma, usar suas permissões e excluí-la sem alterar suas principais políticas ou IAM políticas.

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 Como os serviços da AWS, usam o AWS KMS 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 subsídios 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ê cria uma concessão para uma KMS chave, a concessão permite que o principal beneficiário chame as operações de concessão especificadas na KMS chave, desde que todas as condições especificadas na concessão sejam atendidas.

  • Cada concessão permite acesso a exatamente uma KMS chave. Você pode criar uma concessão para uma KMS chave em outro Conta da AWS.

  • Uma concessão pode permitir acesso a uma KMS chave, mas não negar acesso.

  • Cada concessão tem uma entidade principal autorizada. O principal beneficiário pode representar uma ou mais identidades na Conta da AWS mesma KMS chave ou em uma conta diferente.

  • Uma concessão só pode permitir operações de concessão. As operações de subsídio devem ser apoiadas pela KMS chave da concessão. Se você especificar uma operação sem suporte, a CreateGrantsolicitação falhará com uma ValidationError exceção.

  • O diretor beneficiário pode usar as permissões concedidas pela concessão sem especificar a concessão, da mesma forma que faria se as permissões viessem de uma política ou política chave. IAM No entanto, como AWS KMS API segue um modelo de consistência eventual, quando você cria, retira ou revoga uma concessão, pode haver um breve atraso antes que a alteração esteja disponível por toda parte. AWS KMS Para usar as permissões em uma concessão imediatamente, use um token de concessão.

  • Uma entidade principal autorizada pode excluir a concessão (retirar ou revogar 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 KMS chave. Para obter detalhes, consulte Subsídios por KMS chave: 50.000.

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 defina políticas.

  • Usuários com permissão para criar concessões para uma KMS chave (kms:CreateGrant) podem usar uma concessão para permitir que usuários e funções, incluindo AWS serviços, usem a KMS chave. 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. Você pode usar concessões para permitir que os diretores visualizem a KMS chave, a usem em operações criptográficas e criem e retirem concessões. Para obter mais detalhes, consulte Operações de concessão. Você também pode usar restrições de concessão para limitar as permissões em uma concessão para uma chave de criptografia simétrica.

  • Os diretores podem obter permissão para criar subsídios a partir de uma política ou IAM política chave. Os diretores que obtêm kms:CreateGrant permissão de uma política podem criar subsídios para qualquer operação de concessão na KMS chave. 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 para limitar essa permissão.

  • As entidades principais também podem obter permissão para criar concessões de uma concessão. Esses diretores só podem delegar as permissões que lhes foram concedidas, mesmo que tenham outras permissões de uma política. Para obter detalhes, consulte Concedendo permissão CreateGrant .

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

Conceitos sobre concessões

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

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

ID de concessão

O identificador exclusivo de uma concessão para uma KMS chave. Você pode usar uma ID de concessão, junto com um identificador de chave, para identificar uma concessão em uma RevokeGrantsolicitação RetireGrantor.

Operações de concessão

As AWS KMS operações que você pode permitir em uma concessão. Se você especificar outras operações, a CreateGrantsolicitação falhará com uma ValidationError exceção. Estas são também as operações que aceitam um token de concessão. Para obter informações detalhadas sobre essas permissões, consulte a AWS KMS permissões.

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:

As operações de concessão que você permite devem ser suportadas pela KMS chave na concessão. Se você especificar uma operação sem suporte, a CreateGrantsolicitação falhará com uma ValidationError exceção. Por exemplo, concessões para KMS chaves de criptografia simétricas não podem permitir as VerifyMacoperações Assinar, Verificar GenerateMacou. As concessões para KMS chaves assimétricas não podem permitir nenhuma operação que gere chaves de dados ou pares de chaves de dados.

Token de concessão

A AWS KMS API seguir, um modelo de consistência eventual. 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. 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 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 GenerateDataKeyoperação. Ele usa um token de concessão para representar a concessão que dá ao chamador (o principal beneficiário) permissão para chamar a chave GenerateDataKey especificada. KMS

$ 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 pode usar um token de concessão em uma chamada para a RetireGrantoperaçã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 da CreateGrant operação. As ListRetirableGrantsoperações ListGrantse retornam o ID de concessão, mas não um token de concessão.

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

Entidade principal receptora da concessão

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 IAMusuário, uma função, uma IAMfunção ou usuário federado ou um usuário com função assumida. O principal do beneficiário pode estar na mesma conta da KMS chave ou em uma conta diferente. No entanto, o diretor beneficiário não pode ser um diretor de serviço, um IAMgrupo ou uma AWS organização.

nota

IAMas melhores práticas desencorajam o uso de IAM usuários com credenciais de longo prazo. Sempre que possível, use IAM funções que forneçam credenciais temporárias. Para obter detalhes, consulte as melhores práticas de segurança IAM no Guia IAM do usuário.

Retira (uma concessão)

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.

Retirada da entidade principal

Uma entidade principal que pode retirar uma concessão. 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 diretor, incluindo IAM usuários Contas da AWS, IAM funções, usuários federados e usuários com funções assumidas. O principal que está se aposentando pode estar na mesma conta da KMS chave ou em uma conta diferente.

nota

IAMas melhores práticas desencorajam o uso de IAM usuários com credenciais de longo prazo. Sempre que possível, use IAM funções que forneçam credenciais temporárias. Para obter detalhes, consulte as melhores práticas de segurança IAM no Guia IAM do usuário.

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 poderá retirar a concessão. Além disso, o Conta da AWS ou Conta da AWS aquele que é o diretor aposentado pode delegar a permissão para aposentar um subsídio a um IAM diretor do mesmo. Conta da AWS Para obter detalhes, consulte Retirar e revogar concessões.

Revocar (uma concessão)

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.

Consistência eventual (para concessões)

A AWS KMS API seguir, um modelo de consistência eventual. 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.

nota

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.

Melhores práticas para AWS KMS subsídios

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.

  • Use um principal beneficiário específico, como uma IAM função, e dê permissão ao principal beneficiário para usar somente as API operações necessárias.

  • Use o contexto de criptografia para conceder restrições para garantir que os chamadores estejam usando a KMS chave para a finalidade pretendida. 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 no blog AWS de segurança.

    dica

    Use a restrição de EncryptionContextEqualconcessão sempre que possível. A restrição de EncryptionContextSubsetconcessã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. As concessões duplicadas têm a mesma chaveARN, API ações, principal do beneficiário, 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. Para detectar concessões duplicadas, use a ListGrantsoperaçã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 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, 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 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.