¿Cómo puedo importar mis claves a AWS Key Management Service?

4 minutos de lectura
0

Quiero importar mi material de claves a AWS Key Management Service (AWS KMS) para poder usar claves simétricas de 256 bits con los servicios de AWS.

Solución

AWS KMS le permite importar el material de claves a una clave de AWS KMS. A continuación, puede usar esta clave con servicios de AWS compatibles con AWS KMS.
Siga estos pasos para importar el material de claves a AWS KMS.
Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulte Errores de solución de problemas de la AWS CLI. Además, asegúrese de utilizar la versión más reciente de AWS CLI.

  1. Cree una clave de AWS KMS sin material de claves y anote el ID de la clave de AWS KMS.
    Nota: En Definir permisos de administración de claves y Definir permisos de uso de claves, se recomienda separar los roles de clave y el administrador de claves. De este modo se limita el impacto si alguna de las credenciales queda expuesta.

  2. Abra un terminal en su máquina local o instancia de Amazon Elastic Compute Cloud (Amazon EC2) con OpenSSL instalado.

  3. Para generar una clave simétrica de 256 bits, ejecute el siguiente comando:

    openssl rand -out PlaintextKeyMaterial.bin 32
  4. Para describir la clave y obtener los parámetros para la importación, ejecute los siguientes comandos de la AWS CLI:
    Nota: Los comandos almacenan la clave pública e importan los parámetros del token a una variable.

    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 la clave pública y el token de importación en archivos codificados en base64 independientes, ejecute el siguiente comando:

    echo $KEY | awk '{print $1}' > PublicKey.b64echo $KEY | awk '{print $2}' > ImportToken.b64
  6. Para convertir el archivo codificado en base64 en archivos binarios para importarlos, ejecute los siguientes comandos:

    openssl enc -d -base64 -A -in PublicKey.b64 -out PublicKey.binopenssl enc -d -base64 -A -in ImportToken.b64 -out ImportToken.bin
  7. Para cifrar el material de claves con la clave pública convertida en un archivo binario, ejecute el siguiente comando:

    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 el material de claves cifrado a AWS KMS, ejecute el siguiente comando:
    Nota: En este ejemplo se especifica que el material de claves no vence, pero se puede establecer una fecha de vencimiento para el material de claves. Para obtener más información, 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. Compruebe que el estado establecido para la clave importada sea Habilitado. Para ello, revise la clave en la consola de AWS KMS o ejecute la acción de API DescribeKey.

Si no puede importar la clave, siga estos pasos para su caso práctico:

  • Ha esperado más de 24 horas y el token de importación ha vencido. Para solucionar este problema, descargue la clave contenedora e importe el token de nuevo para volver a cifrar el material de claves.
  • Su material de claves no es una clave simétrica de 256 bits. Para solucionar este problema, compruebe que el archivo del material de claves cifrado tenga un tamaño de 32 bytes. Para comprobar el tamaño del archivo, ejecute uno de los siguientes comandos:

Linux

wc -c <filename>.bin

Windows

Para obtener más información, consulte Importing key material for AWS KMS keys.

dir <filename>.bin

Información relacionada

Utilizo OpenSSL para importar mi clave a AWS KMS pero aparece el error «InvalidCiphertext». ¿Cómo puedo solucionar este problema?

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 4 meses