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

ABAC para AWS KMS

O controle de acesso baseado em atributos (ABAC) é uma estratégia de autorização que define permissões com base em atributos. O AWS KMS oferece suporta ao ABAC, permitindo que você controle o acesso às suas chaves gerenciadas pelo cliente com base nas etiquetas e nos aliases associados às chaves do KMS. As chaves de condição de etiqueta e alias que habilitam o ABAC no AWS KMS fornecem uma maneira eficiente e flexível de autorizar as entidades principais a usar chaves do KMS sem editar políticas ou gerenciar concessões. Porém, você deve usar esse recurso com cuidado, para que as entidades principais não sejam tenham o acesso inadvertidamente permitido ou negado.

Se você usar ABAC, esteja ciente de que a permissão para gerenciar etiquetas e aliases agora é uma permissão de controle de acesso. Certifique-se de conhecer as etiquetas e os aliases existentes em todas as chaves do KMS antes de implantar uma política que depende de etiquetas ou aliases. Tome precauções razoáveis ao adicionar, excluir e atualizar aliases e ao marcar e desmarcar chaves. Conceda permissões para gerenciar etiquetas e aliases apenas às entidades principais que precisam deles e limite as etiquetas e os aliases que eles podem gerenciar.

Observações

Ao usar o ABAC para o AWS KMS, tenha cuidado ao conceder permissão a entidades principais para gerenciar etiquetas e aliases. A alteração de uma etiqueta ou de um alias pode permitir ou negar permissão para uma chave do KMS. Os administradores de chaves que não tiverem permissão para alterar políticas de chaves ou criar concessões poderão controlar o acesso às chaves do KMS se tiverem permissão para gerenciar etiquetas ou aliases.

Pode levar até cinco minutos para que alterações de etiqueta e alias afetem a autorização de chaves do KMS. Alterações recentes podem estar visíveis em operações de API antes de afetarem a autorização.

Para controlar o acesso a uma chave do KMS com base em seu alias, você deve usar uma chave de condição. Você não pode usar um alias para representar uma chave do KMS no elemento Resourcede uma instrução de política. Quando um alias é exibido no elemento Resource, a instrução de política aplica-se a esse alias, e não à chave do KMS associada.

Saiba mais

Chaves de condição de ABAC para o AWS KMS

Para autorizar o acesso a chaves do KMS com base em suas etiquetas e aliases, use as seguintes chaves de condição em uma política de chaves ou política do IAM.

Chave de condição para ABAC Descrição Tipo de política Operações do AWS KMS
aws:ResourceTag A etiqueta (chave e valor) na chave do KMS corresponde à etiqueta (chave e valor) ou ao padrão de etiqueta na política Somente política do IAM Operações de recursos de chaves do KMS 2
aws:RequestTag/tag-key A etiqueta (chave e valor) na solicitação corresponde à etiqueta (chave e valor) ou ao padrão de etiqueta na política Políticas de chaves e políticas do IAM1 TagResource, UntagResource
aws:TagKeys Chaves de etiqueta na solicitação correspondem a chaves de etiqueta na política Políticas de chaves e políticas do IAM1 TagResource, UntagResource
kms:ResourceAliases Aliases associados à chave do KMS correspondem a aliases ou padrões de alias na política Somente política do IAM Operações de recursos de chaves do KMS 2
kms:RequestAlias O alias que representa a chave do KMS na solicitação corresponde ao alias ou aos padrões de alias na política. Políticas de chaves e políticas do IAM1 Operações criptográficas,DescribeKey,GetPublicKey

1Qualquer chave de condição que possa ser usada em uma política de chaves também pode ser usada em uma política do IAM, mas somente sea política de chaves a permitir.

2A operação de recurso de chave do KMS é uma operação autorizada para uma chave do KMS específica. Para identificar as operações de recursos de chaves do KMS, no tabela de permissões do AWS KMS, procure um valor de chave do KMS na coluna Resourcespara a operação.

Por exemplo, é possível usar essas chaves de condição para criar as seguintes políticas.

  • Uma política do IAM com kms:ResourceAliases que concede permissão para usar chaves do KMS com um alias específico ou um padrão de alias. Isso é um pouco diferente de políticas que dependem de etiquetas: Embora seja possível usar padrões de alias em uma política, cada alias deve ser exclusivo em uma região e Conta da AWS. Isso permite aplicar uma política a um conjunto selecionado de chaves do KMS sem listar os ARNs dessas chaves na instrução de política. Para adicionar ou remover chaves do KMS do conjunto, altere o alias da chave do KMS.

  • Uma política de chaves com kms:RequestAlias que permite que as entidades principais usem uma chave do KMS em uma operação Encrypt, mas somente quando a solicitação Encrypt usa esse alias para identificar a chave do KMS.

  • Uma política do IAM com aws:ResourceTag/tag-key que nega permissão para usar chaves do KMS com uma determinada chave de etiqueta e um valor de etiqueta. Isso permite aplicar uma política a um conjunto selecionado de chaves do KMS sem listar os ARNs dessas chaves na instrução de política. Para adicionar ou remover chaves do KMS do conjunto, marque ou desmarque a chave do KMS.

  • Uma política do IAM com aws:RequestTag/tag-key que permite que as entidades principais excluam somente etiquetas "Purpose"="Test" de chaves do KMS.

  • Uma política do IAM com aws:TagKeys que nega permissão para marcar ou desmarcar uma chave do KMS com uma chave de etiqueta Restricted.

