Claves de encriptación administradas por el cliente

De forma predeterminada, Google Cloud encripta los datos cuando están en reposo de manera automática mediante claves de encriptación administradas por Google. Si tienes requisitos normativos o de cumplimiento específicos relacionados con las claves que protegen los datos, puedes usar claves de encriptación administradas por el cliente (CMEK) para tus instancias de notebooks administrados por el usuario.

En esta página, se describen algunos beneficios y limitaciones específicos del uso de CMEK con notebooks administrados por el usuario y se muestra cómo configurar una instancia de notebook nueva administrada por el usuario para usar CMEK.

Para obtener información sobre las CMEK en general, incluso cuándo y por qué habilitarlas, consulta Claves de encriptación administradas por el cliente.

Beneficios de CMEK

En general, las CMEK son más útiles si necesitas control total sobre las claves que se usan para encriptar los datos. Mediante CMEK, puedes administrar las claves dentro de Cloud Key Management Service. Por ejemplo, puedes rotar o inhabilitar una clave, o bien puedes configurar una programación de rotación mediante la API de Cloud KMS.

Cuando ejecutas una instancia de notebooks administrados por el usuario, esta se ejecuta en una máquina virtual (VM) administrada por Vertex AI Workbench. Cuando habilitas CMEK para una instancia de notebook administrada por el usuario, Vertex AI Workbench usa la clave que designes, en lugar de una clave administrada por Google, para encriptar datos en los discos de arranque de la VM.

La clave CMEK no encripta los metadatos, como el nombre y la región de la instancia, asociados con tu instancia de notebook administrada por el usuario. Los metadatos asociados con las instancias de notebooks administrados por el usuario siempre se encriptan mediante el mecanismo de encriptación predeterminado de Google.

Limitaciones de CMEK

Para disminuir la latencia y evitar que los recursos dependan de los servicios distribuidos en varios dominios con fallas, Google recomienda proteger las instancias de notebooks regionales administrados por el usuario con claves en la misma ubicación.

  • Puedes encriptar instancias de notebooks administradas por el usuario regional mediante claves en la misma ubicación o en la ubicación global. Por ejemplo, puedes encriptar datos en un disco en la zona us-west1-a mediante una clave en us-west1 o global.
  • Puedes encriptar instancias globales mediante el uso de claves en cualquier ubicación.
  • La configuración de CMEK para notebooks administrados por el usuario no configura de forma automática las CMEK en otros productos de Google Cloud que uses. Para usar CMEK a fin de encriptar datos en otros productos de Google Cloud, debes completar la configuración adicional.

Configura CMEK para la instancia de notebooks administrados por el usuario

En las siguientes secciones, se describe cómo crear un llavero de claves y una clave en Cloud Key Management Service, cómo otorgar permisos de encriptador y desencriptador de cuenta de servicio para tu clave y cómo crear una instancia de notebooks administrados por el usuario que use CMEK.

Antes de comenzar

Recomendamos usar una configuración que admita una separación de obligaciones. Si deseas configurar CMEK para notebooks administrados por el usuario, puedes usar dos proyectos de Google Cloud diferentes:

  • Un proyecto de Cloud KMS: un proyecto para administrar tu clave de encriptación
  • Un proyecto de notebooks administrado por el usuario: un proyecto para acceder a instancias de notebooks administrados por el usuario y, además, interactuar con cualquier otro producto de Google Cloud que necesites para tu caso de uso

Como alternativa, puedes usar un solo proyecto de Google Cloud. Para hacerlo, usa el mismo proyecto para todas las tareas siguientes.

Configura el proyecto de Cloud KMS

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  3. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  4. Habilita la API de Cloud KMS.

    Habilita la API

  5. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  6. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  7. Habilita la API de Cloud KMS.

    Habilita la API

Configura el proyecto de los notebooks administrados por el usuario

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  3. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  4. Habilita Notebooks API.

    Habilita la API

  5. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  6. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  7. Habilita Notebooks API.

    Habilita la API

Configura la CLI de Google Cloud

La CLI de gcloud es obligatoria en algunos pasos de esta página y opcional en otros.

Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

gcloud init

Crea un llavero de claves y una clave

Cuando crees un llavero de claves y una clave, ten en cuenta los siguientes requisitos:

  • Cuando elijas la ubicación de tu llavero de claves, usa global o la ubicación en la que se encuentra la instancia de notebooks administrados por el usuario.

  • Asegúrate de crear el llavero de claves y la clave en el proyecto de Cloud KMS.

Para crear un llavero de claves y una clave, consulta Crea claves de encriptación simétricas.

Otorga permisos de notebooks administrados por el usuario

A fin de usar CMEK en la instancia de notebook administrada por el usuario, debes otorgar permiso a la instancia de notebook administrada por el usuario para encriptar y desencriptar datos con la clave.

Determina la cuenta de servicio que se usará

Los notebooks administrados por el usuario usan una cuenta de servicio para ejecutar tu instancia de notebook administrada por el usuario. Esta cuenta de servicio es la cuenta de servicio predeterminada de Compute Engine o una cuenta de servicio que especifiques cuando crees la instancia.

Si la cuenta de servicio es la cuenta de servicio predeterminada de Compute Engine, completa lo siguiente para encontrar la dirección de correo electrónico de la cuenta de servicio:

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

    Ir a IAM

  2. Busca la principal con el nombre Compute Engine default service account.

    Toma nota de la dirección de correo electrónico de esta cuenta de servicio y úsala en los pasos siguientes a fin de otorgarle permiso para encriptar y desencriptar datos con la clave.

Otorga permiso a la cuenta de servicio

Otorga permiso mediante la consola de Google Cloud o Google Cloud CLI.

