Armazenamentos de chaves externas - 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á.

Armazenamentos de chaves externas

Os armazenamentos de chaves externas permitem proteger seus recursos da AWS usando chaves de criptografia fora da AWS. Esse recurso avançado foi criado para workloads regulamentadas que você precisa proteger com chaves de criptografia armazenadas em um sistema de gerenciamento de chaves externas que você controla. Os repositórios de chaves externos são compatíveis com o compromisso de soberania digital da AWS de oferecer controle soberano sobre seus dados na AWS, inclusive com a capacidade de criptografar com material de chave que você possua e controle fora da AWS.

Um armazenamento de chaves externas é um armazenamento de chaves personalizado com base em um gerenciador de chaves externas que você possui e controla fora da AWS. Seu gerenciador de chaves externas pode ser um módulo de segurança de hardware (HSMs) físico ou virtual ou qualquer sistema baseado em hardware ou software capaz de gerar e usar chaves de criptografia. As operações de criptografia e descriptografia que usam uma chave do KMS em um armazenamento de chaves externas são realizadas pelo gerenciador de chaves externas usando seu material de chave de criptografia, um recurso conhecido como hold your own keys (HYOKs).

O AWS KMS nunca interage diretamente com seu gerenciador de chaves externas e não pode criar, visualizar, gerenciar ou excluir suas chaves. Em vez disso, o AWS KMS interage somente com o software proxy de armazenamento de chaves externas (proxy XKS) que você fornece. Seu proxy de armazenamento de chaves externas é o intermediário de toda a comunicação entre o AWS KMS e seu gerenciador de chaves externas. Ele transmite todas as solicitações do AWS KMS para seu gerenciador de chaves externas e transmite as respostas do gerenciador de chaves externas para o AWS KMS. O proxy de armazenamento de chaves externas também converte solicitações genéricas do AWS KMS em um formato específico do fornecedor que seu gerenciador de chaves externas possa entender, permitindo usar armazenamentos de chaves externas com gerenciadores de chaves de vários fornecedores.

Você pode usar chaves do KMS em um armazenamento de chaves externas para criptografia do lado do cliente, inclusive com o AWS Encryption SDK. Porém, os armazenamentos de chaves externas são um recurso importante para a criptografia do lado do servidor, por permitirem que você proteja seus recursos da AWS em diversos Serviços da AWS com suas chaves criptográficas externas à AWS. Os Serviços da AWS que oferecem suporte a chaves gerenciadas pelo cliente para criptografia simétrica também oferecem suporte a chaves do KMS em um armazenamento de chaves externas. Para obter detalhes sobre o suporte para serviços, consulte AWS Service Integration (Integração de produtos da ).

Os armazenamentos de chaves externas permitem usar o AWS KMS para workloads regulamentadas nas quais as chaves de criptografia precisam ser armazenadas e usadas fora da AWS. Mas eles são um grande desvio do modelo de responsabilidade compartilhada padrão e exigem o aumento dos encargos operacionais. O maior risco de disponibilidade e latência excederá, para a maioria dos clientes, os benefícios de segurança percebidos pelos armazenamentos de chaves externas.

Os armazenamentos de chaves externas permitem controlar a raiz de confiança. Os dados criptografados sob chaves do KMS em seu armazenamento de chaves externas só podem ser descriptografados usando o gerenciador de chaves externas que você controla. Se você revogar temporariamente o acesso ao gerenciador de chaves externas, por exemplo, desconectando o armazenamento de chaves externas ou desconectando o gerenciador de chaves externas do proxy do armazenamento de chaves externas, a AWS perderá todo o acesso às suas chaves de criptografia até você restaurá-las. Durante esse intervalo, o texto cifrado criptografado sob suas chaves do KMS não poderá ser descriptografado. Se você revogar permanentemente o acesso ao seu gerenciador de chaves externas, todo o texto cifrado criptografado sob uma chave do KMS em seu armazenamento de chaves externas vai se tornar irrecuperável. As únicas exceções são os serviços da AWS que armazenam brevemente em cache as chaves de dados protegidas por suas chaves do KMS. Essas chaves de dados continuarão funcionando até você desativar o recurso ou o cache expirar. Para obter detalhes, consulte Como as chaves do KMS inutilizáveis afetam as chaves de dados.