O ABAC torna o gerenciamento de acesso flexível e escalável. Por exemplo, você pode usar a chave de condição aws:ResourceTag/tag-key para criar uma política do IAM que permite que as entidades principais usem uma chave do KMS para operações especificadas somente quando essa chave tem uma etiqueta Purpose=Test. A política aplica-se a todas as chaves do KMS em todas as regiões da Conta da AWS.

Quando anexada a um usuário ou função, a seguinte política do IAM permite que as entidades principais usem todas as chaves do KMS existentes com uma etiqueta Purpose=Test para as operações especificadas. Para fornecer esse acesso a chaves do KMS novas ou existentes, não é necessário alterar a política. Basta anexar a etiqueta Purpose=Testàs chaves do KMS. Da mesma forma, para remover esse acesso das chaves do KMS com uma etiqueta Purpose=Test, edite ou exclua essa etiqueta.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AliasBasedIAMPolicy", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "arn:aws:kms:*:111122223333:key/*", "Condition": { "StringEquals": { "aws:ResourceTag/Purpose": "Test" } } } ] }

No entanto, se você usar esse recurso, tenha cautela ao gerenciar etiquetas e aliases. Operações de adicionar, alterar ou excluir uma marca ou alias podem inadvertidamente permitir ou negar acesso a uma chave do KMS. Os administradores de chaves que não tiverem permissão para alterar políticas de chaves ou criar concessões poderão controlar o acesso às chaves do KMS se tiverem permissão para gerenciar etiquetas e aliases. Para atenuar esse risco, considerelimitar permissões para gerenciar etiquetas ealiases. Por exemplo, é possível permitir que apenas as entidades principais selecionadas gerenciem etiquetas do Purpose=Test. Para obter mais detalhes, consulte Use aliases para controlar o acesso às chaves KMS e Usar tags para controlar o acesso a chaves do KMS.

Etiquetas ou aliases?

O AWS KMS oferece suporte ao ABAC com etiquetas e aliases. Ambas as opções proporcionam uma estratégia de controle de acesso flexível e escalável, mas são ligeiramente diferentes uma da outra.

Você pode optar por usar etiquetas ou aliases com base em seus padrões de uso específicos da AWS. Por exemplo, se você já concedeu permissões de marcação para a maioria dos administradores, talvez seja mais fácil controlar uma estratégia de autorização baseada em aliases. Ou, se você estiver se aproximando da cota de aliases por chave do KMS, talvez prefira uma estratégia de autorização baseada em etiquetas.

Os benefícios a seguir são de interesse geral.

Benefícios do controle de acesso baseado em tags

  • O mesmo mecanismo de autorização para diferentes tipos de recursos da AWS.

    É possível usar a mesma etiqueta ou chave de etiqueta para controlar o acesso a vários tipos de recursos, como cluster do Amazon Relational Database Service (Amazon RDS), volume do Amazon Elastic Block Store (Amazon EBS) e chave do KMS. Esse recurso permite diversos modelos de autorização diferentes que são mais flexíveis que o controle de acesso baseado em função tradicional.

  • Autorize o acesso a um grupo de chaves do KMS.

    É possível usar etiquetas para gerenciar o acesso a um grupo de chaves do KMS na mesma região e Conta da AWS. Atribua a mesma etiqueta ou chave de etiqueta às chaves do KMS qye você escolher. Em seguida, crie uma instrução de política simples e fácil de manter com base nessa etiqueta ou chave de etiqueta. Para adicionar ou remover uma chave do KMS do seu grupo de autorização, adicione ou remova a etiqueta: não é necessário editar a política.

Benefícios do controle de acesso baseado em alias

  • Autorize o acesso a operações de criptografia com base em aliases.

    A maioria das condições de política com base em solicitações para atributos, incluindoaws:RequestTag/tag-key, afeta apenas as operações que adicionam, editam ou excluem o atributo. Porém, a chave de condição kms:RequestAlias controla o acesso a operações de criptografia com base no alias usado para identificar a chave do KMS na solicitação. Por exemplo, você pode conceder uma permissão à entidade principal para usar uma chave do KMS em uma operação Encrypt, mas somente quando o valor do parâmetro KeyIdéalias/restricted-key-1. Para atender a essa condição, é necessário o seguinte:

    • A chave do KMS deve estar associada a esse alias.

    • A solicitação deve usar o alias para identificar a chave do KMS.

    • A entidade principal deve ter permissão para usar a chave do KMS sujeita à condição kms:RequestAlias.

    Isso é particularmente útil quando suas aplicações costumam usar nomes de alias ou ARNs de alias para fazer referência a chaves do KMS.

  • Forneça permissões muito limitadas.

    O alias deve ser exclusivo em uma região e Conta da AWS. Como resultado, o ato de conceder acesso para as entidades principais a uma chave do KMS baseada em um alias pode ser muito mais restritivo do que o conceder acesso para eles com base em uma etiqueta. Diferentemente de aliases, etiquetas podem ser atribuídas a várias chaves do KMS na mesma conta e região. Se você escolher, é possível usar um padrão de alias, comoalias/test*, a fim de conceder acesso para as entidades principais a um grupo de chaves do KMS na mesma conta e região. Porém, permitir ou negar o acesso a um alias específico possibilita um controle muito rigoroso sobre as chaves do KMS.