Información sobre la encriptación de vSAN

La encriptación de los datos en reposo de vSAN requiere un sistema de administración de claves (KMS). Google Cloud VMware Engine ofrece varias opciones para la administración de claves para la encriptación de datos de vSAN:

  • Google-owned and Google-managed encryption keys (GMEK): De forma predeterminada, la encriptación de datos de vSAN usa Google-owned and Google-managed encryption keys en Cloud Key Management Service para nubes privadas, sin costo adicional.
  • Claves de encriptación administradas por el cliente (CMEK): Puedes usar CMEK en Cloud Key Management Service para administrar claves de encriptación para nubes privadas individuales.
  • KMS externo: Puedes implementar un KMS externo para la encriptación de datos en reposo de vSAN de uno de los proveedores compatibles que se encuentran a continuación.

Elige una solución de administración de claves

Para ayudarte a elegir una solución de administración de claves, revisa la siguiente comparación:

Función GMEK (predeterminado) CMEK KMS externo
Responsabilidad de la administración de claves Google Cliente Cliente
Almacenamiento de claves Cloud Key Management Service (proyecto de Google) Cloud Key Management Service (proyecto del cliente) KMS externo
Nivel de aislamiento Servicio regional Nube privada individual Nube privada individual
Automatización de la rotación Automatizada por Google Automatizada por Google en la rotación de KMS Administrada por el cliente
Costo de licencia adicional Ninguno Google Cloud Se aplican cargos de KMS Licencias de KMS de terceros

En esta página, se explica el comportamiento de la encriptación de vSAN y se resumen las opciones de administración de claves (GMEK, CMEK y KMS externo) disponibles para encriptar los datos en reposo de las máquina virtual en VMware Engine.

Encriptación de datos de vSAN

De forma predeterminada, VMware Engine habilita la encriptación de vSAN para los datos en el clúster principal y en los clústeres agregados después a la nube privada. En la encriptación de datos en reposo de vSAN, se usa una clave de encriptación de datos (DEK) que se almacena en el disco físico local del clúster después de la encriptación. La DEK es una clave de encriptación AES de 256 bits que cumple con FIPS 140-2 Nivel 1 y que los hosts ESXi generan de forma automática. El sistema usa una clave de encriptación de claves (KEK) proporcionada por Cloud Key Management Service o un KMS externo para encriptar la DEK.

Te recomendamos inhabilitar la encriptación de vSAN de los datos en reposo, ya que puede infringir las condiciones específicas del servicio de Google Cloud VMware Engine. Cuando inhabilitas la encriptación vSAN de los datos en reposo en un clúster, la lógica de supervisión de VMware Engine genera una alerta. Para evitar que infrinjas las condiciones del servicio, esta alerta activa una acción basada en la atención al cliente de Cloud a fin de volver a habilitar la encriptación de vSAN en el clúster afectado.

De modo similar, si configuras un KMS externo, te recomendamos borrar la configuración del proveedor de claves de Cloud Key Management Service en vCenter Server.

Google-owned and Google-managed encryption keys (GMEK)

De forma predeterminada, las nubes privadas usan Google-owned and Google-managed encryption keys (GMEK). Con GMEK, VMware Engine configura vCenter Server para conectarse a un proveedor de GMEK. VMware Engine crea una instancia del proveedor de claves por región, y este usa Cloud KMS para la encriptación de la KEK. VMware Engine administra por completo el proveedor de claves y lo configura para que tenga alta disponibilidad en todas las regiones.

El proveedor de GMEK complementa el proveedor de claves nativo (NKP) de vSphere en vCenter Server (en vSphere 7.0, actualización 2 y versiones posteriores) y es el enfoque recomendado para los entornos de producción. El NKP se ejecuta como un proceso dentro del vCenter Server, que se ejecuta en un clúster de vSphere en VMware Engine. VMware recomienda no usar el NKP para encriptar el clúster que aloja vCenter Server. En su lugar, usa GMEK, CMEK o un KMS externo.