Os armazenamentos de chaves externas desbloqueiam os poucos casos de uso de workloads regulamentadas em que as chaves de criptografia devem permanecer exclusivamente sob seu controle e inacessíveis à AWS. Porém, esta é uma grande mudança na forma como você opera a infraestrutura baseada em nuvem e uma alteração significativa no modelo de responsabilidade compartilhada. Para a maioria das workloads, o aumento da carga operacional e os maiores riscos de disponibilidade e performance excederão os benefícios de segurança percebidos pelos armazenamentos de chaves externas.

Preciso de armazenamento de chaves externas?

Para a maioria dos usuários, o repositório de chaves padrão do AWS KMS, que é protegido por módulos de segurança de hardware com validação FIPS 140-2 Nível de segurança 3, atende aos requisitos de segurança, controle e regulamentação. Usuários do armazenamento de chaves externas incorrem em custos consideráveis, sobrecarga de manutenção e solução de problemas, além de riscos de latência, disponibilidade e confiabilidade.

Ao considerar um armazenamento de chaves externas, dedique algum tempo para entender as alternativas, como um armazenamento de chaves do AWS CloudHSM baseado em um cluster do AWS CloudHSM que você possui e gerencia e chaves do KMS com material de chave importado que você gera em seus próprios HSMs e pode excluir das chaves do KMS sob demanda. Especificamente, importar material de chave com um intervalo de expiração muito curto pode fornecer um nível similar de controle sem riscos à performance ou à disponibilidade.

Um armazenamento de chaves externas pode ser a solução certa para sua organização, caso cumpra os seguintes requisitos:

  • É necessário usar chaves de criptografia em seu gerenciador de chaves on-premises ou em um gerenciador de chaves fora da AWS que você controle.

  • É necessário demonstrar que suas chaves de criptografia são retidas somente sob seu controle fora da nuvem.

  • É necessário criptografar e descriptografar usando chaves de criptografia com autorização independente.

  • O material de chaves deve estar sujeito a um caminho de auditoria secundário e independente.

Se escolher um armazenamento de chaves externas, limite o uso a workloads que necessitam de proteção com chaves de criptografia fora da AWS.

Modelo de responsabilidade compartilhada

As chaves do KMS padrão usam material de chave que é gerado e usado em HSMs que o AWS KMS possui e gerencia. Você estabelece as políticas de controle de acesso em suas chaves do KMS e configura os Serviços da AWS que usam chaves do KMS para proteger seus recursos. O AWS KMS assume a responsabilidade pela segurança, disponibilidade, latência e durabilidade do material de chave em suas chaves do KMS.

As chaves do KMS em armazenamentos de chaves externas dependem do material e das operações do gerenciador de chaves externas. Assim, o equilíbrio de responsabilidades desloca-se em direção a você. Você é responsável pela segurança, confiabilidade, durabilidade e desempenho das chaves criptográficas em seu gerenciador externo de chaves. O AWS KMS é responsável por responder prontamente às solicitações e se comunicar com o proxy do seu repositório de chaves externo e por manter nossos padrões de segurança. Para garantir que o texto cifrado de cada repositório de chaves externo seja no mínimo tão forte quanto o texto cifrado padrão do AWS KMS, primeiro o AWS KMS criptografa todo o texto simples com material de chave do AWS KMS específico da sua chave do KMS. Em seguida, o serviço envia o resultado ao seu gerenciador de chaves externo para criptografia com sua chave externa, um procedimento conhecido como criptografia dupla. Como resultado, nem o AWS KMS nem o proprietário do material de chave externa podem descriptografar somente o texto cifrado com criptografia dupla.

Você é responsável por manter um gerenciador de chaves externas que atenda aos seus padrões regulatórios e de performance, por fornecer e manter um proxy de armazenamento de chaves externas que esteja em conformidade com a AWS KMS External Key Store Proxy API Specification (Especificação da API do proxy de armazenamento de chaves externas do ) e por garantir a disponibilidade e durabilidade do material de chave. Você também deve criar, configurar e manter um armazenamento de chaves externas. Quando há erros causados por componentes que você mantém, é necessário ser capaz de identificar e resolver os erros para que os serviços da AWS possam acessar seus recursos sem interrupções indevidas. O AWS KMS fornece orientação para solução de problemas para ajudar você a determinar a causa dos problemas e as resoluções mais prováveis.

