Creación de una imagen personalizada cifrada

Cuando disponga de una imagen personalizada de qcow2 que cumpla los requisitos de la infraestructura de IBM Cloud® Virtual Private Cloud, podrá cifrarla. El siguiente procedimiento describe cómo cifrar tu imagen personalizada con cifrado LUKS utilizando QEMU y tu propia frase de contraseña única. Después de cifrar la imagen, envuelva la frase de contraseña con la clave raíz de cliente (CRK). La clave de cifrado de datos envuelta (o cifrada) se almacena con los metadatos de la imagen cuando la importas a IBM Cloud VPC.

Una forma rápida de crear una imagen personalizada cifrada es utilizando la imagen del volumen. Puede utilizar esta característica para crear una imagen personalizada a partir del volumen de arranque de una instancia y especificar el cifrado gestionado por el cliente. Para obtener más información, consulte Acerca de la creación de una imagen a partir de un volumen.

No puede utilizar una imagen personalizada cifrada en un catálogo privado o en un servidor nativo.

Para obtener más información, consulte Iniciación a las claves SSH.

Cómo funcionan las imágenes personalizadas cifradas

Después de cifrar una imagen personalizada con su propia frase de contraseña, debe cargarla a IBM Cloud Object Storage. Antes de importar la imagen cifrada a IBM Cloud VPC, debe configurar un servicio de gestión de claves (KMS) y crear una clave raíz de cliente (CRK). A continuación, utiliza tu CRK para proteger la frase de contraseña que utilizas para cifrar tu imagen. Al encapsular su contraseña secreta con su CRK, crea lo que el KMS denomina una clave de cifrado de datos encapsulada (WDEK). Envolver los datos de tu frase de contraseña los encripta y los protege para que nunca tengas que compartir tu frase de contraseña en texto plano.

Al importar la imagen, debe especificar el nombre de recurso de nube (CRN) para la clave raíz de cliente (CRK) almacenada en el KMS. También debe especificar el texto cifrado para la clave de cifrado de datos encapsulada (WDEK). La frase de contraseña se almacena cifrada en la WDEK siempre. Sólo se desencapsula cuando se inicia un servidor virtual que utiliza la imagen cifrada.

Cuando esté preparado para suministrar un servidor virtual con la imagen cifrada, la información de cifrado no es necesaria. La WDEK y el CRN de la CRK se almacenan como metadatos con la imagen. Para obtener más información, consulte Acerca de las imágenes personalizadas cifradas.

Visión general del proceso de imagen cifrada

Los pasos siguientes resumen el proceso general que necesita completar para crear e importar correctamente una imagen cifrada. Las secciones posteriores proporcionan detalles sobre cómo completar los pasos.

  1. Cree una imagen cifrada utilizando QEMU y una frase de contraseña de su elección para cifrar un archivo qcow2 con cifrado LUKS.
  2. Cargue el archivo de imagen cifrado en IBM Cloud Object Storage.
  3. Suministre un servicio de gestión de claves, cree una clave raíz de cliente (CRK) y, a continuación, encapsule la frase de contraseña con CRK para generar una clave de cifrado de datos encapsulada (WDEK).
  4. Asegúrese de que dispone de las autorizaciones necesarias IBM Cloud Identity and Access Management para poder importar la imagen desde IBM Cloud Object Storage y para que su WDEK pueda utilizarse para el cifrado de datos.
  5. Importe la imagen en IBM Cloud VPC. Debe especificar la ubicación de IBM Cloud Object Storage, la CRK almacenada en el KMS y el texto cifrado de la WDEK.

Cifrado de la imagen

En este paso, utilizas QEMU para especificar tu propia frase de contraseña y encriptar tu imagen personalizada con encriptación LUKS.

La imagen personalizada que tenga previsto cifrar debe cumplir los requisitos de imagen personalizada para la infraestructura de IBM Cloud VPC. Confirme que ha completado los requisitos de preparación de la imagen en los siguientes temas:

Para completar la tarea de cifrado, debes tener instalada la versión de QEMU 2.12 o posterior.

Para completar las instrucciones de cifrado de QEMU debe utilizar un sistema operativo Linux o Windows. El sistema operativo Mac no es compatible.

