Claves de encriptado gestionadas por el cliente

De forma predeterminada, Vertex AI Workbench cifra el contenido del cliente en reposo. Vertex AI Workbench se encarga del cifrado sin que tengas que hacer nada más. Esta opción se llama Cifrado predeterminado de Google.

Si quieres controlar tus claves de cifrado, puedes usar claves de cifrado gestionadas por el cliente (CMEKs) en Cloud KMS con servicios integrados con CMEKs, como Vertex AI Workbench. Si usas claves de Cloud KMS, tendrás control sobre su nivel de protección, ubicación, calendario de rotación, permisos de uso y acceso, y límites criptográficos. Además, Cloud KMS te permite ver los registros de auditoría y controlar los ciclos de vida de las claves. En lugar de que Google sea el propietario y gestione las claves de cifrado de claves (KEKs) simétricas que protegen tus datos, tú controlas y gestionas estas claves en Cloud KMS.

Una vez que hayas configurado tus recursos con CMEKs, la experiencia de acceder a tus recursos de Vertex AI Workbench será similar a la de usar el cifrado predeterminado de Google. Para obtener más información sobre las opciones de encriptado, consulta Claves de encriptado gestionadas por el cliente (CMEK).

En esta página se describen algunas ventajas y limitaciones específicas de usar CMEK con cuadernos gestionados por el usuario y se muestra cómo configurar una nueva instancia de cuadernos gestionados por el usuario para que use CMEK.

Ventajas de CMEK

En general, las CMEKs son más útiles si necesitas tener un control total sobre las claves que se usan para cifrar tus datos. Con CMEK, puedes gestionar tus claves en Cloud Key Management Service. Por ejemplo, puedes rotar o inhabilitar una clave, o bien configurar una programación de rotación mediante la API de Cloud KMS.

Cuando ejecutas una instancia de cuadernos gestionados por el usuario, esta se ejecuta en una máquina virtual gestionada por Vertex AI Workbench. Cuando habilitas las CMEKs en una instancia de cuadernos gestionados por el usuario, Vertex AI Workbench usa la clave que designes en lugar de una clave gestionada por Google para cifrar los datos de los discos de arranque de la VM.

La clave CMEK no cifra los metadatos, como el nombre y la región de la instancia, asociados a tu instancia de cuadernos gestionados por el usuario. Los metadatos asociados a las instancias de notebooks gestionadas por el usuario siempre se cifran con el mecanismo de cifrado predeterminado de Google.

Limitaciones de CMEK

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

  • Puedes cifrar instancias de cuadernos regionales gestionados por el usuario con claves de la misma ubicación o de la ubicación global. Por ejemplo, puedes cifrar datos en un disco de la zona us-west1-a con una clave de us-west1 o global.
  • Puedes cifrar instancias globales usando claves de cualquier ubicación.
  • Configurar CMEK para los cuadernos gestionados por el usuario no configura automáticamente CMEK para otros productos de Google Cloud que utilices. Para usar CMEK y cifrar datos en otros productos de Google Cloud , debes completar una configuración adicional.

Configurar CMEK en una instancia de cuadernos gestionados por usuarios

En las siguientes secciones se describe cómo crear un conjunto de claves y una clave en Cloud Key Management Service, cómo conceder a la cuenta de servicio permisos de cifrado y descifrado para tu clave, y cómo crear una instancia de cuadernos gestionada por el usuario que utilice CMEK.

Antes de empezar

Te recomendamos que utilices una configuración que admita la separación de funciones. Para configurar CMEK en cuadernos gestionados por el usuario, puedes usar dos proyectos de Google Cloud independientes:

  • Un proyecto de Cloud KMS: un proyecto para gestionar tu clave de cifrado
  • Un proyecto de cuadernos gestionados por usuarios: un proyecto para acceder a instancias de cuadernos gestionados por usuarios e interactuar con cualquier otro producto Google Cloud que necesites para tu caso práctico.

También puedes usar un solo Google Cloud proyecto. Para ello, utiliza el mismo proyecto en todas las tareas siguientes.

