Controlar o acesso ao repositório de chaves externo - 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á.

Controlar o acesso ao repositório de chaves externo

Todos os recursos de controle de AWS KMS acesso — políticas principais, políticas de IAM e concessões — que você usa com chaves KMS padrão funcionam da mesma forma para chaves KMS em um armazenamento de chaves externo. Você pode usar políticas do IAM para controlar o acesso às operações de API que criam e gerenciam armazenamentos de chaves externas. Você usa políticas do IAM e políticas de chaves para controlar o acesso ao AWS KMS keys em seu armazenamento de chaves externo. Você também pode usar políticas de controle de serviço para sua AWS organização e políticas de VPC endpoint para controlar o acesso às chaves KMS em seu armazenamento de chaves externo.

Recomendamos que você forneça aos usuários e perfis apenas as permissões necessárias para as tarefas que possivelmente executarão.

Autorizar gerenciadores de armazenamento de chaves externas

As entidades principais que criam e gerenciam um armazenamento de chaves externas precisam de permissões para as operações de armazenamento de chaves personalizado. A lista a seguir descreve as permissões mínimas necessárias para os gerenciadores de armazenamento de chaves externas. Como um armazenamento de chaves personalizado não é um AWS recurso, você não pode fornecer permissão a um armazenamento de chaves externo para responsáveis em outros Contas da AWS.

  • kms:CreateCustomKeyStore

  • kms:DescribeCustomKeyStores

  • kms:ConnectCustomKeyStore

  • kms:DisconnectCustomKeyStore

  • kms:UpdateCustomKeyStore

  • kms:DeleteCustomKeyStore

Para criar um armazenamento de chaves externo com a conectividade do serviço de endpoint Amazon VPC e o serviço de endpoint VPC pertencer a outro Conta da AWS, você também precisará da seguinte permissão:

  • ec2:DescribeVPCEndpointServices

As entidades principais que criam um armazenamento de chaves externas precisam de permissão para criar e configurar os componentes do armazenamento de chaves externas. Elas podem criar armazenamentos de chaves externas somente em suas próprias contas. Para criar um armazenamento de chaves externas com conectividade de serviço de endpoint da VPC, as entidades principais devem ter permissão para criar os seguintes componentes:

  • Uma Amazon VPC

  • Sub-redes públicas e privadas

  • Um balanceador de carga de rede e grupo de destino

  • Um serviço de endpoint da Amazon VPC

Para obter detalhes, consulte Identity and Access Management para a Amazon VPC, Gerenciamento de identidade e acesso para endpoints da VPC e serviços de endpoint da VPC e Elastic Load Balancing API permissions (Permissões de API do Elastic Load Balancing).

Autorizar usuários de chaves do KMS em armazenamentos de chaves externas

Os diretores que criam e gerenciam AWS KMS keys em seu armazenamento de chaves externo exigem as mesmas permissões que aqueles que criam e gerenciam qualquer chave KMS em. AWS KMS A política de chaves padrão para a chave do KMS em um armazenamento de chaves externas é idêntica à política de chaves padrão para chaves do KMS no AWS KMS. O controle de acesso por atributo (ABAC), que usa etiquetas e aliases para controlar o acesso a chaves do KMS, também é eficaz em chaves do KMS em armazenamentos de chaves externas.

As entidades principais que usam as chaves do KMS no seu armazenamento de chaves personalizado para operações de criptografia precisam de permissão para executar a operação criptográfica com a chaves do KMS, como kms:Decrypt. Você pode fornecer essas permissões em uma política do IAM ou em uma política de chaves. No entanto, elas não precisam de permissões adicionais para usar uma chave do KMS em um armazenamento de chaves personalizado.

