Como importar minhas chaves para o AWS Key Management Service?

4 minuto de leitura
0

Quero importar meu material de chave para o AWS Key Management Service (AWS KMS) para poder usar chaves simétricas de 256 bits com os serviços da AWS.

Solução

O AWS KMS permite que você importe seu material de chave para uma chave do AWS KMS. Você poderá, então, usar essa chave com os serviços da AWS que forem compatíveis com o AWS KMS.
Siga as etapas a seguir para importar seu material de chave para o AWS KMS.
Observação: Se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solucionar erros da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.

  1. Crie uma chave do AWS KMS sem material de chave e anote o ID da sua chave do AWS KMS.
    Observação: Em Definir Permissões Administrativas da Chave e Definir Permissões de Uso da Chave, é uma prática recomendada separar o administrador da chave e os perfis da chave. Isso limita o impacto no caso de uma das credenciais ser exposta.

  2. Abra um terminal na sua máquina local ou na instância do Amazon Elastic Compute Cloud (Amazon EC2) com o OpenSSL instalado.

  3. Para gerar uma chave simétrica de 256 bits, execute o comando a seguir:

    openssl rand -out PlaintextKeyMaterial.bin 32
  4. Para descrever a chave e obter os parâmetros para a importação, execute os seguintes comandos da AWS CLI:
    Observação: os comandos armazenam a chave pública e importam os parâmetros do token em uma variável.

    export KEY=`aws kms --region eu-west-2 get-parameters-for-import --key-id example1-2345-67ab-9123-456789abcdef --wrapping-algorithm RSAES_OAEP_SHA_256 --wrapping-key-spec RSA_2048 --query '{Key:PublicKey,Token:ImportToken}' --output text`
  5. Para colocar a chave pública e o token de importação em arquivos separados codificados em base64, execute o comando a seguir:

    echo $KEY | awk '{print $1}' > PublicKey.b64echo $KEY | awk '{print $2}' > ImportToken.b64
  6. Para converter o arquivo codificado em base64 em arquivos binários para importação, execute os comandos a seguir:

    openssl enc -d -base64 -A -in PublicKey.b64 -out PublicKey.binopenssl enc -d -base64 -A -in ImportToken.b64 -out ImportToken.bin
  7. Para criptografar o material de chave com a chave pública que foi convertida em um arquivo binário, execute o comando a seguir:

    openssl pkeyutl -in PlaintextKeyMaterial.bin -out EncryptedKeyMaterial.bin -inkey PublicKey.bin -keyform DER -pubin -encrypt -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256
  8. Para importar o material criptografado da chave para o AWS KMS, execute o comando a seguir:
    Observação: Este exemplo especifica que o material de chave não expira, mas você pode definir uma data de validade para o seu material de chave. Para obter mais informações, consulte ExpirationModel.

    aws kms --region eu-west-2 import-key-material --key-id example1-2345-67ab-9123-456789abcdef --encrypted-key-material fileb://EncryptedKeyMaterial.bin --import-token fileb://ImportToken.bin --expiration-model KEY_MATERIAL_DOES_NOT_EXPIRE
  9. Verifique se o status da chave importada está definido como Ativada. Para fazer isso, analise a chave no console do AWS KMS ou execute a ação de API DescribeKey.

Se não conseguir importar a chave, siga as etapas a seguir de acordo com seu caso de uso:

  • Você aguardou mais de 24 horas e o token de importação está expirado. Para solucionar isso, faça download da chave de empacotamento e importe o token mais uma vez para criptografar o material de chave novamente.
  • O material de chave não é uma chave simétrica de 256 bits. Para solucionar isso, verifique se o tamanho do arquivo do material de chave criptografada é de 32 bytes. Execute um dos comandos a seguir para verificar o tamanho do arquivo:

Linux

wc -c <filename>.bin

Windows

Para obter mais informações, consulte Importar de material chave para chaves do AWS KMS.

dir <filename>.bin

Informações relacionadas

Estou usando o OpenSSL para importar minha chave para o AWS KMS, mas estou recebendo um erro "InvalidCiphertext". Como faço para corrigir isso?

AWS OFICIAL
AWS OFICIALAtualizada há 4 meses