Política de chaves padrão - 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á.

Política de chaves padrão

Ao criar uma chave do KMS, é possível especificar a política de chaves da nova chave do KMS. Se você não fornecer um, AWS KMS cria um para você. A política de chaves padrão AWS KMS usada difere dependendo se você cria a chave no AWS KMS console ou usa a AWS KMS API.

Política de chaves padrão ao criar uma chave do KMS de forma programática

Quando você cria uma chave KMS programaticamente com a AWS KMS API (inclusive usando AWS os SDKs AWS Command Line Interfaceou AWS Tools for PowerShell) e não especifica uma política de chaves, AWS KMS aplica uma política de chaves padrão muito simples. Essa política de chaves padrão tem uma declaração de política que dá ao Conta da AWS proprietário da chave KMS permissão para usar políticas do IAM para permitir acesso a todas as AWS KMS operações na chave KMS. Para obter mais informações sobre essa declaração de política, consulte Permitir acesso à Conta da AWS e habilita políticas do IAM.

Política de chaves padrão quando você cria uma chave KMS com o AWS Management Console

Quando você cria uma chave KMS com o AWS Management Console, a política de chaves começa com a declaração de política que permite o acesso Conta da AWS e ativa as políticas do IAM. Em seguida, o console adiciona uma declaração de administradores de chaves, uma declaração de usuários-chave e (para a maioria dos tipos de chaves) uma declaração que permite que os diretores usem a chave KMS com outros serviços. AWS Você pode usar os recursos do AWS KMS console para especificar os usuários do IAM, os IAMRoles e Contas da AWS quem são os principais administradores e aqueles que são os principais usuários (ou ambos).

Permissões

Permitir acesso à Conta da AWS e habilita políticas do IAM

A declaração de política de chave padrão a seguir é fundamental.

  • Ele dá ao Conta da AWS proprietário da chave KMS acesso total à chave KMS.

    Diferentemente AWS de outras políticas de recursos, uma política de AWS KMS chaves não dá permissão automática à conta ou a nenhuma de suas identidades. Para dar permissão aos administradores de conta, a política de chaves deve incluir uma declaração explícita que forneça essa permissão, como esta.

  • Ele permite que a conta use políticas do IAM para permitir acesso à chave do KMS, além da política de chaves.

    Sem essa permissão, as políticas do IAM que permitem o acesso à chave são ineficazes, embora as políticas do IAM que negam acesso à chave ainda sejam efetivas.

  • Ela reduz o risco de a chave se tornar não gerenciável, dando permissão de controle de acesso aos administradores da conta, incluindo o usuário raiz da conta, que não pode ser excluído.

A declaração de política de chaves a seguir é toda a política de chaves padrão para chaves do KMS criadas programaticamente. É a primeira declaração de política na política de chaves padrão para chaves KMS criadas no AWS KMS console.

{ "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:*", "Resource": "*" }
Permite que políticas do IAM permitam o acesso à chave do KMS.

A declaração de política de chaves mostrada acima dá ao Conta da AWS proprietário da chave permissão para usar políticas do IAM, bem como políticas de chave, para permitir todas as ações (kms:*) na chave KMS.

A entidade principal nesta declaração de política de chave é a entidade principal da conta, que é representada por um ARN neste formato: arn:aws:iam::account-id:root. O principal da conta representa a AWS conta e seus administradores.

Quando a entidade principal em uma instrução de política de chave é a entidade principal da conta, a instrução de política não concede permissões para o uso da chave do KMS a nenhuma entidade principal do IAM. Em vez disso, ela permite que a conta use políticas do IAM para delegar as permissões especificadas na política de chaves. Essa declaração de política de chaves padrão permite que a conta use políticas do IAM para delegar permissão para todas as ações (kms:*) na chave do KMS.

reduz o risco de a chave do KMS perder a capacidade de gerenciamento.

Ao contrário AWS de outras políticas de recursos, uma política de AWS KMS chaves não dá permissão automática à conta ou a qualquer um de seus diretores. Para dar permissão a qualquer entidade principal, incluindo a entidade principal da conta, você deve usar uma declaração de política chave que forneça a permissão explicitamente. Você não precisa dar à entidade principal da conta, ou a qualquer entidade principal, acesso à chave do KMS. No entanto, dar acesso à entidade principal da conta ajuda você a evitar que a chave se torne não gerenciável.