Para definir uma permissão que se aplique somente às chaves do KMS em um armazenamento de chaves externas, use a condição de política kms:KeyOrigin com um valor de EXTERNAL_KEY_STORE. Você pode usar essa condição para limitar a CreateKey permissão kms: ou qualquer permissão específica de um recurso de chave KMS. Por exemplo, a política do IAM a seguir permite que a identidade à qual está anexada chame as operações especificadas em todas as chaves do KMS da conta, desde que as chaves do KMS estejam em um armazenamento de chaves externas. Observe que você pode limitar a permissão às chaves KMS em um armazenamento de chaves externo e às chaves KMS em um Conta da AWS, mas não a qualquer armazenamento de chaves externo específico na conta.

{ "Sid": "AllowKeysInExternalKeyStores", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/*", "Condition": { "StringEquals": { "kms:KeyOrigin": "EXTERNAL_KEY_STORE" } } }

Autorizando AWS KMS a comunicação com seu proxy externo de armazenamento de chaves

AWS KMS se comunica com seu gerenciador de chaves externo somente por meio do proxy externo de armazenamento de chaves que você fornece. AWS KMS autentica seu proxy assinando suas solicitações usando o processo Signature Version 4 (SigV4) com a credencial de autenticação de proxy do armazenamento de chaves externo que você especificar. Se você estiver usando conectividade de endpoint público para seu proxy externo de armazenamento de chaves, AWS KMS não precisará de nenhuma permissão adicional.

No entanto, se você estiver usando a conectividade do serviço de endpoint VPC, deverá dar AWS KMS permissão para criar um endpoint de interface para seu serviço de endpoint Amazon VPC. Essa permissão é necessária independentemente de o proxy externo do armazenamento de chaves estar na sua VPC ou se o proxy externo do armazenamento de chaves está localizado em outro lugar, mas usa o serviço de endpoint da VPC para se comunicar. AWS KMS

Para permitir AWS KMS a criação de um endpoint de interface, use o console Amazon VPC ou ModifyVpcEndpointServicePermissionsa operação. Conceda permissões para a seguinte entidade principal: cks.kms.<region>.amazonaws.com.

Se o seu serviço de endpoint da Amazon VPC for de propriedade de Conta da AWS outra pessoa que não seja a Conta da AWS proprietária do armazenamento externo de chaves (XKS), você também precisará permitir que o XKS acesse o serviço de endpoint da VPC. Para fazer isso, liste o Conta da AWS ID XKS como principal para o serviço de endpoint da Amazon VPC.

Same Conta da AWS

Quando seu serviço de VPC endpoint pertence ao mesmo Conta da AWS que seu armazenamento de chaves externo, você deve adicioná-lo AWS KMS à lista Permitir diretores do seu serviço de VPC endpoint.

O exemplo a seguir usa o modify-vpc-endpoint-service-permissions AWS CLI comando AWS KMS para permitir a conexão com o serviço de endpoint de VPC especificado na região Oeste dos EUA (Oregon) (us-west-2). Antes de usar esse comando, substitua o ID do serviço Amazon VPC por valores válidos para sua configuração. Região da AWS

modify-vpc-endpoint-service-permissions --service-id vpce-svc-12abc34567def0987 --add-allowed-principals '["cks.kms.us-west-2.amazonaws.com"]'

Para remover essa permissão, use o console da Amazon VPC ou o ModifyVpcEndpointServicePermissionscom o RemoveAllowedPrincipals parâmetro.

Cross Conta da AWS

Quando seu serviço de VPC endpoint pertence um ao outro Conta da AWS, você deve adicionar ambos AWS KMS e seu armazenamento de chaves externo à lista Permitir principais do seu serviço de VPC endpoint.

O exemplo a seguir usa o modify-vpc-endpoint-service-permissions AWS CLI comando para permitir que ambos AWS KMS e seu armazenamento de chaves externo (XKS) se conectem ao serviço de VPC endpoint especificado na região Oeste dos EUA (Oregon) (us-west-2). Antes de usar esse comando, substitua o ID do serviço Amazon VPC, a Região da AWS e o ARN da entidade principal do IAM por valores válidos para sua configuração. O diretor do IAM deve ser substituído por um principal do proprietário Conta da AWS do XKS.

Neste exemplo, arn:aws:iam::123456789012:role/cks_role é a entidade principal do IAM na conta do proprietário do XKS, que será usada para criar, atualizar ou conectar o XKS ao serviço de endpoint da VPC. Se você quiser permitir que todas as entidades principais na conta de proprietário do XKS acessem seu serviço de endpoint da VPC, você poderá especificar arn:aws:iam::123456789012:root.

modify-vpc-endpoint-service-permissions --service-id vpce-svc-12abc34567def0987 --add-allowed-principals '["cks.kms.us-west-2.amazonaws.com", "arn:aws:iam::123456789012:role/cks_role"]'

Para remover essa permissão, use o console da Amazon VPC ou o ModifyVpcEndpointServicePermissionscom o RemoveAllowedPrincipals parâmetro.

Autorização de proxy de armazenamento de chaves externas (opcional)

Alguns proxies de armazenamento de chaves externas implementam requisitos de autorização para o uso de suas chaves externas. O proxy de armazenamento de chaves externas é permitido, mas não obrigatório, para criar e implementar um esquema de autorização que permita que usuários específicos solicitem operações específicas somente sob certas condições. Por exemplo, o proxy pode ser configurado para dar ao usuário A permissão para criptografar com uma chave externa específica, mas não para descriptografar com ela.

A autorização de proxy é independente da autenticação de proxy baseada em SIGV4 que é AWS KMS necessária para todos os proxies de armazenamento de chaves externo. Também é independente das políticas de chave, políticas do IAM e concessões que autorizam o acesso a operações que afetam o armazenamento de chaves externas ou suas chaves do KMS.

Para habilitar a autorização pelo proxy externo do armazenamento de chaves, AWS KMS inclua metadados em cada solicitação da API do proxy, incluindo o chamador, a chave KMS, a AWS KMS operação, a AWS service (Serviço da AWS) (se houver). Veja a seguir os metadados da solicitação para a versão 1 (v1) da API de proxy de chave externa.

"requestMetadata": { "awsPrincipalArn": string, "awsSourceVpc": string, // optional "awsSourceVpce": string, // optional "kmsKeyArn": string, "kmsOperation": string, "kmsRequestId": string, "kmsViaService": string // optional }

Por exemplo, você pode configurar seu proxy para permitir solicitações de um determinado principal (awsPrincipalArn), mas somente quando a solicitação for feita em nome do principal por um determinado AWS service (Serviço da AWS) (kmsViaService).

Se a autorização do proxy falhar, a AWS KMS operação relacionada falhará com uma mensagem que explica o erro. Para obter mais detalhes, consulte Problemas de autorização de proxy.

Autenticação mTLS (obsoleta)

As versões anteriores deste guia mencionaram o Mutual Transport Layer Security (mTLS) como um mecanismo de autenticação secundário opcional para autenticar solicitações. AWS KMS Com o mTLS, ambas as partes (AWS KMS como cliente e o proxy XKS como servidor) que se comunicam por meio de um canal TLS usam certificados para se autenticarem.

No entanto, as alterações na Política do Programa Raiz do Chrome (Seção 4.2.2) proíbem que o root publicamente confiável CAs incluído no Chrome Root Store emita certificados com a extensão ClientAuth Extended Key Usage (EKU) após 15 de junho de 2026. Como resultado, não é mais AWS KMS possível obter um certificado de cliente adequado para mTLS da Amazon Trust Services. Qualquer proxy XKS usado para criar um novo armazenamento externo de chaves AWS KMS após 16 de março de 2026 não deve exigir mTLS. Depois de 15 de junho de 2026, qualquer proxy XKS configurado para exigir mTLS não conseguirá se comunicar com ele. AWS KMS Os clientes devem confiar na autenticação SigV4 para verificar se as solicitações são originárias de. AWS KMS Para obter mais informações, consulte Credencial de autenticação de proxy do armazenamento de chaves externo.