Claves de encriptado gestionadas por el cliente (CMEK)

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. Cloud KMS también te permite monitorizar el uso de las claves, ver los registros de auditoría y controlar los ciclos de vida de las claves. En lugar de que Google sea el propietario y el gestor de 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 Vertex AI Workbench y se muestra cómo configurar una nueva instancia de Vertex AI Workbench para usar CMEK.

Para obtener más información sobre cómo usar CMEK en Vertex AI, consulta la página de CMEK de Vertex AI.

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 Vertex AI Workbench, esta se ejecuta en una máquina virtual gestionada por Vertex AI Workbench. Cuando habilitas CMEK en una instancia de Vertex AI Workbench, 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 Vertex AI Workbench. Los metadatos asociados a las instancias de Vertex AI Workbench 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 fallos, Google recomienda proteger las instancias regionales de Vertex AI Workbench con claves en la misma ubicación.

  • Puedes cifrar instancias regionales de Vertex AI Workbench 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 Vertex AI Workbench 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 para una instancia de Vertex AI Workbench

En las siguientes secciones se describe cómo crear un conjunto de claves y una clave en el servicio de gestión de claves de Cloud, cómo conceder a la cuenta de servicio los permisos de cifrado y descifrado de tu clave, y cómo crear una instancia de Vertex AI Workbench que use CMEK.

Antes de empezar

Te recomendamos que utilices una configuración que admita la separación de funciones. Para configurar CMEK en Vertex AI Workbench, puedes usar dos proyectos independientes: Google Cloud

  • Un proyecto de Cloud KMS: un proyecto para gestionar tu clave de cifrado
  • Un proyecto de Vertex AI Workbench: un proyecto para acceder a instancias de Vertex AI Workbench e interactuar con cualquier otro producto de 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 Vertex AI Workbench

    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 conjunto de claves, usa global o la ubicación en la que se encuentre tu instancia de Vertex AI Workbench.

      • 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 Vertex AI Workbench

      Para usar CMEK en tu instancia de Vertex AI Workbench, debes conceder permiso a la instancia para cifrar y descifrar datos con tu clave. Concede este permiso al agente de servicio de tu proyecto y a la cuenta de servicio de Compute Engine.

      Para encontrar las cuentas específicas de tu proyecto de Vertex AI Workbench, usa la Google Cloud consola.

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

        Ir a IAM

      2. Selecciona Incluir concesiones de roles proporcionadas por Google.

      3. Busca los miembros que coincidan con los siguientes formatos de dirección de correo. Anota las direcciones de correo y úsalas en los pasos siguientes.

        • La dirección de correo del agente de servicio de tu proyecto tiene el siguiente formato:

          service-NOTEBOOKS_PROJECT_NUMBER@gcp-sa-notebooks.iam.gserviceaccount.com
        • La dirección de correo de la cuenta de servicio de Compute Engine tiene el siguiente formato:

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

        Sustituye NOTEBOOKS_PROJECT_NUMBER por el número del proyecto de tu proyecto de Vertex AI Workbench.

        Para conceder a estas cuentas permiso para encriptar y desencriptar datos con tu clave, puedes usar la Google Cloud consola o la CLI 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 del agente de servicio de tu proyecto:

            service-NOTEBOOKS_PROJECT_NUMBER@gcp-sa-notebooks.iam.gserviceaccount.com
          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.

        6. Repite estos pasos con el agente de servicio de Compute Engine:

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

        gcloud

        1. Para conceder al agente de servicio de tu proyecto permiso para cifrar y descifrar datos con tu clave, 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-NOTEBOOKS_PROJECT_NUMBER@gcp-sa-notebooks.iam.gserviceaccount.com \
            --role=roles/cloudkms.cryptoKeyEncrypterDecrypter

          Haz los cambios siguientes:

          • KEY_NAME: el nombre de la clave que has creado en Crear un conjunto de claves y una clave
          • KEY_RING_NAME: el conjunto de claves que has creado en Crear un conjunto de claves y una clave
          • REGION: la región en la que has creado tu conjunto de claves
          • KMS_PROJECT_ID: el ID de tu proyecto de Cloud KMS
          • NOTEBOOKS_PROJECT_NUMBER: el número de proyecto de tu proyecto de Vertex AI Workbench, que has anotado en la sección anterior como parte de una dirección de correo de una cuenta de servicio.
        2. Para conceder permiso a la cuenta de servicio de Compute Engine para encriptar y desencriptar datos con tu clave, 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-NOTEBOOKS_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com \
            --role=roles/cloudkms.cryptoKeyEncrypterDecrypter

      Crear una instancia de Vertex AI Workbench con CMEK

      Una vez que hayas concedido a tu instancia de Vertex AI Workbench permiso para cifrar y descifrar datos con tu clave, podrás crear una instancia de Vertex AI Workbench que cifre datos con esta clave.

      En el siguiente ejemplo se muestra cómo encriptar y desencriptar datos con tu clave mediante la consola Google Cloud .

      Para crear una instancia de Vertex AI Workbench con una clave de cifrado gestionada por el cliente, sigue estos pasos:

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

        Ir a Instancias

      2. Haz clic en  Crear.

      3. En el cuadro de diálogo Nueva instancia, haz clic en Opciones avanzadas.

      4. En el cuadro de diálogo Crear instancia, vaya a la sección Detalles y proporcione la siguiente información sobre la 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.
      5. En la sección Discos, en Encriptado, 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 el siguiente 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.

      Siguientes pasos