Creación de una imagen personalizada cifrada

Cuando dispongas de una imagen personalizada de qcow2 que cumpla los requisitos de la infraestructura de IBM Cloud® Virtual Private Cloud, podrás cifrarla. El siguiente procedimiento describe cómo cifrar su imagen personalizada con el cifrado LUKS utilizando QEMU y su 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). Al envolver los datos de tu contraseña, estos se cifran y se protegen, de modo que nunca tendrás que compartir tu contraseña en texto sin cifrar.

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. Configure Key Protect, cree una clave raíz de cliente (CRK) y, a continuación, envuelva su frase de contraseña con la CRK para generar una clave de cifrado de datos envuelta (WDEK).
  4. Asegúrese de disponer de las autorizaciones necesarias en 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 una ubicació IBM Cloud Object Storage, el CRK almacenado en Key Protect y su texto cifrado WDEK.

Cifrado de la imagen

En este paso, utilizarás QEMU para especificar tu propia contraseña y cifrar tu imagen personalizada con el cifrado LUKS.

La imagen personalizada que tenga previsto cifrar debe cumplir los requisitos de imagen personalizada para la infraestructura de IBM Cloud VPC. Comprueba que has cumplido los requisitos de preparación de la imagen que se indican en los siguientes apartados:

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

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

Sigue los siguientes pasos utilizando QEMU para crear un segundo archivo cifrado 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 adelante, deberá 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 en my_100G_custom_image.qcow2 una imagen cifrada 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. info Ejecuta tu nuevo archivo cifrado para comprobar que tiene el tamaño y el nivel de cifrado que esperabas.

    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 estos pasos:

  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

IBM Cloud Hyper Protect Crypto Services han quedado obsoletos. Los clientes pueden utilizar las instancias existentes hasta el 20 de marzo de 2027. Para obtener más información, consulta IBM Cloud Hyper Protect Crypto Services: en proceso de obsolescencia. Para garantizar una protección continua, plantéate migrar tus claves de cifrado actuales a una instancia dedicada de Key Protect. Para obtener más información, consulta la guía de migración.

Para importar una imagen personalizada cifrada a IBM Cloud VPC, necesitas Key Protect. 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 has utilizado para cifrar tu imagen junto con tu CRK, de modo que solo tú conozcas tu frase de contraseña. La WDEK se utiliza para acceder a la imagen cifrada cuando se inicia una instancia de servidor virtual que utiliza la imagen cifrada.

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

  • Key Protect de provisión.
  • Importe una clave raíz de cliente (CRK) a Key Protect o cree una en Key Protect.
  • 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).
  1. Suministre el servicio Key Protect.

    Al aprovisionar una instancia del servicio Key Protect, se garantiza que incluya 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.

    El estado de la clave raíz del cliente (CRK) afecta directamente a la disponibilidad de su imagen cifrada. Si la CRK se suspende, se desactiva o se destruye, la clave de cifrado de datos envuelta (WDEK) no se puede desempaquetar, y ninguna instancia de servidor virtual que utilice la imagen cifrada podrá iniciarse. Para obtener más información, consulta Estados y transiciones clave.

  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úrate de que el complemento de la CLI de Key Protect 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
    
    1. 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 referirse a los datos en procesos de cifrado y descifrado. 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 el cifrado, INSTANCE_ID es el ID de la instancia que identifica su instancia del 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=
    
    1. 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 permite que el servicio de imágenes para VPC pueda acceder a las imágenes de 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

Una vez que la imagen se haya cifrado correctamente, se haya configurado Key Protect 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úrate de haber concedido acceso 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.