Por exemplo, suponha que você crie uma política de chaves que dê acesso a apenas um usuário à chave do KMS. Se você excluir esse usuário, a chave se tornará não gerenciável e você deverá contatar o suporte da AWS para recuperar o acesso à chave do KMS.

A declaração de política de chaves mostrada acima dá permissão para controlar a chave do principal da conta, que representa o Conta da AWS e seus administradores, incluindo o usuário raiz da conta. O usuário raiz da conta é a única entidade principal que não pode ser excluída, a menos que você exclua a Conta da AWS. As práticas recomendadas do IAM desencorajam agir em nome do usuário raiz da conta, exceto em caso de emergência. No entanto, talvez seja necessário atuar como usuário raiz da conta se você excluir todos os outros usuários e funções com acesso à chave do KMS.

Permite que administradores de chaves administrem a chave do KMS

A política de chaves padrão criada pelo console permite que você escolha usuários e funções do IAM na conta e os torne administradores de chaves. Essa declaração é chamada de declaração de administradores de chaves. Os administradores de chaves têm permissões para gerenciar a chave do KMS, mas não têm permissões para usar essa chave em operações de criptografia. Você pode adicionar usuários e funções do IAM à lista de administradores de chaves ao criar a chave do KMS na visualização padrão ou na visualização de políticas.

Atenção

Como os administradores de chaves têm permissão para alterar a política de chaves e criar concessões, eles podem conceder a si mesmos e a outras pessoas AWS KMS permissões não especificadas nessa política.

As entidades principais que têm permissão para gerenciar etiquetas e aliases também podem controlar o acesso a uma chave do KMS. Para obter detalhes, consulte ABAC para AWS KMS.

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.

O exemplo a seguir mostra a declaração de administradores de chaves na visualização padrão do console do AWS KMS .

Administradores de chaves na política de chaves padrão do console, visualização padrão

A seguir é apresentado um exemplo que mostra a declaração de administradores de chaves na visualização padrão do console do AWS KMS . Essa instrução de administradores de chaves serve para uma chave do KMS de criptografia simétrica e região única.

{ "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", "kms:RotateKeyOnDemand" ], "Resource": "*" }

A instrução padrão de administradores de chaves para a chave mais comum do KMS, uma chave do KMS de criptografia simétrica de região única, possibilita as permissões a seguir. Para obter informações detalhadas sobre cada permissão, consulte a AWS KMS permissões.

Quando você usa o AWS KMS console para criar uma chave KMS, o console adiciona os usuários e as funções que você especifica ao Principal elemento na instrução dos administradores de chaves.

Muitas dessas permissões contêm o caractere curinga (*), que permite todas as permissões que começam com o verbo especificado. Como resultado, ao AWS KMS adicionar novas operações de API, os administradores de chaves podem usá-las automaticamente. Não é necessário atualizar suas políticas de chaves para incluir as novas operações. Se você preferir limitar seus administradores de chaves a um conjunto fixo de operações de API, poderá alterar sua política de chaves.

kms:Create*

Permite kms:CreateAlias e kms:CreateGrant. (A permissão kms:CreateKey é válida somente em uma política do IAM.)

kms:Describe*

Permite kms:DescribeKey. A permissão kms:DescribeKey é necessária para visualizar a página de detalhes de chaves de uma chave do KMS no AWS Management Console.

kms:Enable*

Permite kms:EnableKey. Para chaves do KMS de criptografia simétrica, ela também permite kms:EnableKeyRotation.

kms:List*

Permite kms:ListGrants, kms:ListKeyPolicies e kms:ListResourceTags. (As permissões kms:ListAliases e kms:ListKeys, que são necessárias para exibir chaves do KMS no AWS Management Console, são válidas somente em políticas do IAM.)

kms:Put*

Permite kms:PutKeyPolicy. Essa permissão permite que os administradores de chaves alterem a política de chaves dessa chave do KMS.

kms:Update*

