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 Resource
de 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
-
Para obter detalhes sobre o suporte do AWS KMSpara o ABAC, incluindo exemplos, consulte Use aliases para controlar o acesso às chaves KMSe Usar tags para controlar o acesso a chaves do KMS.
-
Para informações mais gerais sobre como usar etiquetas para controlar o acesso a recursos da AWS, consulte O que é o ABAC para a AWS? eControlar o acesso a recursos do AWS usando etiquetas de recursos, no Manual do usuário do IAM.
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 Resources
para 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çãoEncrypt
, mas somente quando a solicitaçãoEncrypt
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 etiquetaRestricted
.
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âmetroKeyId
é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, como
alias/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.