Criação de uma política de chave
Você pode criar e gerenciar políticas de chaves no console do AWS KMS ou usando operações de API do AWS KMS, como CreateKey, ReplicateKey e PutKeyPolicy.
Ao criar uma chave do KMS no console do AWS KMS, o console conduz você pelas etapas de criação de uma política de chaves com base na política de chaves padrão do console. Ao usar as APIs CreateKey ou ReplicateKey, se você não especificar uma política de chaves, essas APIs aplicam a política de chaves padrão para chaves criadas programaticamente. Ao usar a API PutKeyPolicy, você precisa especificar uma política de chaves.
Cada documento de política pode ter uma ou mais declarações de política. O exemplo a seguir mostra um documento válido de política de chaves com uma instrução de política.
Tópicos
Formato de política de chaves
Um documento de política de chaves deve estar de acordo com as seguintes regras:
-
Até 32 kilobytes (32.768 bytes)
-
O elemento
Sidem uma instrução de política de chaves pode incluir espaços. (É proibido usar espaços no elementoSidde um documento de política do IAM.)
Um documento de política de chaves pode incluir apenas os seguintes caracteres:
-
Caracteres ASCII imprimíveis
-
Caracteres imprimíveis no conjunto de caracteres Basic Latin e Latin-1 Supplement
-
Os caracteres especiais de tabulação (
\u0009), alimentação de linha (\u000A) e retorno de carro (\u000D)
Elementos em uma política de chaves
Um documento de política de chaves deve ter os elementos a seguir:
- Versão
-
Especifica a versão do documento de política de chaves. Define a versão como
2012-10-17(a versão mais recente). - Declaração
-
Inclui as instruções da política. Um documento de política de chaves deve ter pelo menos uma instrução.
Cada instrução de política de chaves pode consistir em até seis elementos. Os elementos
Effect,Principal,ActioneResourcesão obrigatórios.- Sid
-
(Opcional) O identificador de instrução (
Sid) é uma string arbitrária que você pode usar para descrever a instrução. OSidem uma política de chaves pode incluir espaços. (Você não pode incluir espaços no elementoSidde uma política do IAM.) - Efeito
-
(Obrigatório) Determina se as permissões devem ser permitidas ou negadas na instrução de política. Os valores válidos são
AllowouDeny. Se você não permitir explicitamente o acesso a uma chave do KMS, esse acesso será implicitamente negado. Também é possível negar explicitamente o acesso a uma chave do KMS. Você poderia fazer isso para garantir que um usuário não possa acessá-la, mesmo quando uma política diferente permite o acesso. - Entidade principal
-
(Obrigatório) A entidade principal é a identidade que recebe a especificação de permissões na instrução de política. Você pode especificar Contas da AWS, usuários do IAM, funções do IAM e alguns serviços da AWS como entidades principais em uma política de chaves. Grupos de usuários do IAM não são uma entidade principal válida em nenhum tipo de política.
Um valor de asterisco, como
"AWS": "*"representa todas as identidades da AWS em todas as contas.Importante
Não defina a entidade principal como um asterisco (*) em qualquer instrução de política de chave que permita permissões, a menos que você utilize condições para limitar a política de chave. Um asterisco dá à cada identidade em cada permissão da Conta da AWS para usar a chave do KMS, a menos que outra instrução de política negue essa permissão explicitamente. Usuários em outras Contas da AWS podem usar a chave do KMS sempre que tiverem as permissões correspondentes em suas próprias contas.
nota
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 no Guia do usuário do IAM.
Quando a entidade em uma declaração de política de chaves é uma entidade principal da Conta da AWS no formato
arn:aws:iam::, a declaração da política não dá permissão a nenhuma entidade principal do IAM. Em vez disso, concede a permissão Conta da AWS para usar políticas do IAM para delegar as permissões especificadas na política de chaves. (Uma entidade principal no formato111122223333:root"arn:aws:iam::não representa o usuário raiz de conta da AWS, apesar do uso de “root” no identificador da conta. No entanto, a entidade principal da conta representa a conta e seus administradores, incluindo o usuário raiz da conta.)111122223333:root"Quando a entidade principal é outraConta da AWSou suas entidades principais, as permissões são efetivas somente quando a conta está habilitada na região com a chave do KMS e a política de chaves. Para obter informações sobre regiões não habilitadas por padrão (“regiões de adesão”), consulte Gerenciar Regiões da AWS em Referência geral da AWS.
Para permitir que uma Conta da AWS diferente ou suas entidades principais usem uma chave do KMS, você deve fornecer permissão em uma política de chaves e em uma política do IAM na outra conta. Para obter detalhes, consulte Permitir que usuários de outras contas usem uma chave do KMS.
- Ação
-
(Obrigatório) Especifica as operações de API que serão permitidas ou negadas. Por exemplo, a ação
kms:Encryptcorresponde à operação Encrypt do AWS KMS. Você pode listar mais de uma ação em uma declaração de política. Para obter mais informações, consulte Referência de permissões.nota
Se o elemento
Actionnecessário estiver ausente de uma declaração de política de chave, a declaração de política não terá efeito. Uma declaração de política de chaves sem um elementoActionnão é aplicável a nenhuma chave do KMS.Quando o elemento
Actionestiver ausente em uma declaração de política de chave, o console do AWS KMS relatará corretamente um erro, mas as APIs CreateKey e PutKeyPolicy serão bem-sucedidas, mesmo que a declaração de política seja ineficaz. - Recurso
-
(Obrigatório) Em uma política de chaves, o valor do elemento Recurso é
"*", o que significa “esta chave do KMS”. O asterisco ("*") identifica a chave do KMS à qual a política de chaves está associada.nota
Se o elemento
Resourcenecessário estiver ausente de uma declaração de política de chave, a declaração de política não terá efeito. Uma declaração de política de chaves sem um elementoResourcenão se aplica a nenhuma chave do KMS.Quando o elemento
Resourceestiver ausente em uma declaração de política de chave, o console do AWS KMS relatará corretamente um erro, mas as APIs CreateKey e PutKeyPolicy serão bem-sucedidas, mesmo que a declaração de política seja ineficaz. - Condição
-
(Opcional) As condições especificam os requisitos que devem ser atendidos para que a política de chaves entre em vigor. Com condições, a AWS pode avaliar o contexto de uma solicitação de API para determinar se a declaração de política se aplica ou não.
Para especificar condições, você usa chaves de condição predefinidas. O AWS KMS oferece suporte a chaves de condição globais da AWS e chaves de condição do AWS KMS. Para oferecer suporte ao controle de acesso baseado em atributos (ABAC), o AWS KMS fornece chaves de condição que controlam o acesso a uma chave do KMS com base em etiquetas e aliases. Para obter detalhes, consulte ABAC para AWS KMS.
O formato de uma condição é:
"Condition": {"condition operator": {"condition key": "condition value"}}como:
"Condition": {"StringEquals": {"kms:CallerAccount": "111122223333"}}
Para obter mais informações sobre a sintaxe de políticas do AWS, consulte Referência de políticas do AWS IAM, no Manual do usuário do IAM.
Política de chaves de exemplo
O exemplo a seguir mostra uma política de chaves completa para uma chave do KMS de criptografia simétrica. Você pode usá-lo para referência ao ler sobre os principais conceitos de política neste capítulo. Esta política de chaves combina as declarações da política de exemplo da seção anterior de política de chaves padrão em uma política de chaves única que faz o seguinte:
-
Permite a Conta da AWS de exemplo, 111122223333, acesso total à chave do KMS. Há permissão para que a conta e seus administradores, incluindo o usuário raiz da conta (para emergências), usem políticas do IAM na conta para conceder acesso à chave do KMS.
-
Permite que o perfil do IAM
ExampleAdminRoleadministre a chave do KMS. -
Permite que o perfil do IAM
ExampleUserRoleuse a chave do KMS.