Analise as métricas e dimensões do Amazon CloudWatch que o AWS KMS registra para armazenamentos de chaves externas. O AWS KMS recomenda fortemente criar alarmes do CloudWatch para monitorar seu armazenamento de chaves externas para poder detectar os primeiros sinais de problemas operacionais e de performance antes que eles ocorram.

O que está mudando?

Armazenamentos de chaves externas são compatíveis apenas com chaves do KMS de criptografia simétrica. Dentro do AWS KMS, você usa e gerencia as chaves do KMS em um armazenamento de chaves externas da mesma forma que gerencia outras chaves gerenciadas pelo cliente, inclusive a definição de políticas de controle de acesso e o monitoramento do uso das chaves. Utilize as mesmas APIs com os mesmos parâmetros para solicitar uma operação de criptografia com uma chave do KMS em um armazenamento de chaves externas que você usa para qualquer chave do KMS. O preço também é o mesmo das chaves do KMS padrão. Para obter mais detalhes, consulte Chaves do KMS em repositórios de chaves externos e Preços do AWS Key Management Service.

Porém, com os armazenamentos de chaves externas, os seguintes princípios mudam:

  • Você é responsável pela disponibilidade, durabilidade e latência das operações de chaves.

  • Você é responsável por todos os custos de desenvolvimento, compra, operação e licenciamento de seu sistema de gerenciamento de chaves externas.

  • Você pode implementar a autorização independente de todas as solicitações do AWS KMS para proxy de armazenamento de chaves externas.

  • Você pode monitorar, auditar e registrar todas as operações do proxy de armazenamento de chaves externas e todas as operações do gerenciador de chaves externas relacionadas às solicitações do AWS KMS.

Por onde começar?

Para criar e gerenciar um armazenamento de chaves externas, é necessário escolher sua opção de conectividade de proxy de armazenamento de chaves externas, organizar os pré-requisitos e criar e configurar o armazenamento de chaves externas.

Cotas

O AWS KMS permite até dez armazenamentos de chaves personalizado em cada região e Conta da AWS, incluindo armazenamentos de chaves do AWS CloudHSM e armazenamentos de chaves externas, independentemente do estado da conexão. Além disso, há cotas de solicitação do AWS KMS para o uso de chaves do KMS em um armazenamento de chaves externas.

Se você escolher a conectividade de proxy da VPC para seu proxy de armazenamento de chaves externas, também poderá haver cotas nos componentes obrigatórios, como VPCs, sub-redes e balanceadores de carga de rede. Para obter mais informações sobre essas cotas, use o console do Service Quotas.

Regiões

Para minimizar a latência da rede, crie seus componentes de armazenamento de chaves externas na Região da AWS mais próxima do gerenciador de chaves externas. Se possível, escolha uma região com um tempo de resposta (RTT) de 35 milissegundos ou menos.

Repositórios de chaves externos têm suporte em todas as Regiões da AWS com suporte do AWS KMS, exceto China (Pequim) e China (Ningxia).

Recursos sem suporte

O AWS KMS não oferece suporte aos seguintes recursos em armazenamentos de chaves personalizados.

Saiba mais:

Conceitos de armazenamento de chaves externas

Aprenda os termos e conceitos básicos usados em repositórios de chaves externos.

Armazenamento de chaves externas

Um armazenamento de chaves externas é um armazenamento de chaves personalizado do AWS KMS com base em um gerenciador de chaves externas fora da AWS que você possui e gerencia. Cada chave do KMS em um armazenamento de chaves externas está associada a uma chave externa de seu gerenciador de chaves externas. Quando você usa uma chave do KMS em um armazenamento de chaves externas para criptografia ou descriptografia, a operação é executada pelo gerenciador de chaves externas usando sua chave externa, um mecanismo conhecido como mantenha sua própria chave (HYOK). Esse recurso foi desenvolvido para organizações que precisam manter chaves de criptografia em seu próprio gerenciador de chaves externas.

Os armazenamentos de chaves externas garantem que as chaves e as operações de criptografia que protegem seus recursos da AWS permaneçam sob seu controle no gerenciador de chaves externas. O AWS KMS envia solicitações ao gerenciador de chaves externas para criptografar e descriptografar dados, mas o AWS KMS não pode criar, excluir ou gerenciar chaves externas. Todas as solicitações do AWS KMS para o gerenciador de chaves externas são mediadas por um componente de software de proxy de armazenamento de chaves externas que você fornece, possui e gerencia.

