Usa claves de encriptación administradas por el cliente (CMEK)

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) en tus instancias de AI Platform Notebooks.

Puedes leer más sobre los beneficios específicos de usar CMEK para AI Platform Notebooks en la siguiente sección de esta guía. Para obtener más información sobre las CMEK en general, incluso cuándo y por qué habilitarlas, consulta la documentación de Cloud Key Management Service.

En esta guía, se describen algunos beneficios de usar CMEK en AI Platform Notebooks y se describe cómo configurar una instancia nueva de AI Platform Notebooks para usar CMEK.

Información sobre CMEK para AI Platform Notebooks

En las siguientes secciones, se brinda información básica sobre CMEK para AI Platform Notebooks que debes comprender antes de configurar CMEK para las instancias de AI Platform Notebooks.

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 KMS. Por ejemplo, puedes rotar o inhabilitar una clave, o bien puedes configurar una programación de rotación mediante la API de Cloud KMS. Para obtener más información sobre las CMEK en general, incluso cuándo y por qué habilitarlas, consulta la documentación de Cloud KMS.

Cuando ejecutas una instancia de AI Platform Notebooks, la instancia se ejecuta en una máquina virtual (VM) administrada por AI Platform Notebooks. Cuando habilitas CMEK para una instancia de AI Platform Notebooks, la clave que designas, en lugar de una clave administrada por Google, se usa para encriptar datos en los discos de arranque de la VM.

La clave CMEK no encripta los metadatos asociados con tu instancia de AI Platform Notebooks, como el nombre y la región de la instancia. Los metadatos asociados con las instancias de AI Platform Notebooks siempre se encriptan mediante el mecanismo de encriptación predeterminado de Google.

Usa CMEK con otros productos de Google Cloud

Cuando se configuran las CMEK para AI Platform Notebooks, no se configuran de forma automática en otros productos de Google Cloud que usas junto con AI Platform Notebooks. Para usar CMEK a fin de encriptar datos en otros productos de Google Cloud, se requiere una configuración adicional.

Limitaciones

Las instancias regionales de AI Platform Notebooks se pueden encriptar mediante claves en la misma ubicación o en la ubicación global. Por ejemplo, un disco en la zona us-west1-a se puede encriptar mediante una clave en us-west1 o global. Las instancias globales se pueden encriptar mediante claves en cualquier ubicación.

Configura CMEK para la instancia de AI Platform Notebooks

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 la cuenta de servicio para tu clave y cómo crear una instancia de AI Platform Notebooks que use CMEK.

Antes de comenzar

En esta guía, se da por sentado que usas dos proyectos de Google Cloud separados a fin de configurar CMEK para AI Platform Notebooks:

  • Un proyecto para administrar la clave de encriptación (denominado “proyecto de Cloud KMS”)
  • Un proyecto para acceder a AI Platform Notebooks y, además, interactuar con cualquier otro producto de Google Cloud que necesites para el caso práctico (denominado “proyecto de AI Platform Notebooks”).

Esta configuración recomendada admite una separación de obligaciones.

Como alternativa, puedes usar un solo proyecto de Google Cloud para toda la guía. Para hacerlo, usa el mismo proyecto para todas las tareas que hacen referencia al proyecto de Cloud KMS y las tareas que hacen referencia al proyecto de AI Platform Notebooks.

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 Google Cloud Console, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyecto

  3. Asegúrate de que la facturación esté habilitada para tu proyecto de Cloud. Descubre cómo confirmar que tienes habilitada la facturación en un proyecto.

  4. Habilita la API Cloud KMS.

    Habilita la API

Configura el proyecto de AI Platform Notebooks

  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 Google Cloud Console, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyecto

  3. Asegúrate de que la facturación esté habilitada para tu proyecto de Cloud. Descubre cómo confirmar que tienes habilitada la facturación en un proyecto.

  4. Habilita las AI Platform Notebooks API.

    Habilita la API

Configura la herramienta de línea de comandos de gcloud

La herramienta gcloud es obligatoria en algunos pasos de esta guía y opcional en otros. Instala e inicializa el SDK de Cloud.

Crea un llavero de claves y una clave

Sigue la guía de Cloud KMS para crear claves simétricas a fin de crear un llavero de claves y una clave. Cuando elijas la ubicación del llavero de claves, usa global o la ubicación en la que será la instancia de AI Platform Notebooks. Asegúrate de crear el llavero de claves y la clave en el proyecto de Cloud KMS.

Otorga permisos de AI Platform Notebooks

Si deseas usar CMEK en tu instancia de AI Platform Notebooks, debes otorgar permiso a AI Platform Notebooks para encriptar y desencriptar datos con la clave. AI Platform Notebooks usa una cuenta de servicio administrada por Google para ejecutar tu instancia de AI Platform Notebooks. Esta cuenta de servicio se identifica con una dirección de correo electrónico que tiene el siguiente formato:

service-AI_PLATFORM_NOTEBOOKS_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com