Completa los siguientes pasos utilizando QEMU para crear un segundo archivo encriptado qcow2 de tu imagen personalizada.

  1. Determine su propia frase de contraseña que se utilizará para cifrar la imagen. Los mandatos de ejemplo de esta tarea utilizan la frase de contraseña abc123. Mantenga la frase de contraseña disponible. Más tarde tendrás que envolver la frase de contraseña para crear una clave de cifrado de datos envuelta (WDEK). La WDEK es necesaria al importar la imagen en IBM Cloud VPC.

  2. Compruebe la imagen personalizada qcow2 actual con el mandato siguiente:

    qemu-img info my_100G_custom_image.qcow2
    

    Para este ejemplo, obtendría una respuesta similar a la salida siguiente:

    image: my_100G_custom_image.qcow2
    file format: qcow2
    virtual size: 100 GiB (107374182400 bytes)
    disk size: 1.28 GiB
    cluster_size: 65536
    Format specific information:
        compat: 1.1
        lazy refcounts: false
        refcount bits: 16
        corrupt: false
    
  3. Cree un nuevo archivo qcow2 vacío exactamente del mismo tamaño y cífrelo con el cifrado LUKS. Utilice la frase de contraseña que elija, por ejemplo, abc123, para cifrar el archivo:

    qemu-img create --object secret,id=sec0,data=abc123 -f qcow2 -o encrypt.format=luks,encrypt.key-secret=sec0 my_100G_custom_image-encrypted.qcow2 100G
    
  4. Convierte tu imagen qcow2, my_100G_custom_image.qcow2 a la imagen encriptada, my_100G_custom_image-encrypted.qcow2.

    qemu-img convert --object secret,id=sec0,data=abc123 --image-opts driver=qcow2,file.filename=my_100G_custom_image.qcow2 --target-image-opts driver=qcow2,encrypt.key-secret=sec0,file.filename=my_100G_custom_image-encrypted.qcow2 -n -p
    
  5. Compare ambos archivos para comprobar que sean idénticos.

    qemu-img compare --object secret,id=sec0,data=abc123 --image-opts driver=qcow2,file.filename=my_100G_custom_image.qcow2  driver=qcow2,encrypt.key-secret=sec0,file.filename=my_100G_custom_image-encrypted.qcow2 -p
    
  6. Compruebe si hay errores en el archivo.

    qemu-img check --object secret,id=sec0,data=abc123 --image-opts driver=qcow2,encrypt.key-secret=sec0,file.filename=my_100G_custom_image-encrypted.qcow2
    

    Para este ejemplo, obtendría una respuesta similar a la salida siguiente:

    No errors were found on the image.
    16343/1638400 = 1.00% allocated, 0.00% fragmented, 0.00% compressed clusters
    Image end offset: 1074790400
    
  7. Ejecute info en su nuevo archivo encriptado para verificar que tiene el tamaño y el nivel de encriptación esperados.

    qemu-img info my_100G_custom_image-encrypted.qcow2
    

    Para este ejemplo, obtendría una respuesta similar a la salida siguiente:

    image: my_100G_custom_image-encrypted.qcow2
    file format: qcow2
    virtual size: 100 GiB (107374182400 bytes)
    disk size: 1.27 GiB
    cluster_size: 65536
    Format specific information:
        compat: 1.1
        lazy refcounts: false
        refcount bits: 16
        corrupt: false
    

Cargar la imagen cifrada a IBM Cloud Object Storage

Cuando tu archivo de imagen esté cifrado con el cifrado LUKS y tu frase de contraseña única, podrás subirlo a IBM Cloud Object Storage siguiendo los pasos que se indican a continuación:

  1. Asegúrese de que el archivo de imagen personalizado tenga un nombre descriptivo para que luego pueda identificar fácilmente.
  2. En la página Objetos del grupo de IBM Cloud Object Storage, pulse Cargar. Puede utilizar el plugin de transferencia de alta velocidad de Aspera para cargar imágenes de más de 200 MB.

Configuración del servicio de gestión de claves y las claves

Para importar una imagen personalizada cifrada a IBM Cloud VPC, necesita un servicio de gestión de claves. También necesita una clave raíz de cliente (CRK) y una clave de cifrado de datos encapsulada (WDEK). El WDEK es la frase de contraseña que utilizaste para cifrar tu imagen envuelta con tu CRK, de modo que tu frase de contraseña sólo la conoces tú. La WDEK se utiliza para acceder a la imagen cifrada cuando se inicia una instancia de servidor virtual que utiliza la imagen cifrada.

Deprecated Los Hyper Protect Crypto Services son deprecated. Los clientes pueden utilizar las instancias existentes hasta el 20 de marzo de 2027. Para más información, véase Deprecation of IBM Cloud Hyper Protect Crypto Services. Para una protección continua, considere la posibilidad de migrar sus claves de cifrado existentes a una instancia dedicada de Key Protect. Para más información, consulte la Guía de migración.

La siguiente lista es un resumen de los requisitos previos para la gestión de claves:

  • Suministre un servicio de gestión de claves soportado, ya sea Key Protect o Hyper Protect Crypto Services.
  • Importe o cree una clave raíz de cliente (CRK) en el servicio de gestión de claves.
  • Encapsule (proteja) la frase de contraseña que ha utilizado para cifrar la imagen con la clave raíz de cliente para crear una clave de cifrado de datos encapsulada (WDEK).