Os serviços da AWS que são compatíveis com chaves do AWS KMS gerenciadas pelo cliente podem usar as chaves do KMS no armazenamento de chaves externas para proteger seus dados. Como resultado, seus dados são, em última análise, protegidos por suas chaves usando suas operações de criptografia no gerenciador de chaves externas.

As chaves do KMS em um armazenamento de chaves externas têm modelos de confiança, acordos de responsabilidade compartilhada e expectativas de performance consideravelmente diferentes das chaves do KMS padrão. Com armazenamentos de chaves externas, você é responsável pela segurança e integridade do material de chave e pelas operações de criptografia. A disponibilidade e a latência das chaves do KMS em um armazenamento de chaves externas são afetadas pelo hardware, software, componentes de redes e pela distância entre o AWS KMS e o gerenciador de chaves externas. Também é provável que você incorra em custos adicionais com o gerenciador de chaves externas e com a infraestrutura de redes e de balanceamento de carga necessária para que o gerenciador de chaves externas se comunique com o AWS KMS

Você pode usar seu armazenamento de chaves externas como parte de sua estratégia geral de proteção de dados. Para cada recurso da AWS que você protege, decida quais exigem uma chave do KMS em um armazenamento de chaves externas e quais podem ser protegidos por uma chave do KMS padrão. Isso lhe dá a flexibilidade para escolher chaves do KMS para classificações de dados, aplicações ou projetos específicos.

Gerenciador de chaves externas

Um gerenciador de chaves externas é um componente fora da AWS que pode gerar chaves simétricas AES de 256 bits e realizar criptografia e descriptografia simétricas. O gerenciador de chaves externas para um armazenamento de chaves externas pode ser um módulo de segurança de hardware (HSM) físico, um HSM virtual ou um gerenciador de chaves de software com ou sem um componente HSM. Pode estar localizado em qualquer lugar fora da AWS, inclusive on-premises, em um data center local ou remoto ou em qualquer nuvem. O armazenamento de chaves externas pode basear-se em um único gerenciador de chaves externas ou em várias instâncias de gerenciador de chaves relacionadas que compartilham chaves de criptografia, como um cluster do HSM. Os armazenamentos de chaves externas são criados para oferecer suporte a uma variedade de gerenciadores externos de diferentes fornecedores. Para obter detalhes sobre como se conectar ao seu gerenciador de chaves externo, consulte Escolher uma opção de conectividade de proxy de um repositório de chaves externo.

Chave externa

Cada chave do KMS em um armazenamento de chaves externas está associada a uma chave de criptografia do gerenciador de chaves externas conhecida como chave externa. Ao criptografar ou descriptografar com uma chave do KMS no armazenamento de chaves externas, a operação de criptografia é executada pelo gerenciador de chaves externas usando suas chaves externas.

Atenção

A chave externa é essencial para a operação da chave do KMS. Se a chave externa for perdida ou excluída, o texto cifrado criptografado sob a chave do KMS associada vai se tornar irrecuperável.

Para armazenamentos de chaves externas, a chave externa deve ser uma chave AES de 256 bits que esteja habilitada e possa executar criptografia e descriptografia. Para obter requisitos detalhados de chaves externas, consulte Requisitos para uma chave do KMS em um armazenamento de chaves externas.

O AWS KMS não pode criar, excluir ou gerenciar chaves externas. O material de chave de criptografia nunca sai do gerenciador de chaves externas. Ao criar uma chave do KMS em um armazenamento de chaves externas, você fornece o ID de uma chave externa (XksKeyId). Você não pode alterar o ID da chave externa associada a uma chave do KMS, embora seu gerenciador de chaves externas possa alternar o material de chave associado ao ID da chave externa.

Além da chave externa, uma chave do KMS em um armazenamento de chaves externas também tem material de chave do AWS KMS. Os dados protegidos pela chave do KMS são criptografados primeiro pelo AWS KMS usando o material de chave do AWS KMS e depois pelo gerenciador de chaves externas usando a chave externa. Esse processo de criptografia dupla garante que o texto cifrado protegido pela chave do KMS seja sempre pelo menos tão forte quanto o texto cifrado protegido somente pelo AWS KMS.

