Criação de uma política de chave - 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á.

Criação de uma política de chave

Você pode criar e gerenciar políticas de chaves no AWS KMS console usando operações de AWS KMS API, como CreateKey, ReplicateKey, e PutKeyPolicy, ou usando um AWS CloudFormationmodelo.

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.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Describe the policy statement", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/Alice" }, "Action": "kms:DescribeKey", "Resource": "*", "Condition": { "StringEquals": { "kms:KeySpec": "SYMMETRIC_DEFAULT" } } } ] }

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 Sid em uma instrução de política de chaves pode incluir espaços. (É proibido usar espaços no elemento Sid de 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:

Version (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).

Statement

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, Action e Resource são obrigatórios.

Sid

(Opcional) O identificador de instrução (Sid) é uma string arbitrária que você pode usar para descrever a instrução. O Sid em uma política de chaves pode incluir espaços. (Você não pode incluir espaços no elemento Sid de 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 Allow ou Deny. 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::111122223333:root", 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 formato arn:aws:iam::111122223333:root" 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.)

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:Encrypt corresponde à operação Encrypt do AWS KMS. Você pode listar mais de uma ação em uma declaração de política. Para ter mais informações, consulte Referência de permissões.

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 Resource necessá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 elemento Resource não se aplica a nenhuma chave do KMS.

Quando uma declaração de política chave não tem seu Resource elemento, o AWS KMS console relata corretamente um erro, mas as PutKeyPolicyAPIs CreateKeye sã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 ExampleAdminRole administre a chave do KMS.

  • Permite que o perfil do IAM ExampleUserRole use a chave do KMS.

{ "Id": "key-consolepolicy", "Version": "2012-10-17", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow access for Key Administrators", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleAdminRole" }, "Action": [ "kms:Create*", "kms:Describe*", "kms:Enable*", "kms:List*", "kms:Put*", "kms:Update*", "kms:Revoke*", "kms:Disable*", "kms:Get*", "kms:Delete*", "kms:TagResource", "kms:UntagResource", "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion" ], "Resource": "*" }, { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleUserRole" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleUserRole" }, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": "true" } } } ] }