Importar o material de chave no AWS Key Management Service (AWS KMS) - AWS Key Management Service

Importar o material de chave no AWS Key Management Service (AWS KMS)

É possível criar uma AWS KMS keys (chave do KMS) com material de chave que você fornece.

Uma chave do KMS é uma representação lógica de uma chave de criptografia. Ela contém material de chave usado para criptografar e descriptografar dados, além de seus identificadores de chave e outros metadados. Quando você cria uma chave do KMS, por padrão, o AWS KMS gera o material de chave para essa chave do KMS. No entanto, você pode criar uma chave do KMS sem material de chave e importar o seu próprio material de chaves para essa chave do KMS, um recurso normalmente conhecido como "traga sua própria chave" (BYOK).

nota

O AWS KMS não é compatível com a descriptografia de texto cifrado do AWS KMS fora do AWS KMS, mesmo que o texto cifrado tenha sido criptografado em uma chave do KMS com material de chave importado. O AWS KMS não publica o formato de texto cifrado exigido por essa tarefa, e o formato pode ser alterado sem aviso prévio.

O material de chave importado é compatível somente com chaves do KMS simétricas em armazenamentos de chaves do AWS KMS. Ele não é compatível com chaves do KMS assimétricas ou em chaves do KMS em armazenamentos de chaves personalizados.

Ao usar o material de chaves importadas, você continua responsável pelo material de chaves enquanto permite que o AWS KMS use uma cópia dele. Você pode optar por fazer isso por um ou mais dos seguintes motivos:

  • Para comprovar que você gerou o material de chaves usando uma origem de entropia que atende aos seus requisitos.

  • Para usar o material de chaves de sua própria infraestrutura com serviços da AWS, e usar o AWS KMS para gerenciar o ciclo de vida desse material de chaves na AWS.

  • Para definir um horário de validade do material de chaves na AWS e para excluí-lo manualmente, mas também para disponibilizá-lo novamente no futuro. Por outro lado, programar a exclusão de chaves exige um período de espera de 7 a 30 dias, após os quais você não pode recuperar a chave do KMS excluída.

  • Para possuir a cópia original do material de chave e mantê-lo fora da AWS para durabilidade adicional e recuperação de desastres durante o ciclo de vida completo do material de chave.

Para obter mais informações sobre diferenças importantes entre as chaves do KMS com material de chaves importado e aquelas com material de chaves gerado pelo AWS KMS, consulte Sobre o material de chave importada.

O material de chaves que você importa deve ser uma chave de criptografia simétrica de 256 bits.

Sobre o material de chave importada

Antes de decidir importar o material de chaves para o AWS KMS, você deve entender as seguintes características do material de chaves importadas.

Você gera o material de chave

Você é responsável por gerar 256 bits de material de chave usando uma origem de aleatoriedade que atende aos seus requisitos de segurança.

Não é possível alterar o material de chave

Quando você importa o material de chave para uma chave do KMS, esta é associada permanentemente a esse material de chave. Você pode reimportar o mesmo material de chaves, mas não pode importar outro material de chaves para essa chave do KMS. Além disso, não é possível habilitar a alternância automática de chaves de uma chave do KMS com material de chaves importado. No entanto, você pode alternar manualmente uma chave do KMS com material de chave importado.

Não é possível descriptografar com nenhuma outra chave do KMS

Quando você criptografa os dados sob uma chave do KMS, o texto cifrado não pode ser descriptografado com nenhuma outra chave do KMS. Esse é o caso mesmo quando você importa o mesmo material de chaves para outra chave do KMS. Este é um recurso de segurança das chaves do KMS.

A única exceção são chaves de várias regiões, que foram projetadas para serem interoperáveis. Para obter mais detalhes, consulte Por que nem todas as chaves do KMS com material de chave importado são interoperáveis?.

Sem portabilidade ou recursos de garantia

Os textos cifrados produzidos pelo AWS KMS não são portáveis. O AWS KMS não é compatível com a descriptografia de texto cifrado do AWS KMS fora do AWS KMS, mesmo que o texto cifrado tenha sido criptografado em uma chave do KMS com material de chave importado. O AWS KMS não publica o formato de texto cifrado exigido por essa tarefa, e o formato pode ser alterado sem aviso prévio.

Além disso, não é possível nenhuma ferramenta da AWS, como o AWS Encryption SDK ou a criptografia do lado do cliente do Amazon S3, para descriptografar textos cifrados do AWS KMS.