Rotación automática de claves de GMEK

Google Cloud VMware Engine activa periódicamente una rotación automática de claves de GMEK para todos los clústeres. Esta es una tarea de mantenimiento en segundo plano que no requiere la intervención del usuario y no afecta la disponibilidad del clúster.

Claves de encriptación administradas por el cliente (CMEK)

Google Cloud VMware Engine admite claves de encriptación administradas por el cliente (CMEK) para nubes privadas individuales que usan Cloud Key Management Service. Puedes configurar cada nube privada con una clave de CMEK distinta, en lugar de compartir una sola clave en todo el proyecto. Esto tiene los siguientes beneficios:

  • Aislamiento mejorado: El riesgo de una clave para una nube privada no afecta a otras.
  • Control detallado: Asigna diferentes claves a diferentes entornos para cumplir con esos requisitos de cumplimiento.

Administra la encriptación de CMEK

Puedes configurar y administrar claves de encriptación administradas por el cliente (CMEK) para tu nube privada con la Google Cloud consola de , Google Cloud CLI y la API de VMware Engine. Para usar CMEK, debes otorgar el rol de IAM roles/cloudkms.cryptoKeyEncrypterDecrypter a tu cuenta de servicio de VMware Engine (service-<var>PROJECT_NUMBER</var>@gcp-sa-vmwareengine.iam.gserviceaccount.com) para la clave de Cloud KMS específica que deseas usar. Este permiso permite que VMware Engine encripte y desencripte la clave de encriptación de claves (KEK) que protege tus datos de vSAN con la clave de Cloud KMS seleccionada en tu proyecto.

Asigna permisos de clave

Antes de habilitar CMEK, debes asignar los permisos necesarios:

  1. Identifica tu recurso de KMS: Ve a la página Key Management en la Google Cloud consola y busca la clave de Cloud KMS específica que se usará para la protección de datos.

    Ir a Key Management

  2. Configura roles de IAM: Otorga el rol roles/cloudkms.cryptoKeyEncrypterDecrypter a la cuenta de servicio de VMware Engine (service-<var>PROJECT_NUMBER</var>@gcp-sa-vmwareengine.iam.gserviceaccount.com) directamente en el panel de claves de Cloud KMS.

Google Cloud Instrucciones de la consola de , Google Cloud CLI y la API de VMware Engine para administrar CMEK:

Console

Para configurar claves de encriptación administradas por el cliente (CMEK) con la Google Cloud consola, haz lo siguiente:

Crea una nube privada con CMEK

Para crear una nube privada con CMEK con la Google Cloud consola de , haz lo siguiente:

  1. En la Google Cloud consola de, ve a la página Nubes privadas.

    Ir a Nubes privadas

  2. Haz clic en Crear.

  3. En la sección Encriptación, elige Claves de encriptación administradas por el cliente (CMEK).

  4. Ingresa el nombre completo del recurso de tu clave de Cloud KMS.

  5. Haz clic en Crear o Guardar.

Actualiza la clave de CMEK para una nube privada existente

Para actualizar la clave de CMEK para una nube privada existente con la Google Cloud consola de , haz lo siguiente:

  1. En la Google Cloud consola de, ve a la página Nubes privadas.

    Ir a Nubes privadas

  2. Selecciona la nube privada existente para actualizar.

  3. En la sección Encriptación, elige Claves de encriptación administradas por el cliente (CMEK).

  4. Ingresa el nombre completo del recurso de tu clave de Cloud KMS.

  5. Haz clic en Crear o Guardar.

Actualiza la encriptación a GMEK para una nube privada existente

Para actualizar el tipo de encriptación a GMEK para una nube privada existente con la Google Cloud consola de , haz lo siguiente:

  1. En la Google Cloud consola de, ve a la página Nubes privadas.

    Ir a Nubes privadas

  2. Selecciona la nube privada existente para actualizar.

  3. En la sección Encriptación, elige Google-owned and Google-managed encryption keys (GMEK).

  4. Haz clic en Crear o Guardar.