Muitas chaves de criptografia têm diferentes tipos de identificadores. Ao criar uma chave do KMS em um armazenamento de chaves externas, forneça o ID da chave externa que o proxy de armazenamento de chaves externas usa para se referir à chave externa. Se você usar o identificador errado, haverá falha na tentativa de criar uma chave do KMS em seu armazenamento de chaves externas.

Proxy de armazenamento de chaves externas

O proxy de armazenamento de chaves externas (“proxy XKS”) é uma aplicação de software pertencente e gerenciada pelo cliente que serve de intermediária para toda a comunicação entre o AWS KMS e seu gerenciador de chaves externas. Ele também converte solicitações genéricas do AWS KMS para um formato que o gerenciador de chaves externas específico do fornecedor entenda. É necessário um proxy de armazenamento de chaves externas para um armazenamento de chaves externas. Cada armazenamento de chaves externas é associado a um proxy de armazenamento de chaves externas.

Proxy de armazenamento de chaves externas

O AWS KMS não pode criar, excluir ou gerenciar chaves externas. O material de chave de criptografia nunca sai do gerenciador de chaves externas. Toda a comunicação entre o AWS KMS e o gerenciador de chaves externas é mediada por seu proxy de armazenamento de chaves externas. O AWS KMS envia solicitações para o proxy de armazenamento de chaves externas e recebe respostas do proxy de armazenamento de chaves externas. O proxy de armazenamento de chaves externas é responsável por transmitir solicitações do AWS KMS para seu gerenciador de chaves externas e retornar respostas do gerenciador de chaves externas para o AWS KMS

Você possui e gerencia o proxy de armazenamento de chaves externas para seu armazenamento de chaves externas e é responsável por sua manutenção e operação. Você pode desenvolver seu proxy de armazenamento de chaves externas com base na especificação da API de proxy de armazenamento de chaves externas de código aberto que o AWS KMS publica ou comprar uma aplicação de proxy de um fornecedor. Seu proxy de armazenamento de chaves externas pode estar incluído em seu gerenciador de chaves externas. Para oferecer suporte ao desenvolvimento de proxy, o AWS KMS também fornece um exemplo de proxy de armazenamento de chaves externas (aws-kms-xks-proxy) e um cliente de teste (xks-kms-xksproxy-test-client) que verifica se o proxy de armazenamento de chaves externas está em conformidade com a especificação.

Para se autenticar no AWS KMS, o proxy usa certificados TLS do lado do servidor. Para se autenticar em seu proxy, o AWS KMS assina todas as solicitações para seu proxy de armazenamento de chaves externas com uma credencial de autenticação de proxy SigV4. Opcionalmente, seu proxy pode ativar o TLS mútuo (mTLS) para garantir ainda mais que só aceitará solicitações do AWS KMS.

O proxy externo de armazenamento de chaves deve oferecer suporte a HTTP/1.1 ou posterior e TLS 1.2 ou posterior com pelo menos um dos seguintes conjuntos de criptografia:

  • TLS_AES_256_GCM_SHA384 (TLS 1.3)

  • TLS_CHACHA20_POLY1305_SHA256 (TLS 1.3)

    nota

    O AWS GovCloud (US) Region não é compatível com o TLS_CHACHA20_POLY1305_SHA256.

  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (TLS 1.2)

  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (TLS 1.2)

Para criar e usar as chaves do KMS em seu armazenamento de chaves externas, você deve primeiro conectar o armazenamento de chaves externas ao proxy de armazenamento de chaves externas. Você também pode desconectar o armazenamento de chaves externas do proxy sob demanda. Quando você faz isso, todas as chaves do KMS no armazenamento de chaves externas ficam indisponíveis e não podem ser usadas em nenhuma operação de criptografia.

Conectividade de proxy de armazenamento de chaves externas

A conectividade de proxy de armazenamento de chaves externas (“conectividade de proxy XKS”) descreve o método que o AWS KMS usa para se comunicar com o proxy de armazenamento de chaves externas.

Você especifica sua opção de conectividade de proxy ao criar o armazenamento de chaves externas, e ela se torna uma propriedade do armazenamento de chaves externas. Você pode alterar sua opção de conectividade de proxy atualizando a propriedade do armazenamento de chaves personalizado, mas você deve ter certeza de que o proxy de armazenamento de chaves externas ainda pode acessar as mesmas chaves externas.