Consola

  1. En la consola de Google Cloud, ve a la página Claves criptográficas.

    Ir a Claves criptográficas

  2. Selecciona tu proyecto de Cloud KMS.

  3. Haz clic en el nombre del llavero de claves que creaste en Crea un llavero de claves y una clave. Se abrirá la página Detalles del llavero de claves.

  4. Selecciona la casilla de verificación de la clave que creaste en Crea un llavero de claves y una clave. Si no hay un panel de información etiquetado con el nombre de la clave que ya esté abierto, haz clic en Mostrar panel de información.

  5. En el panel de información, haz clic en  Agregar miembro. Se abre el cuadro de diálogo Agregar miembros a “KEY_NAME. En este cuadro de diálogo, haz la siguiente acción:

    1. En el campo Miembros nuevos, ingresa la dirección de correo electrónico de la cuenta de servicio para tu instancia.

    2. En la lista Seleccionar un orl, haz clic en Cloud KMS y, luego, selecciona la función Encriptador/desencriptador de CryptoKey de Cloud KMS.

    3. Haz clic en Guardar.

gcloud

Ejecuta el siguiente comando:

gcloud kms keys add-iam-policy-binding KEY_NAME \
    --keyring=KEY_RING_NAME \
    --location=REGION \
    --project=KMS_PROJECT_ID \
    --member=serviceAccount:SERVICE_ACCOUNT \
    --role=roles/cloudkms.cryptoKeyEncrypterDecrypter

Reemplaza lo siguiente:

  • KEY_NAME: Es el nombre de la clave que creaste en Crea un llavero de claves y una clave.
  • KEY_RING_NAME: Es el llavero de claves que creaste en Crea un llavero de claves y una clave.
  • REGION: Es la región en la que creaste el llavero de claves.
  • KMS_PROJECT_ID: Es el ID del proyecto de Cloud KMS.
  • SERVICE_ACCOUNT: la dirección de correo electrónico de la cuenta de servicio de tu instancia

Crea una instancia de notebooks administrados por el usuario con CMEK

Después de otorgar a tu instancia de notebooks administrados por el usuario permiso para encriptar y desencriptar datos con tu clave, puedes crear una instancia de notebooks administrados por el usuario que encripte los datos con esta clave.

En los siguientes ejemplos, se muestra cómo encriptar y desencriptar datos con la clave mediante la consola de Google Cloud o la CLI de gcloud.

Console

Para crear una instancia de notebook administrada por el usuario con una clave de encriptación administrada por el cliente, sigue estos pasos:

  1. En la consola de Google Cloud, ve a la página Notebooks administrados por el usuario. O bien, dirígete a notebook.new (https://notebook.new) y omite el siguiente paso.

    Ir a Notebooks administrados por el usuario

  2. Haz clic en Nuevo notebook y elige Personalizar.

  3. En la página Crear un notebook administrado por el usuario, en la sección Detalles, proporciona la siguiente información para tu instancia nueva:

    • Nombre: un nombre para tu instancia nueva
    • Región: es la región en la que se encuentran la clave y el llavero de claves.
    • Zona: selecciona una zona dentro de la región que elegiste.
  4. Selecciona la sección Discos.

  5. Para usar las claves de encriptación administradas por el cliente, en Encriptación, selecciona Clave de encriptación administrada por el cliente (CMEK).

  6. Haz clic en Selecciona una clave administrada por el cliente.

    • Si la clave administrada por el cliente que deseas usar está en la lista, selecciónala.
    • Si la clave administrada por el cliente que deseas usar no está en la lista, ingresa el ID de recurso de tu clave administrada por el cliente. El ID de recurso de tu clave administrada por el cliente será similar al siguiente:

        projects/NOTEBOOKS_PROJECT_NUMBER/locations/global/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
      

      Reemplaza lo siguiente:

  7. Completa el resto del diálogo de creación de la instancia y, luego, haz clic en Crear.

  8. Vertex AI Workbench crea una instancia de notebook administrada por el usuario en función de las propiedades que especificaste y, luego, inicia la instancia de forma automática. Cuando la instancia está lista para usarse, Vertex AI Workbench activa un vínculo Abrir JupyterLab.

gcloud

Para usar la CLI de gcloud a fin de crear una instancia de notebooks administrados por el usuario con una clave de encriptación administrada por el cliente, ejecuta el siguiente comando. En este ejemplo, se supone que deseas crear una instancia de notebooks administrados por el usuario con un tipo de máquina n1-standard-1 y un disco de arranque persistente estándar de 100 GB.

gcloud notebooks instances create notebook-vm-cmek \
    --location=REGION \
    --vm-image-family=IMAGE_FAMILY \
    --vm-image-project=deeplearning-platform-release \
    --machine-type="n1-standard-1" \
    --boot-disk-type="PD_STANDARD" \
    --boot-disk-size=100 \
    --kms-key=KEY_NAME \
    --kms-project=KMS_PROJECT_ID \
    --kms-location=REGION \
    --kms-keyring=KEY_RING_NAME \
    --disk-encryption=CMEK \
    --metadata='proxy-mode=project_editors'

Reemplaza lo siguiente:

  • REGION: Es la región en la que creaste el llavero de claves y en la que planeas crear la instancia nueva de notebooks administrados por el usuario.
  • IMAGE_FAMILY: La familia de imágenes que deseas usar para crear la instancia de notebooks administrados por el usuario.
  • KEY_NAME: Es el nombre de la clave que creaste en Crea un llavero de claves y una clave.
  • KMS_PROJECT_ID: Es el ID del proyecto de Cloud KMS.
  • KEY_RING_NAME: Es el llavero de claves que creaste en Crea un llavero de claves y una clave.

¿Qué sigue?