gcloud

Para crear una nube privada con CMEK, usa el gcloud vmware private-clouds create comando:

gcloud vmware private-clouds create PC_ID \
  --location=ZONE \
  --cluster=CLUSTER_ID \
  --node-type-config=type=NODE_TYPE,count=COUNT,custom-core-count=CUSTOM_CORE_COUNT \
  --management-range=CIDR_RANGE \
  --vmware-engine-network=projects/PROJECT_ID/locations/global/vmwareEngineNetworks/NETWORK_ID \
  --kms-key=projects/PROJECT_ID/locations/REGION/keyRings/RING/cryptoKeys/KEY

Para actualizar la clave de CMEK para una nube privada existente, usa el gcloud vmware private-clouds update comando:

gcloud vmware private-clouds update PC_NAME \
  --location=ZONE \
  --encryption-type=CMEK \
  --kms-key=projects/PROJECT_ID/locations/REGION/keyRings/RING/cryptoKeys/KEY

Para actualizar el tipo de encriptación a GMEK (Google-owned and Google-managed encryption keys) para una nube privada existente, usa el gcloud vmware private-clouds update comando y omite el --kms-key parámetro:

gcloud vmware private-clouds update PC_NAME \
  --location=ZONE \
  --encryption-type=GMEK

Antes de ejecutar los comandos, reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del Google Cloud proyecto de.
  • ZONE: Es la zona de VMware Engine, como us-east4-a.
  • PC_ID: Es el ID de tu nueva nube privada.
  • CLUSTER_ID: Es el ID del clúster de administración.
  • NODE_TYPE: Es el tipo de nodo, por ejemplo, standard-72.
  • COUNT: Es la cantidad de nodos en el clúster.
  • CUSTOM_CORE_COUNT: Es la cantidad de núcleos disponibles para cada nodo del clúster. Es opcional.
  • CIDR_RANGE: Es el rango de CIDR de administración para la nube privada.
  • NETWORK_ID: Es el ID de tu red de VPC.
  • REGION: Es la región de Cloud KMS, como us-east4.
  • RING: Es el nombre del llavero de claves de Cloud KMS.
  • KEY: Es el nombre de la clave criptográfica de Cloud KMS.
  • PC_NAME: Es el nombre de la nube privada existente.

API

Para crear una nube privada con CMEK, usa el privateClouds.create método y especifica el encryptionConfig parámetro:

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json; charset=utf-8" \
  "https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/privateClouds?private_cloud_id=PC_ID" \
  -d '{
  "networkConfig": {
    "vmwareEngineNetwork": "projects/PROJECT_ID/locations/global/vmwareEngineNetworks/NETWORK_ID",
    "managementCidr": "CIDR_RANGE"
  },
  "managementCluster": {
    "clusterId": "CLUSTER_ID",
    "nodeTypeConfigs": {
      "NODE_TYPE": {
        "nodeCount": COUNT
      }
    }
  },
  "encryptionConfig": {
    "cryptoKeyName": "projects/PROJECT_ID/locations/REGION/keyRings/RING/cryptoKeys/KEY"
  }
}'

Para actualizar la clave de CMEK para una nube privada existente, usa el privateClouds.patch método:

curl -X PATCH \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json; charset=utf-8" \
  "https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/privateClouds/PC_NAME?updateMask=encryptionConfig" \
  -d '{
  "encryptionConfig": {
    "cryptoKeyName": "projects/PROJECT_ID/locations/REGION/keyRings/RING/cryptoKeys/KEY"
  }
}'

Para volver a cambiar una nube privada existente a GMEK (Google-owned and Google-managed encryption keys), usa el privateClouds.patch método con un objeto encryptionConfig vacío:

curl -X PATCH \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json; charset=utf-8" \
  "https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/privateClouds/PC_NAME?updateMask=encryptionConfig" \
  -d '{
  "encryptionConfig": {}
}'