A fin de encontrar la cuenta de servicio adecuada para tu proyecto de AI Platform Notebooks, ve a la página IAM en Google Cloud Console y busca el miembro que coincida con este formato de dirección de correo electrónico. Debes reemplazar la variable AI_PLATFORM_NOTEBOOKS_PROJECT_NUMBER por el número de proyecto de AI Platform Notebooks. La cuenta de servicio también tiene el nombre Compute Engine default service account.

Ir a la página IAM

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. Puedes otorgar permisos mediante Google Cloud Console o con la herramienta de línea de comandos de gcloud:

Cloud Console

  1. En Cloud Console, ve a la página Claves criptográficas y selecciona el proyecto de Cloud KMS.

    Ir a la página Claves criptográficas

  2. Haz clic en el nombre del llavero de claves que creaste en la sección anterior de esta guía para ir a la página Detalles del llavero de claves.

  3. Selecciona la casilla de verificación de la clave que creaste en una sección anterior de esta guía. 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.

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

    1. En el cuadro Miembros nuevos, ingresa la dirección de correo electrónico de la cuenta de servicio que anotaste en la sección anterior: service-AI_PLATFORM_NOTEBOOKS_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com.
    2. En la lista desplegable Seleccionar una función, 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-AI_PLATFORM_NOTEBOOKS_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com \
  --role=roles/cloudkms.cryptoKeyEncrypterDecrypter

En este comando, reemplaza los siguientes marcadores de posición:

  • KEY_NAME: Es el nombre de la clave que creaste en una sección anterior de esta guía.
  • KEY_RING_NAME: Es el llavero de claves que creaste en una sección anterior de esta guía.
  • REGION: Es la región en la que creaste el llavero de claves.
  • KMS_PROJECT_ID: Es el ID del proyecto de Cloud KMS.
  • AI_PLATFORM_NOTEBOOKS_PROJECT_NUMBER: Es el número del proyecto de AI Platform Notebooks, que anotaste en la sección anterior como parte de una dirección de correo electrónico de cuenta de servicio.

Crea una instancia de Notebooks de AI Platform con CMEK

Ahora que le otorgaste permiso a AI Platform Notebooks para encriptar y desencriptar datos mediante la clave, puedes crear una instancia de AI Platform Notebooks que encripte los datos con esta clave.

En los siguientes ejemplos, se muestra cómo hacerlo con Google Cloud Console y la herramienta de gcloud.

Cloud Console

Para usar Cloud Console con el fin de crear una instancia de AI Platform Notebooks con una clave de encriptación administrada por el cliente, sigue estos pasos:

  1. Ve a la página AI Platform Notebooks en Google Cloud Console.

    Ir a la página AI Platform Notebooks

  2. Haz clic en New Instance (Instancia nueva) y selecciona Customize instance (Personalizar instancia).

    Crea una nueva instancia de AI Platform Notebooks con opciones

  3. En la página Nueva instancia de notebook, proporciona la siguiente información sobre la instancia nueva:

    • Nombre de la instancia: proporciona un nombre para la instancia nueva.
    • Región: ingresa la región en la que se encuentran tu clave y el llavero de claves.
    • Zona: selecciona una zona dentro de la región que elegiste.
    • Entorno: selecciona el entorno y el sistema operativo que deseas usar.
    • Tipo de máquina: selecciona la cantidad de CPU y de RAM para la instancia nueva.
    • GPU: selecciona el Tipo de GPU y Número de GPU para tu instancia nueva.

      Selecciona la opción Instalar automáticamente el controlador de GPU de NVIDIA.

  4. Para cambiar la configuración de encriptación predeterminada, expande la sección Discos(s).

  5. En Encriptación, selecciona Clave administrada por el cliente para usar la encriptación administrada por el cliente.

  6. Haz clic en Seleccionar una clave administrada por el cliente. Si la clave administrada por el cliente que deseas usar se encuentra en la lista desplegable, selecciónala. De lo contrario, ingresa el ID de recurso para tu clave administrada por el cliente. El ID de recurso de tu clave administrada por el cliente será similar al siguiente:

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

  7. Haga clic en Crear.

  8. AI Platform Notebooks crea una instancia nueva en función de las propiedades que especificaste. Un vínculo Abrir JupyterLab se activa cuando está lista para usarse.

gcloud

Para usar la herramienta de gcloud a fin de crear una instancia de AI Platform Notebooks 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 AI Platform Notebooks 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'

En este comando, reemplaza los siguientes marcadores de posición:

  • REGION: la región en la que creaste el llavero de claves y en la que planeas crear la instancia de AI Platform Notebooks nueva.
  • IMAGE_FAMILY: La familia de imágenes que deseas usar para crear tus AI Platform Notebooks.
  • KEY_NAME: Es el nombre de la clave que creaste en una sección anterior de esta guía.
  • KMS_PROJECT_ID: Es el ID del proyecto de Cloud KMS.
  • KEY_RING_NAME: Es el llavero de claves que creaste en una sección anterior de esta guía.

¿Qué sigue?