Como resultado, não é possível usar chaves com material de chave importada para oferecer suporte a acordos de garantia de chave em que um terceiro autorizado com acesso condicional ao material de chave possa descriptografar determinados textos cifrados fora do AWS KMS. Para oferecer suporte à garantia de chave, use o AWS Encryption SDK para criptografar sua mensagem em uma chave que seja independente do AWS KMS.

Você é responsável pela disponibilidade e durabilidade

Você é responsável pela disponibilidade e durabilidade gerais do material de chaves. AWS KMS é criado para manter o material de chaves importado altamente disponível. No entanto, o serviço não mantém a durabilidade do material de chave importada no mesmo nível que o material de chave gerado em seu nome. Essa diferença é importante nos seguintes casos:

  • Quando você define um tempo de validade para o seu material de chave importado, o AWS KMS exclui esse material depois que ele expira. O AWS KMS não exclui a chave do KMS ou seus metadados. Você não pode definir um tempo de expiração para o material de chaves gerado pelo AWS KMS.

  • Quando você exclui manualmente o material de chave importado, o AWS KMS exclui esse material, mas não exclui a chave do KMS ou seus metadados. Por outro lado, programar a exclusão de chaves exige um período de espera de 7 a 30 dias, após o qual o AWS KMS exclui o material de chave e todos os metadados da chave do KMS.

  • No improvável evento de determinadas falhas regionais que afetam o serviço (tais como uma queda de energia), o AWS KMS não pode restaurar automaticamente seu material de chaves importadas. No entanto, o AWS KMS pode restaurar a chave do KMS e seus metadados.

Para restaurar o material de chave depois de eventos como esse, é necessário manter uma cópia dele em um sistema controlado por você. Em seguida, você pode importá-lo novamente para a chave do KMS..

Permissões para importar material de chave

Para criar e gerenciar chaves do KMS com material de chave importado, o usuário precisa de permissão para as operações nesse processo. Você pode fornecer as permissões kms:GetParametersForImport, kms:ImportKeyMaterial e kms:DeleteImportedKeyMaterial na política de chaves ao criar a chave do KMS. A permissão kms:ImportKeyMaterial não está incluída nas permissões padrão para administradores de chave, portanto, você precisa adicioná-la manualmente.