Antes de ejecutar los comandos, reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del Google Cloud proyecto de.
  • ZONE: Es la zona de VMware Engine, como us-east4-a.
  • REGION: Es la región de Cloud KMS, como us-east4.
  • PC_ID: Es el ID de tu nueva nube privada.
  • NETWORK_ID: Es el ID de tu red de VPC.
  • CIDR_RANGE: Es el rango de CIDR de administración para la nube privada.
  • CLUSTER_ID: Es el ID del clúster de administración.
  • NODE_TYPE: Es el tipo de nodo, por ejemplo, standard-72.
  • COUNT: Es la cantidad de nodos en el clúster.
  • RING: Es el nombre del llavero de claves de Cloud KMS.
  • KEY: Es el nombre de la clave criptográfica de Cloud KMS.
  • PC_NAME: Es el nombre de la nube privada existente.

Información sobre las restricciones y limitaciones de CMEK

  • Requisitos regionales: Tanto la nube privada como la clave de Cloud KMS seleccionada deben residir en la misma región. Ten en cuenta que las claves globales de Google Cloud KMS no son compatibles con la encriptación de vSAN.
  • Disponibilidad de claves: Si no se puede acceder a la clave de encriptación porque está inhabilitada o revocada, fallarán todas las operaciones de vSAN dependientes. Los procedimientos vitales, incluidos los reinicios del host y el cambio de claves superficial, no pueden continuar hasta que se restablezca el acceso a la clave de forma correcta.

Eficiencia operativa con la rotación automática de KEK de CMEK

Para las organizaciones que eligen CMEK, la función de rotación automática de KEK para la encriptación de datos en reposo de vSAN automatiza las tareas de seguridad manuales:

  • Sincronización automatizada: El sistema supervisa Cloud KMS y detecta automáticamente las rotaciones de claves.
  • Rotación de KEK en segundo plano sin interrupciones: Tras la rotación, el sistema inicia una rotación de KEK superficial, lo que garantiza una protección continua sin intervención manual en vCenter. Esta operación actualiza la clave de encriptación de claves para tus claves de encriptación de datos (DEK) con una nueva clave de encriptación de claves (KEK). Debido a que las DEK encriptan tus datos de vSAN directamente, este proceso no requiere una nueva encriptación completa de tus datos de vSAN.
  • Administración sin tiempo de inactividad: El sistema genera y aplica KEK en segundo plano, lo que mantiene el rendimiento y la disponibilidad para las cargas de trabajo. Por lo general, este proceso se completa en un plazo de 48 horas después de una rotación de claves de Cloud KMS.

Requisito para máquinas virtuales encriptadas

Puedes administrar las claves de encriptación para VMs con el proveedor predeterminado Google-owned and managed key o Cloud Key Management Service.

Si habilitas la encriptación de VM (o vTPM) para cualquier VM en tu nube privada y usas un KMS para administrar las claves de encriptación, debes volver a encriptar (cambiar de claves superficialmente) cada VM después de rotar tu clave de KMS.

Un cambio de claves superficial reemplaza solo la clave de encriptación de claves (KEK) y no cambia la clave de encriptación de datos (DEK) de las VMs. Por lo general, se activa un cambio de claves superficial con la acción Volver a encriptar en vSphere Client.

Durante esta operación, el sistema vuelve a unir (volver a encriptar) la DEK existente con una KEK nueva. Este proceso es rápido porque no vuelve a escribir datos reales en el disco; en cambio, solo actualiza el paquete de claves pequeño que contiene la DEK encriptada. Para obtener más información, consulta la siguiente documentación de VMware:

Riesgos de no volver a cambiar las claves de las VMs encriptadas

Si no vuelves a cambiar las claves de las VMs encriptadas antes de borrar la versión de clave de KMS rotada (antigua), se pueden producir los siguientes problemas:

  • vMotions fallidos: Los hosts ESXi no pueden desencriptar las DEK de VM durante vMotion si reinicias los hosts de destino o los agregas al clúster después de la rotación de claves de KMS , pero antes de realizar el cambio de claves de VM.
  • Errores de encendido: Si un host se reinicia o borra su caché de claves local, no puede volver a adquirir claves del KMS. Si borraste las claves necesarias del KMS, el host no puede desencriptar la DEK, lo que impide que se enciendan las VMs encriptadas.