Configurar el proyecto de Cloud KMS

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Cloud KMS API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Cloud KMS API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  8. Configurar el proyecto de cuadernos gestionados por usuarios

    1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
    2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

      Roles required to select or create a project

      • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
      • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

      Go to project selector

    3. Verify that billing is enabled for your Google Cloud project.

    4. Enable the Notebooks API.

      Roles required to enable APIs

      To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

      Enable the API

    5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

      Roles required to select or create a project

      • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
      • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

      Go to project selector

    6. Verify that billing is enabled for your Google Cloud project.

    7. Enable the Notebooks API.

      Roles required to enable APIs

      To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

      Enable the API

    8. Configurar Google Cloud CLI

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

      Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:

      gcloud init

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

      Crear un conjunto de claves y una clave

      Cuando crees un conjunto 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 encuentre tu instancia de cuadernos gestionados por usuarios.

      • Crea el conjunto de claves y la clave en tu proyecto de Cloud KMS.

      Para crear un conjunto de claves y una clave, consulta Crear claves de cifrado simétricas.

      Conceder permisos de cuadernos gestionados por usuarios

      Para usar CMEK en tu instancia de cuadernos gestionados por el usuario, debes concederle permiso para cifrar y descifrar datos con tu clave.

      Determinar la cuenta de servicio que se va a usar

      Los cuadernos gestionados por usuarios usan una cuenta de servicio para ejecutar la instancia de cuadernos gestionados por usuarios. Esta cuenta de servicio es la cuenta de servicio predeterminada de Compute Engine o una cuenta de servicio que especifiques al crear la instancia.

      Si la cuenta de servicio es la predeterminada de Compute Engine, sigue estos pasos para encontrar su dirección de correo:

      1. En la consola, ve a la página Gestión de identidades y accesos. Google Cloud

        Ir a IAM

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

        Anota la dirección de correo de esta cuenta de servicio y úsala en los pasos siguientes para concederle permiso para encriptar y desencriptar datos con tu clave.

      Conceder permiso a la cuenta de servicio

      Concede permisos mediante la Google Cloud consola o la interfaz de línea de comandos de Google Cloud.

      Consola

      1. En la Google Cloud consola, ve a la página Gestión de claves.

        Ir a Gestión de claves

      2. Selecciona tu proyecto de Cloud KMS.

      3. Haz clic en el nombre del conjunto de claves que has creado en Crear un conjunto de claves y una clave. Se abrirá la página Detalles del conjunto de claves.

      4. Selecciona la casilla de la clave que has creado en Crear un conjunto de claves y una clave. Si aún no se ha abierto un panel de información con el nombre de tu clave, haz clic en Mostrar panel de información.

      5. En el panel de información, haz clic en  Añadir miembro. Se abrirá el cuadro de diálogo Añadir miembros a "KEY_NAME". En este cuadro de diálogo, haz lo siguiente:

        1. En el campo Miembros nuevos, introduce la dirección de correo de la cuenta de servicio de tu instancia.

        2. En la lista Selecciona un rol, haz clic en Cloud KMS y, a continuación, selecciona el rol Encargado del encriptado y desencriptado de la clave criptográfica 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
      

      Haz los cambios siguientes:

      Crear una instancia de cuadernos gestionados por usuarios con CMEK

      Una vez que hayas concedido a tu instancia de cuadernos gestionados por el usuario permiso para encriptar y desencriptar datos con tu clave, podrás crear una instancia de cuadernos gestionados por el usuario que encripta datos con esta clave.

      En los siguientes ejemplos se muestra cómo cifrar y descifrar datos con tu clave mediante la consola Google Cloud o gcloud CLI.

      Consola

      Para crear una instancia de cuadernos gestionados por usuarios con una clave de cifrado gestionada por el cliente, sigue estos pasos:

      1. En la Google Cloud consola, ve a la página Notebooks gestionados por el usuario. También puedes ir a notebook.new (https://notebook.new) y saltarte el siguiente paso.

        Ir a Cuadernos gestionados por usuarios

      2. Haz clic en  Nuevo cuaderno y, a continuación, selecciona Personalizar.

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

        • Nombre: el nombre de la nueva instancia
        • Región: la región en la que se encuentran la clave y el conjunto de claves.
        • Zona: una zona de la región que has seleccionado.
      4. Selecciona la sección Discos.

      5. Para usar claves de cifrado gestionadas por el cliente, en Cifrado, selecciona Clave de cifrado gestionada por el cliente (CMEK).

      6. Haz clic en Seleccionar una clave gestionada por el cliente.

        • Si la clave gestionada por el cliente que quieres usar está en la lista, selecciónala.
        • Si la clave gestionada por el cliente que quieres usar no aparece en la lista, introduce el ID de recurso de la clave gestionada por el cliente. El ID de recurso de tu clave gestionada por el cliente tiene este aspecto:

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

          Haz los cambios siguientes:

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

      8. Vertex AI Workbench crea una instancia de notebooks gestionados por el usuario en función de las propiedades que hayas especificado e inicia la instancia automáticamente. Cuando la instancia esté lista para usarse, Vertex AI Workbench activará un enlace Abrir JupyterLab.

      gcloud

      Para usar gcloud CLI y crear una instancia de cuadernos gestionados por el usuario con una clave de cifrado gestionada por el cliente, ejecuta el siguiente comando. En este ejemplo, se da por hecho que quieres crear una instancia de cuadernos gestionados por usuarios 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'

      Haz los cambios siguientes:

      • REGION: la región en la que has creado tu llavero y en la que tienes previsto crear tu instancia de cuadernos gestionados por el usuario
      • IMAGE_FAMILY: la familia de imágenes que quieras usar para crear tu instancia de cuadernos gestionados por el usuario
      • KEY_NAME: el nombre de la clave que has creado en Crear un conjunto de claves y una clave
      • KMS_PROJECT_ID: el ID de tu proyecto de Cloud KMS
      • KEY_RING_NAME: el conjunto de claves que has creado en Crear un conjunto de claves y una clave

      Siguientes pasos