Permite kms:UpdateAlias e kms:UpdateKeyDescription. Para chaves de várias regiões, ele permite kms:UpdatePrimaryRegion nesta chave do KMS.

kms:Revoke*

Permite kms:RevokeGrant, o que permite que os administradores de chaves excluam uma concessão mesmo que eles não sejam uma entidade principal prestes a se retirar na concessão.

kms:Disable*

Permite kms:DisableKey. Para chaves do KMS de criptografia simétrica, ela também permite kms:DisableKeyRotation.

kms:Get*

Permite kms:GetKeyPolicy e kms:GetKeyRotationStatus. Para chaves do KMS com material de chave importado, ela permite kms:GetParametersForImport. Para chaves do KMS assimétricas, ela permite kms:GetPublicKey. A permissão kms:GetKeyPolicy é necessária para visualizar a política da chave de uma chave do KMS no AWS Management Console.

kms:Delete*

Permite kms:DeleteAlias. Para chaves com material de chave importado, ela permite kms:DeleteImportedKeyMaterial. A permissão kms:Delete* não permite que os administradores de chaves excluam a chave do KMS (ScheduleKeyDeletion).

kms:TagResource

Permite kms:TagResource, que, por sua vez, permite que os administradores de chaves adicionem tags à chave do KMS. Como as tags também podem ser usadas para controlar o acesso à chave do KMS, essa permissão pode permitir que os administradores concedam ou neguem acesso à chave do KMS. Para obter detalhes, consulte ABAC para AWS KMS.

kms:UntagResource

Permite kms:UntagResource, que, por sua vez, permite que os administradores de chaves excluam tags da chave do KMS. Como as tags podem ser usadas para controlar o acesso à chave, essa permissão pode permitir que os administradores concedam ou neguem acesso à chave do KMS. Para obter detalhes, consulte ABAC para AWS KMS.

kms:ScheduleKeyDeletion

Permite kms:ScheduleKeyDeletion, que, por sua vez, permite que os administradores de chaves excluam esta chave do KMS. Para excluir essa permissão, desmarque a opção Allow key administrators to delete this key(Permitir que os administradores de chaves excluam essa chave).

kms:CancelKeyDeletion

Permite kms:CancelKeyDeletion, que, por sua vez, permite que os administradores de chaves cancelem a exclusão desta chave do KMS. Para excluir essa permissão, desmarque a opção Allow key administrators to delete this key(Permitir que os administradores de chaves excluam essa chave).

kms:RotateKeyOnDemand

Permite kms:RotateKeyOnDemand, que permite que os administradores de chaves realizem a rotação sob demanda do material de chaves nessa chave KMS.

 

AWS KMS adiciona as seguintes permissões à declaração padrão dos administradores de chaves quando você cria chaves para fins especiais.

kms:ImportKeyMaterial

A permissão kms:ImportKeyMaterial permite que os administradores de chaves importem material de chave para a chave do KMS. Essa permissão está incluída na política de chaves somente quando você cria uma chave do KMS sem material de chave.

kms:ReplicateKey

A kms:ReplicateKeypermissão permite que os administradores de chaves criem uma réplica de uma chave primária multirregional em uma região diferente. AWS Essa permissão é incluída na política de chaves somente quando você cria uma chave primária ou de réplica de várias regiões.

kms:UpdatePrimaryRegion

A permissão kms:UpdatePrimaryRegion permite que os administradores de chaves alterem uma chave de réplica de várias regiões para uma chave primária de várias regiões. Essa permissão é incluída na política de chaves somente quando você cria uma chave primária ou de réplica de várias regiões.

Permite que os usuários de chaves usem a chave do KMS

A política de chaves padrão que o console cria para chaves KMS permite que você escolha usuários do IAM e funções do IAM na conta, e externas Contas da AWS, e os torne usuários-chave.

O console adiciona duas instruções de política à política de chaves para usuários de chaves.

Você pode adicionar usuários do IAM, funções do IAM e outros Contas da AWS à lista de usuários principais ao criar a chave do KMS. Você também pode editar a lista com a visualização padrão do console para políticas de chaves, conforme mostrado na imagem a seguir. A visualização padrão para políticas de chaves está na página de detalhes de chaves. Para obter mais informações sobre como permitir que usuários de outras Contas da AWS pessoas usem a chave KMS, consultePermitir que usuários de outras contas usem uma chave do KMS.

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.