O AWS KMS é compatível com as seguintes opções de conectividade:

  • Conectividade de endpoint público: o AWS KMS envia solicitações para seu proxy de armazenamento de chaves externas pela Internet para um endpoint público que você controla. Essa opção é simples de criar e manter, mas talvez não atenda aos requisitos de segurança de todas as instalações.

  • Conectividade do serviço de endpoint da VPC: o AWS KMS envia solicitações para um serviço de endpoint da Amazon Virtual Private Cloud (Amazon VPC) que você cria e mantém. Você pode hospedar seu proxy de armazenamento de chaves externas dentro da Amazon VPC ou hospedar o proxy de armazenamento de chaves externas fora da AWS e usar a Amazon VPC somente para comunicação.

Para obter detalhes sobre as opções de conectividade de proxy de armazenamento de chaves externas, consulte Escolher uma opção de conectividade de proxy de um repositório de chaves externo.

Credencial de autenticação de proxy de armazenamento de chaves externas

Para se autenticar no proxy de armazenamento de chaves externas, o AWS KMS assina todas as solicitações para seu proxy de armazenamento de chaves externas com uma credencial de autenticação Signature V4 (SigV4). Você estabelece e mantém a credencial de autenticação em seu proxy e fornece essa credencial ao AWS KMS ao criar o armazenamento externo.

nota

A credencial SigV4 que o AWS KMS usa para assinar solicitações ao proxy XKS não está relacionada a nenhuma credencial SigV4 associada às entidades principais do AWS Identity and Access Management de suas Contas da AWS. Não reutilize nenhuma credencial SigV4 do IAM para seu proxy de armazenamento de chaves externas.

Toda credencial de autenticação do proxy tem duas partes. É necessário fornecer as duas partes ao criar um armazenamento de chaves externas ou atualizar a credencial de autenticação do armazenamento de chaves externas.

  • ID da chave de acesso: identifica a chave de acesso secreta. Você pode fornecer esse ID em texto não criptografado.

  • Chave de acesso secreta: a parte secreta da credencial. O AWS KMS criptografa a chave de acesso secreta na credencial antes de armazená-la.

Você pode editar a configuração da credencial a qualquer momento, como ao inserir valores incorretos, ao alterar a credencial no proxy ou quando seu proxy alterna a credencial. Para obter detalhes técnicos sobre a autenticação do AWS KMS no proxy de armazenamento de chaves externas, consulte Authentication (Autenticação) em AWS KMS External Key Store Proxy API Specification (Especificação da API de proxy de armazenamento de chaves externas do ).

Para permitir a alternância da credencial sem interromper os Serviços da AWS que usam chaves do KMS em seu armazenamento de chaves externas, recomendamos que o proxy de armazenamento de chaves externas ofereça suporte a pelo menos duas credenciais de autenticação válidas para o AWS KMS. Isso garante que sua credencial anterior continue funcionando enquanto você fornece sua nova credencial para o AWS KMS.

Para ajudar a monitorar a idade da credencial de autenticação de proxy, o AWS KMS define uma métrica do Amazon CloudWatch, XksProxyCredentialAge. Use essa métrica para criar um alarme do CloudWatch que envie uma notificação quando a idade de sua credencial atingir um limite estabelecido.

Para fornecer uma garantia adicional de que seu proxy de armazenamento de chaves externas responde somente ao AWS KMS, alguns proxies de chaves externas oferecem suporte à Transport Layer Security mútua (mTLS). Para obter detalhes, consulte Autenticação mTLS (opcional).

APIs de proxy

Para oferecer suporte a um armazenamento de chaves externas do AWS KMS, um proxy de armazenamento de chaves externas deve implementar as APIs de proxy necessárias, conforme descrito na AWS KMS External Key Store Proxy API Specification (Especificação da API de proxy do armazenamento de chaves externas do ). Essas solicitações da API de proxy são as únicas solicitações que o AWS KMS envia ao proxy. Embora você nunca envie essas solicitações diretamente, conhecê-las pode ajudar a corrigir problemas que possam surgir no armazenamento de chaves externas ou no proxy. Por exemplo, o AWS KMS inclui informações sobre as taxas de latência e sucesso dessas chamadas de API em suas métricas do Amazon CloudWatch para armazenamentos de chaves externas. Para obter detalhes, consulte Monitorar repositórios de chaves externos.