Pasos para realizar una operación de cambio de claves en VMs de carga de trabajo

  1. En vSphere Client, haz clic con el botón derecho en la VM.
  2. Selecciona Políticas de VM > Volver a encriptar.
  3. Confirma la solicitud de volver a encriptar en el cuadro de diálogo que aparece.
  4. Espera a que se complete la tarea.
  5. Para verificar el cambio de claves, migra la VM a un host que reiniciaste o agregaste al clúster después de la rotación de claves de KMS.

KMS externo

De manera opcional, puedes seleccionar una solución de KMS de terceros que cumpla con KMIP 1.1 y que esté certificada por VMware para vSAN. Los siguientes proveedores validaron la solución de KMS con VMware Engine y publicaron guías de implementación y declaraciones de asistencia:

Para obtener instrucciones de configuración, consulta los siguientes documentos:

Usa un proveedor compatible

Cada implementación de un KMS externo requiere los mismos pasos básicos:

  • Crea un Google Cloud proyecto o usa uno existente.
  • Crea una red de nube privada virtual (VPC) nueva o elige una red de VPC existente.
  • Conecta la red de VPC seleccionada a la red de VMware Engine.

Luego, implementa el KMS en una instancia de VM de Compute Engine:

  1. Configura los permisos de IAM necesarios para implementar instancias de VM de Compute Engine.
  2. Implementa KMS en Compute Engine.
  3. Establece la confianza entre vCenter y KMS
  4. Habilita la encriptación de datos de vSAN.

En las siguientes secciones, se describe brevemente este proceso de uso de uno de los proveedores compatibles.

Configura los permisos de IAM

Necesitas permisos suficientes para implementar instancias de VM de Compute Engine en un proyecto y una red de VPC determinados Google Cloud , conectar la red de VPC a VMware Engine y configurar reglas de firewall para la red de VPC.

Los propietarios del proyecto y las principales de IAM con la función de Administrador de red pueden crear rangos de IP asignados y administrar conexiones privadas. Para obtener más información sobre las funciones, consulta Funciones de IAM de Compute Engine.

Implementa Key Management Server en Compute Engine

Algunas soluciones de KMS están disponibles en un factor de forma de dispositivo en Google Cloud Marketplace. Para implementar estos dispositivos, importa el OVA directamente en tu red de VPC o Google Cloud proyecto.

Para KMS basado en software, implementa una instancia de VM de Compute Engine con la configuración (recuento de CPU virtual, vMem y discos) recomendada por el proveedor de KMS. Instala el software de KMS en el sistema operativo invitado. Crea la instancia de VM de Compute Engine en una instancia de VPC que esté conectada a la red de VMware Engine.

Establece la confianza entre vCenter y KMS

Después de implementar KMS en Compute Engine, configura el vCenter de VMware Engine para recuperar las claves de encriptación de KMS.

Primero, agrega los detalles de la conexión de KMS a vCenter. Para establecer la confianza entre vCenter y KMS, sigue estos pasos: Para establecer la confianza entre vCenter y KMS, sigue estos pasos:

  1. Genera un certificado en vCenter.
  2. Firma mediante un token o una clave generados por el KMS.
  3. Proporciona o sube ese certificado a vCenter.
  4. Confirma el estado de la conectividad, comprueba la configuración y el estado de KMS en la página de configuración del servidor de vCenter.

Habilita la encriptación de datos de vSAN

En vCenter, el usuario CloudOwner predeterminado tiene privilegios suficientes para habilitar y administrar la encriptación de datos vSAN.

Si deseas cambiar de un KMS externo al proveedor Google-owned and managed key predeterminado, sigue los pasos para cambiar el proveedor de claves proporcionado en la documentación de VMware Configura y administra un proveedor de claves estándar.

¿Qué sigue?