Para criar chaves do KMS com material de chave importado, a entidade principal precisa das permissões a seguir.

  • kms:CreateKey (política do IAM)

    • Para limitar essa permissão a chaves do KMS com material de chave importado, use a condição de política kms:KeyOrigin com um valor de EXTERNAL.

      { "Version": "2012-10-17", "Statement": { "Sid": "IAM policy to create KMS keys with no key material" "Effect": "Allow", "Resource": "*", "Principal": { "AWS": "arn:aws:iam::111122223333:role/KMSAdminRole" }, "Action": "kms:CreateKey", "Condition": { "StringEquals": { "kms:KeyOrigin": "EXTERNAL" } } }
  • kms:GetParametersForImport (política de chaves ou do IAM)

    • Para limitar essa permissão a solicitações que usem um algoritmo de quebra automática específico e uma especificação de chave de quebra, use as condições de política kms:WrappingAlgorithm e kms:WrappingKeySpec.

  • kms:ImportKeyMaterial (política de chaves ou do IAM)

    • Para permitir ou proibir material de chave que expire e controlar a data de validade, use as condições de política kms:ExpirationModel e kms:ValidTo.

Para reimportar o material de chave importada, a entidade principal precisa das permissões kms:GetParametersForImport e kms:ImportkeyMaterial.

Para excluir o material de chave importada, a entidade principal precisa da permissão kms:DeleteImportedKeyMaterial.

Como importar o material de chave

A visão geral a seguir explica o processo para importar seu material de chaves para o AWS KMS. Para obter mais detalhes sobre cada etapa no processo, consulte o tópico correspondente.

  1. Criar uma chave do KMS simétrica sem material de chave – para começar a importar o material de chave, primeiro crie uma chave do KMS simétrica cuja origem seja EXTERNAL. Isso indica que o material de chave foi gerado fora do AWS KMS e impede que o AWS KMS gere o material de chaves para a chave do KMS. Em uma etapa posterior, você importará seu próprio material de chave para essa chave do KMS.

  2. Baixar a chave pública e o token de importação – depois de concluir a etapa 1, baixe uma chave publica e um token de importação. Esses itens protegem a importação de seu material de chaves para o AWS KMS.

  3. Criptografar o material de chaves – use a chave pública baixada na etapa 2 para criptografar o material de chaves que você criou no seu próprio sistema.

  4. Importar o material de chaves – carregue o material de chave criptografado que você criou na etapa 3 e o token de importação que você baixou na etapa 2.

O AWS KMS registra uma entrada no log do AWS CloudTrail quando você cria a chave do KMS, baixa a chave pública e importa o token e importa o material de chave. O AWS KMS também registra uma entrada quando você exclui o material de chave importado ou quando o AWS KMS exclui o material de chave expirado.

Como importar novamente o material de chave

Se você gerencia uma chave do KMS com material de chaves importado, talvez seja necessário importar novamente o material de chave, seja porque ele expirou ou porque foi excluído ou perdido acidentalmente.

Você deve importar novamente o mesmo material de chave importado originalmente para a chave do KMS. Não é possível importar outro material de chave para uma chave do KMS. Além disso, o AWS KMS não pode criar o material de chave para uma chave do KMS criada sem esse material.

Para importar novamente um material de chaves, use o mesmo procedimento que você usou para importar o material de chaves na primeira vez, com as seguintes exceções.

  • Utilize uma chave do KMS existente em vez de criar uma nova. Você pode ignorar a Etapa 1 do procedimento de importação.

  • Se a chave do KMS contiver o material de chave, você deverá excluí-lo antes de importar novamente o material.

Cada vez que você importa o material de chave para uma chave do KMS, é necessário baixar e usar uma nova chave de empacotamento e token de importação da chave do KMS. O procedimento de empacotamento não afeta o conteúdo do material de chave, portanto você pode usar diferentes chaves de empacotamento (e diferentes tokens de importação) para importar o mesmo material de chave.

Como exibir chaves do KMS com material de chave importado

Quando você cria uma chave do KMS sem material de chave, o valor da propriedade Origin dessa chave do KMS é EXTERNAL e não pode ser alterado. Não é possível converter uma chave que usa o material de chave importada para uma que usa o material de chave que o AWS KMS fornece.

Você pode identificar chaves do KMS que exigem o material de chave importado no console do AWS KMS ou por meio da API do AWS KMS. Também é possível exibir as propriedades do material de chave, como se e quando ela expira, usando o console ou as APIs.

Para identificar chaves do KMS com material de chave importado (console)

  1. Abra o console do AWS KMS em https://console.aws.amazon.com/kms.

  2. Para alterar a região da AWS, use o Region selector (Seletor de regiões) no canto superior direito da página.

  3. Use uma das seguintes técnicas para visualizar a propriedade Origin das suas chaves do KMS.

    • Para adicionar uma coluna Origin (Origem) à sua tabela de chaves do KMS, no canto superior direito, escolha o ícone Settings (Configurações). Selecione Origin (Origem) e clique em Confirm (Confirmar). A coluna Origin (Origem) facilita a identificação das chaves do KMS com um valor de propriedade de origem EXTERNAL.

    • Para encontrar o valor da propriedade Origin de uma chave do KMS específica, escolha o ID de chave ou a alias da chave do KMS. Em seguida, escolha a guia Configuration (Configuração). As guias estão abaixo da seção General configuration (Configuração geral).

  4. Para exibir informações detalhadas sobre o material de chave, escolha a guia Key material (Material de chave). Essa guia é exibida na página de detalhes apenas para chaves do KMS com material de chave importado.

Para identificar chaves do KMS com material de chave importado (API do AWS KMS)

Utilize a operação DescribeKey. A resposta inclui a propriedade Origin da chave do KMS, o modelo de validade e a data de validade, como mostra o exemplo a seguir.

$ aws kms describe-key --key-id 1234abcd-12ab-34cd-56ef-1234567890ab { "KeyMetadata": { "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Origin": "EXTERNAL", "ExpirationModel": "KEY_MATERIAL_EXPIRES" "ValidTo": 1568894400.0, "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333", "CreationDate": 1568289600.0, "Enabled": false, "MultiRegion": false, "Description": "", "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "PendingImport", "KeyManager": "CUSTOMER", "KeySpec": "SYMMETRIC_DEFAULT", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ] } }