A tabela a seguir lista e descreve cada API de proxy. Também inclui as operações do AWS KMS que acionam uma chamada para a API de proxy e exceções de operações do AWS KMS relacionadas à API de proxy.

API de proxy Descrição Operações do AWS KMS relacionadas
Decrypt O AWS KMS envia o texto cifrado a ser descriptografado e o ID da chave externa a ser usada. O algoritmo de criptografia obrigatório é AES_GCM. Decrypt, ReEncrypt
Encrypt O AWS KMS envia dados a serem criptografados e o ID da chave externa a ser usada. O algoritmo de criptografia obrigatório é AES_GCM. Encrypt, GenerateDataKey, GenerateDataKeyWithoutPlaintext, ReEncrypt
GetHealthStatus O AWS KMS solicita informações sobre o status do proxy e do gerenciador de armazenamento de chaves externas.

Cada gerenciador de chaves externas pode ter um dos status a seguir.

  • Active: íntegro; pode atender ao tráfego

  • Degraded: não íntegro, mas pode atender ao tráfego

  • Unavailable: não íntegro; não pode atender ao tráfego

CreateCustomKeyStore (para conectividade de endpoint público), ConnectCustomKeyStore (para conectividade de serviços de endpoint da VPC)

Se todas as instâncias do gerenciador de chaves externas tiverem o status Unavailable, as tentativas de criar ou conectar o armazenamento de chaves falharão com XksProxyUriUnreachableException.

GetKeyMetadata O AWS KMS solicita informações sobre a chave externa associada a uma chave do KMS em seu armazenamento de chaves externas.

A resposta inclui a especificação da chave (AES_256), o uso da chave ([ENCRYPT, DECRYPT]) e se a chave externa está ENABLED ou DISABLED.

CreateKey

Se a especificação da chave não for AES_256, se o uso da chave não for [ENCRYPT, DECRYPT] ou se o status for DISABLED, a operação CreateKey falhará com XksKeyInvalidConfigurationException.

Criptografia dupla

Os dados criptografados por uma chave do KMS em um armazenamento de chaves externas são criptografados duas vezes. Primeiro, o AWS KMS criptografa os dados com material de chave do AWS KMS específico para a chave do KMS. Em seguida, o texto cifrado criptografado pelo AWS KMS é criptografado pelo gerenciador de chaves externas usando sua chave externa. O processo é conhecido como criptografia dupla.

A criptografia dupla garante que os dados criptografados por uma chave do KMS em um armazenamento de chaves externas sejam pelo menos tão fortes quanto o texto cifrado criptografado por uma chave do KMS padrão. Ele também protege seu texto não criptografado em trânsito do AWS KMS para seu proxy de armazenamento de chaves externas. Com a criptografia dupla, você mantém o controle total de seus textos cifrados. Se você revogar permanentemente o acesso da AWS à sua chave externa por meio do proxy externo, todo texto cifrado da AWS restante será efetivamente destruído por criptografia.

Criptografia dupla de dados protegidos por uma chave do KMS em um armazenamento de chaves externas

Para habilitar a criptografia dupla, cada chave do KMS em um armazenamento de chaves externas tem duas chaves de reserva de criptografia:

  • Um material de chave do AWS KMS exclusivo da chave do KMS. Esse material de chave é gerado e usado somente em módulos de segurança de hardware (HSMs) do AWS KMS com certificação FIPS 140-2 Nível de segurança 3.

  • Uma chave externa em seu gerenciador de chaves externas.

A criptografia dupla tem os seguintes efeitos:

  • O AWS KMS não consegue descriptografar nenhum texto cifrado criptografado por uma chave do KMS em um armazenamento de chaves externas sem acesso às suas chaves externas por meio do proxy de armazenamento de chaves externas.

  • Você não pode descriptografar nenhum texto cifrado criptografado por uma chave do KMS em um armazenamento de chaves externas fora da AWS, mesmo que você tenha o material de chave externa.

  • Você não pode recriar uma chave do KMS que foi excluída de um armazenamento de chaves externas, mesmo que você tenha o material de chave externa. Cada chave do KMS tem metadados exclusivos que ela inclui no texto cifrado simétrico. Uma nova chave do KMS não seria capaz de descriptografar o texto cifrado criptografado pela chave original, ainda que usasse o mesmo material de chave externa.