Los pasos de ejemplo siguientes son específicos de Key Protect, pero el flujo general también se aplica a Hyper Protect Crypto Services. Si utiliza Hyper Protect Crypto Services, consulte la Información sobre Hyper Protect Crypto Services para ver las instrucciones correspondientes.

  1. Suministre el servicio Key Protect.

    El aprovisionamiento de una instancia del servicio Key Protect garantiza que incluye las actualizaciones más recientes necesarias para el cifrado gestionado por el cliente.

  2. Cree o importe una clave raíz de cliente (CRK) en IBM Key Protect.

    Planifique la importación de claves revisando las opciones para crear y cifrar el material de claves. Para una mayor seguridad, puede habilitar la importación segura del material de claves utilizando una señal de importación para cifrar el material de claves antes de traerlo a la nube.

  3. Utilice la clave raíz de cliente (CRK) para encapsular, o proteger, la frase de contraseña exclusiva que ha utilizado para cifrar la imagen con el cifrado LUKS. En el ejemplo de cifrado de imagen, hemos utilizado la frase de contraseña abc123.

    1. Asegúrese de que el plug-in Key Protect CLI está instalado para poder generar un WDEK. Para obtener más información, consulte Instalación del plugin de CLI de Key Protect.

    2. Codifique la frase de contraseña con la codificación Base64 para prepararla para el encapsulado con la CRK. Ejecute el mandato siguiente, sustituyendo la frase de contraseña por abc123. El parámetro -n es necesario para que no se codifique un carácter de nueva línea, lo que hace que la frase de contraseña encapsulada no funcione.

      echo -n "abc123"|base64
      

      Para este ejemplo, obtendría una respuesta similar a la salida siguiente:

      YWJjMTIz
      
    3. Encapsule la frase de contraseña codificada con la CRK ejecutando el mandato ibmcloud kp key wrap. Aunque la frase de contraseña que se utiliza para generar la imagen cifrada no es técnicamente una clave de cifrado de datos, es la terminología que utiliza Key Protect para los datos en envoltorios y desenvoltorios. Los datos que se devuelven de Key Protect se conocen como WDEK. Para obtener más información, consulte kp key wrap.

      ibmcloud kp key wrap KEY_ID -i INSTANCE_ID -p PLAINTEXT
      

      Donde KEY_ID es el ID de la clave raíz que desea utilizar para la envoltura, INSTANCE_ID es el ID de instancia que identifica su instancia de servicio Key Protect, y PLAINTEXT es su frase de contraseña codificada. Por ejemplo, YWJjMTIz.

      Para este ejemplo, obtendría una respuesta similar a la salida siguiente:

      Wrapping key...
      SUCCESS
      Ciphertext
      eyJjaXBoZXJ0ZXh0IjoiKzhjbHVqcUNP ...<redacted>... NmY3MTJjNGViIn0=
      
    4. Guarde o persista en el almacenamiento, el texto cifrado de la WDEK. Al importar la imagen cifrada en IBM Cloud VPC debe especificar el texto cifrado de la WDEK.

Requisitos previos de la autorización de IAM

Asegúrese de que ha creado las autorizaciones necesarias en IBM Cloud Identity and Access Management.

  1. Desde IBM Cloud Identity and Access Management (IAM), cree una autorización entre Cloud Block Storage (servicio de origen) y el servicio de gestión de claves (servicio de destino). La autorización permite los servicios de la placa posterior de IBM Cloud para utilizar la WDEK para el cifrado de datos.
  2. Asegúrese de que ha creado una autorización de IAM entre Image Service for VPC y IBM Cloud Object Storage. Especifique Servicios de infraestructura como servicio de origen. Especifique Image Service para VPC como tipo de recurso. Especifique IBM Cloud Object Storage como servicio de destino. La autorización es para que el Image Service for VPC pueda acceder a las imágenes en IBM Cloud Object Storage. Para obtener más información, consulte Cómo otorgar acceso a IBM Cloud Object Storage para importar imágenes.

Próximos pasos

Cuando la imagen se haya cifrado correctamente, el KMS esté configurado y se hayan creado las claves necesarias, podrá importar la imagen a IBM Cloud VPC. Cuando la imagen está disponible en IBM Cloud VPC, puede utilizarla para suministrar instancias. Asegúrese de que tiene Acceso otorgado a IBM Cloud Object Storage para importar imágenes.

Cuando esté preparado para suministrar una nueva instancia de servidor virtual con la imagen cifrada, no es necesaria ninguna información de cifrado. La clave de cifrado de datos encapsulada (WDEK) y el CRN de la clave raíz de cliente (CRK) se almacenan como metadatos con la imagen.