Usuários de chaves na política de chaves padrão do console, visualização padrão

As declarações de usuários de chaves padrão para uma chave simétrica de região única possibilita as permissões a seguir. Para obter informações detalhadas sobre cada permissão, consulte a AWS KMS permissões.

Quando você usa o AWS KMS console para criar uma chave KMS, o console adiciona os usuários e as funções que você especifica ao Principal elemento em cada declaração de usuários da chave.

{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::111122223333:role/ExampleRole", "arn:aws:iam::444455556666:root" ]}, "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/ExampleRole", "arn:aws:iam::444455556666:root" ]}, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}} }

Permite que usuários de chaves usem uma chave do KMS para operações de criptografia

Os usuários de chaves têm permissão para usar a chave do KMS diretamente em todas as operações de criptografia com suporte na chave do KMS. Eles também podem usar a DescribeKeyoperação para obter informações detalhadas sobre a chave KMS no AWS KMS console ou usando as operações da AWS KMS API.

Por padrão, o AWS KMS console adiciona declarações de usuários-chave, como as dos exemplos a seguir, à política de chaves padrão. Como elas são compatíveis com diferentes operações de API, as ações nas instruções de política para chaves do KMS de criptografia simétrica, chaves do KMS de Hash-based message authentication code (HMAC – Código de autenticação de mensagem por hash), chaves do KMS assimétricas para criptografia de chave pública e chaves do KMS assimétricas para assinatura e verificação são ligeiramente diferentes.

Chaves do KMS de criptografia simétrica

O console adiciona a seguinte instrução à política de chaves para chaves do KMS de criptografia simétrica.

{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole"}, "Action": [ "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:GenerateDataKey*", "kms:ReEncrypt*" ], "Resource": "*" }
Chaves do KMS de HMAC

O console adiciona a seguinte instrução à política de chaves para chaves do KMS de HMAC.

{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole"}, "Action": [ "kms:DescribeKey", "kms:GenerateMac", "kms:VerifyMac" ], "Resource": "*" }
Chaves do KMS assimétricas para criptografia de chave pública

O console adiciona a seguinte instrução à política de chaves para chaves do KMS assimétricas com um uso de chave de Encrypt and decrypt (Criptografar e descriptografar).

{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:DescribeKey", "kms:GetPublicKey" ], "Resource": "*" }
Chaves do KMS assimétricas para assinatura e verificação

O console adiciona a seguinte instrução à política de chaves para chaves do KMS assimétricas com um uso de chave de Sign and verify (Assinar e verificar).

{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole"}, "Action": [ "kms:DescribeKey", "kms:GetPublicKey", "kms:Sign", "kms:Verify" ], "Resource": "*" }
Chaves KMS assimétricas para derivar segredos compartilhados

O console adiciona a seguinte declaração à política de chaves KMS assimétricas com o uso de chaves do contrato Key.

{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole"}, "Action": [ "kms:DescribeKey", "kms:GetPublicKey", "kms:DeriveSharedSecret" ], "Resource": "*" }

As ações nessas declarações concedem aos usuários de chaves as permissões a seguir.

kms:Encrypt

Permite que os usuários de chaves criptografem dados com essa chave do KMS.

kms:Decrypt

Permite que os usuários de chaves descriptografem dados com essa chave do KMS.

kms:DeriveSharedSecret

Permite que os principais usuários obtenham segredos compartilhados com essa chave KMS.

kms:DescribeKey

Permite que os usuários de chaves obtenham informações detalhadas sobre essa chave do KMS, incluindo seus identificadores, data de criação e estado de chave. Também permite que os principais usuários exibam detalhes sobre a chave KMS no AWS KMS console.

kms:GenerateDataKey*

Permite que os usuários de chaves solicitem uma chave de dados simétrica ou um par de chaves de dados assimétricas para operações criptográficas no lado do cliente. O console usa o caractere curinga * para representar a permissão para as seguintes operações de API: GenerateDataKeyGenerateDataKeyWithoutPlaintext, GenerateDataKeyPair, e. GenerateDataKeyPairWithoutPlaintext Essas permissões são válidas somente nas chaves do KMS simétricas que criptografam as chaves de dados.

kms: GenerateMac

Permite que os usuários de chaves usem uma chave do KMS de HMAC para gerar uma etiqueta de HMAC.

kms: GetPublicKey

Permite que os usuários de chaves baixem a chave pública da chave do KMS assimétrica. As partes com quem você compartilha essa chave pública podem criptografar dados fora do AWS KMS. No entanto, esses textos cifrados só podem ser descriptografados chamando a operação Decrypt no AWS KMS.

kms: * ReEncrypt

Permite que os usuários de chaves criptografem novamente os dados que foram originalmente criptografados com essa chave do KMS ou permite que eles usem essa chave do KMS para criptografar novamente dados já criptografados. A ReEncryptoperação requer acesso às chaves KMS de origem e de destino. Para fazer isso, é possível conceder a permissão kms:ReEncryptFrom na chave do KMS de origem e a permissão kms:ReEncryptTo na chave do KMS de destino. No entanto, para simplificar, o console permite kms:ReEncrypt* (com o caractere curinga *) nas duas chaves do KMS.

kms:Sign

Permite que os usuários de chaves assinem mensagens com essa chave do KMS.

kms:Verify

Permite que os usuários de chaves verifiquem assinaturas com essa chave do KMS.

kms: VerifyMac

Permite que os usuários de chaves usem uma chave do KMS de HMAC para verificar uma etiqueta de HMAC.

Permite que os usuários de chaves usem a chave do KMS com serviços da AWS

A política de chaves padrão no console também dá aos principais usuários as permissões de que precisam para proteger seus dados em AWS serviços que usam concessões. AWS os serviços geralmente usam concessões para obter permissão específica e limitada para usar uma chave KMS.

Essa declaração de política de chaves permite que o usuário da chave crie, visualize e revogue concessões na chave KMS, mas somente quando a solicitação de operação de concessão vem de um AWS serviço integrado com o. AWS KMS A condição kms: GrantIsFor AWSResource policy não permite que o usuário chame essas operações de concessão diretamente. Quando o usuário da chave permite, um AWS serviço pode criar uma concessão em nome do usuário que permite que o serviço use a chave KMS para proteger os dados do usuário.

Os usuários de chaves precisam dessas permissões de concessão para usar a chave do KMS com os serviços integrados, mas essas permissões não são suficientes. Os usuários de chaves também precisam de permissão para usar os serviços integrados. Para obter detalhes sobre como dar aos usuários acesso a um AWS serviço que se integra ao AWS KMS, consulte a documentação do serviço integrado.

{ "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole"}, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}} }

Por exemplo, os usuários de chaves podem usar essas permissões na chave do KMS das maneiras indicadas a seguir.

  • Use essa chave do KMS com o Amazon Elastic Block Store (Amazon EBS) e com o Amazon Elastic Compute Cloud (Amazon EC2) para anexar um volume do EBS criptografado a uma instância do EC2. O usuário de chaves concede implicitamente permissão ao Amazon EC2 para usar a chave do KMS com o objetivo de associar o volume criptografado à instância. Para ter mais informações, consulte Como o Amazon Elastic Block Store (Amazon EBS) usa AWS KMS.

  • Use essa chave do KMS com o Amazon Redshift para executar um cluster criptografado. O usuário de chaves concede implicitamente permissão ao Amazon Redshift para usar a chave do KMS para executar o cluster criptografado e criar snapshots criptografados. Para ter mais informações, consulte Como o Amazon Redshift usa o AWS KMS.

  • Use essa chave do KMS com outros serviços da AWS integrados ao AWS KMS que usem concessões para criar, gerenciar ou usar recursos criptografados com esses serviços.

Apolítica de chaves padrão permite que os usuários de chaves deleguem suas permissões de concessão para todos os serviços integrados que usam concessões. No entanto, você pode criar uma política de chaves personalizada que restrinja a permissão a AWS serviços específicos. Para obter mais informações, consulte a kms: ViaService chave de condição.