Para obter um exemplo de criptografia dupla na prática, consulte Como funcionam os armazenamentos de chaves externas.

Como funcionam os armazenamentos de chaves externas

O armazenamento de chaves externas, o proxy de armazenamento de chaves externas e o gerenciador de chaves externas trabalham juntos para proteger seus recursos da AWS. O procedimento a seguir descreve o fluxo de trabalho de criptografia de um AWS service (Serviço da AWS) comum que criptografa cada objeto em uma chave de dados exclusiva protegida por uma chave do KMS. Nesse caso, você escolheu uma chave do KMS em um armazenamento de chaves externas para proteger o objeto. O exemplo mostra como o AWS KMS usa criptografia dupla para proteger a chave de dados em trânsito e garantir que o texto cifrado gerado por uma chave do KMS em um armazenamento de chaves externas seja sempre pelo menos tão forte quanto o texto cifrado criptografado por uma chave do KMS simétrica padrão com material de chave no AWS KMS.

Os métodos de criptografia usados por cada AWS service (Serviço da AWS) real que se integra ao AWS KMS variam. Para obter detalhes, consulte o tópico “Proteção dos dados” no capítulo Segurança da documentação do AWS service (Serviço da AWS).

Como funcionam os armazenamentos de chaves externas
  1. Você adiciona um novo objeto ao recurso do AWS service (Serviço da AWS). Para criptografar o objeto, o AWS service (Serviço da AWS) envia uma solicitação GenerateDataKey ao AWS KMS usando uma chave do KMS em seu armazenamento de chaves externas.

  2. O AWS KMS gera uma chave de dados simétrica de 256 bits e se prepara para enviar uma cópia da chave de dados de texto não criptografado para seu gerenciador de chaves externas por meio do proxy de armazenamento de chaves externas. O AWS KMS inicia o processo de criptografia dupla criptografando a chave de dados em texto não criptografado com o material da chave do AWS KMS associado à chave do KMS no armazenamento de chaves externas.

  3. O AWS KMS envia uma solicitação de criptografia ao proxy de armazenamento de chaves externas associado ao armazenamento de chaves externas. A solicitação inclui o texto cifrado da chave de dados a ser criptografado e o ID da chave externa associada à chave do KMS. O AWS KMS assina a solicitação usando a credencial de autenticação de proxy para o proxy de armazenamento de chaves externas.

    A cópia em texto simples da chave de dados não é enviada para o proxy de armazenamento de chaves externas.

  4. O proxy de armazenamento de chaves externas autentica a solicitação e passa a solicitação de criptografia para o gerenciador de chaves externas.

    Alguns proxies de armazenamento de chaves externas também implementam uma política de autorização opcional que permite que somente entidades principais selecionadas realizem operações sob condições específicas.

  5. O gerenciador de chaves externas criptografa o texto cifrado da chave de dados usando a chave externa especificada. O gerenciador de chaves externas retorna a chave de dados com criptografia dupla para o proxy de armazenamento de chaves externas, que a retorna para o AWS KMS.

  6. O AWS KMS retorna a chave de dados de texto não criptografado e a cópia com criptografia dupla da chave de dados para o AWS service (Serviço da AWS).

  7. O AWS service (Serviço da AWS) usa a chave de dados de texto não criptografado para criptografar o objeto do recurso, destrói a chave de dados de texto não criptografado e armazena a chave de dados criptografada com o objeto criptografado.

    Alguns Serviços da AWS podem armazenar em cache a chave de dados de texto não criptografado para usar em vários objetos ou para reutilizar enquanto o recurso estiver em uso. Para obter detalhes, consulte Como as chaves do KMS inutilizáveis afetam as chaves de dados.

Para descriptografar o objeto criptografado, o AWS service (Serviço da AWS) precisa enviar a chave de dados criptografada de volta para o AWS KMS em uma solicitação de descriptografia. Para descriptografar a chave de dados criptografada, o AWS KMS precisa enviar a chave de dados criptografada de volta ao proxy de armazenamento de chaves externas com o ID da chave externa. Se a solicitação de descriptografia para o proxy de armazenamento de chaves externas falhar por algum motivo, o AWS KMS não poderá descriptografar a chave de dados criptografada, e o AWS service (Serviço da AWS) não poderá descriptografar o objeto criptografado.