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 los recursos.
Puedes leer más sobre los beneficios específicos de usar CMEK para los recursos de Vertex AI en esta sección. 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 para los recursos de Vertex AI y se explica cómo configurar un trabajo de entrenamiento a fin de que use CMEK.
CMEK para recursos de Vertex AI
En las siguientes secciones, se describe la información básica sobre CMEK para los recursos de Vertex AI que debes comprender antes de configurar CMEK para los trabajos.
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 un trabajo de entrenamiento de AutoML o personalizado, tu código se ejecuta en una o más instancias de máquina virtual (VM) administradas por Vertex AI. Cuando habilitas CMEK para los recursos de Vertex AI, la clave que designes, en lugar de una clave administrada por Google, se usa para encriptar datos en los discos de arranque de estas VM. La clave CMEK encripta las siguientes categorías de datos:
- La copia del código en las VM.
- Cualquier dato que se cargue con el código.
- Cualquier dato temporal que el código guarde en el disco local.
- Modelos con entrenamiento de AutoML.
- Archivos de medios (datos) subidos como conjuntos de datos de medios.
En general, la clave CMEK no encripta los metadatos asociados con tu operación, como el nombre y la región del trabajo, o el nombre visible de un conjunto de datos. Los metadatos asociados con las operaciones siempre se encriptan mediante el mecanismo de encriptación predeterminado de Google.
En los conjuntos de datos, cuando un usuario importa datos a un conjunto de datos, las anotaciones y los elementos de datos están encriptados con CMEK. El nombre visible del conjunto de datos no está encriptado con CMEK.
Para los modelos, los modelos almacenados en el sistema de almacenamiento (por ejemplo, el disco) están encriptados con CMEK. Todos los resultados de la evaluación del modelo están encriptados con CMEK.
En endpoints, todos los archivos del modelo usados para la implementación del modelo en el extremo están encriptados con CMEK. Esto no incluye ningún dato en la memoria.
En la predicción por lotes, los archivos temporales (como los archivos de modelo, los registros y los discos de VM) que se usan para ejecutar el trabajo de predicción por lotes están encriptados con CMEK. Los resultados de la predicción por lotes se almacenan en el destino que proporcionó el usuario. En consecuencia, Vertex AI respeta el valor predeterminado de la configuración de encriptación del destino. De lo contrario, los resultados también se encriptarán con CMEK.
En el etiquetado de datos, todos los archivos de entrada (imagen, texto, video, tabulares), discusiones temporales (por ejemplo, preguntas, comentarios) y salida (resultado de etiquetado) están encriptados con CMEK. Los nombres de visualización de las especificaciones de anotación no están encriptados con CMEK.
Claves externas
Puedes usar Cloud External Key Manager (Cloud EKM) a fin de crear claves externas, que administras, para encriptar datos dentro de Google Cloud.
Cuando usas una clave de Cloud EKM, Google no tiene control sobre la disponibilidad de tu clave administrada de forma externa. Si solicitas acceso a un recurso encriptado con una clave administrada de forma externa y la clave no está disponible, Vertex AI rechazará la solicitud. Puede haber un retraso de hasta 10 minutos antes de que puedas acceder al recurso una vez que la clave esté disponible.
Para obtener más consideraciones sobre el uso de claves externas, consulta Cloud External Key Manager.
Usa CMEK con otros productos de Google Cloud
La configuración de CMEK para los recursos de Vertex AI no configura de forma automática CMEK para otros productos de Google Cloud que usas junto con Vertex AI. Para usar CMEK a fin de encriptar datos en otros productos de Google Cloud, se requiere una configuración adicional. Por ejemplo:
Cloud Storage: Cuando realizas un entrenamiento personalizado, por lo general, Vertex AI carga tus datos desde Cloud Storage. Cuando usas una aplicación de entrenamiento de Python y un contenedor previamente compilado para el entrenamiento, Vertex AI también carga tu código desde un bucket de Cloud Storage. Además, algunos trabajos de entrenamiento exportan artefactos de modelo entrenados (por ejemplo, un directorio de SaveModel de TensorFlow) a un bucket de Cloud Storage como parte del resultado.
Para asegurarte de que los datos en Cloud Storage estén encriptados mediante CMEK, lee la guía de Cloud Storage para usar claves de encriptación administradas por el cliente. Puedes configurar la clave de encriptación como la clave predeterminada para los buckets de Cloud Storage que usas con Vertex AI o puedes usarla con el fin de encriptar objetos específicos.
Artifact Registry: Cuando usas un contenedor personalizado para el entrenamiento, puedes configurar Vertex AI a fin de cargar la imagen de contenedor desde Artifact Registry.
Para asegurarte de que la imagen de contenedor esté encriptada con CMEK, lee la guía de Artifact Registry para CMEK.
Cloud Logging: Cuando ejecutas un trabajo de entrenamiento, el entrenamiento de Vertex AI guarda registros en Logging. Estos registros no están encriptados mediante CMEK. Sin embargo, si usas el Enrutador de registros, puedes configurar CMEK para ciertos archivos temporales que crea el Enrutador de registros.
Recursos actualmente compatibles con CMEK
Los recursos actuales de Vertex AI que abarca CMEK son los siguientes. La compatibilidad de CMEK con las funciones de Vista previa también se encuentra en el estado Vista previa.
Recurso | Material encriptado | Vínculos de documentación |
---|---|---|
Conjunto de datos |
|
|
Modelo |
|
|
Extremo |
|
|
CustomJob (excluye recursos que usan una VM de TPU) |
|
|
HyperparameterTuningJob (excluye recursos que usan una VM de TPU) |
|
|
TrainingPipeline (excluye recursos que usan una VM de TPU) |
|
|
BatchPredictionJob (excluye batchPrediction de imagen de AutoML) |
|
|
ModelDeploymentMonitoringJob |
|
|
PipelineJob |
|
|
MetadataStore |
|
|
TensorBoard |
|
|
Tienda de funciones |
|
Compatibilidad con CMEK para canalizaciones de ajuste de IA generativa
La compatibilidad con CMEK se proporciona en la canalización de ajuste de los siguientes modelos:
text-bison for PaLM 2
(GPU)BERT
T5
image-generation (GPU)
Limitaciones
La compatibilidad de CMEK no se proporciona en los siguientes casos:
- Predicción por lotes del modelo de imagen de AutoML (
BatchPredictionJob
) - Ajuste de TPU
Configura CMEK para tus recursos
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 Vertex AI para tu clave y cómo crear recursos que usen CMEK.
Antes de comenzar
En esta guía, se supone que usas dos proyectos de Google Cloud diferentes a fin de configurar CMEK para los datos de Vertex AI:
- Un proyecto para administrar la clave de encriptación (denominado “proyecto de Cloud KMS”)
- Un proyecto para acceder a datos o resultados de Vertex AI en Cloud Storage y, además, interactuar con cualquier otro producto de Google Cloud que necesites para el caso práctico (denominado “proyecto de AI Platform”).
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.
Configura el proyecto de Cloud KMS
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud KMS API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud KMS API.
Configura el proyecto de AI Platform
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI API.
Configura la CLI de Google Cloud
La CLI de gcloud es obligatoria en algunos pasos de esta guía y opcional en otros.Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
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 crees el llavero de claves, especifica una región que admita operaciones de Vertex IA como la ubicación del llavero de claves. El entrenamiento de Vertex AI solo admite CMEK cuando el recurso y la clave usan la misma región. No debes especificar una ubicación birregional, multirregional ni global para el llavero de claves.
Asegúrate de crear el llavero de claves y la clave en el proyecto de Cloud KMS.
Otorga permisos de Vertex AI
A fin de usar CMEK en los recursos, debes otorgar permiso a Vertex AI para encriptar y desencriptar datos con la clave. Vertex AI usa un agente de servicio administrado por Google para ejecutar operaciones mediante tus recursos. Esta cuenta de servicio se identifica con una dirección de correo electrónico que tiene el siguiente formato:
service-PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com
A fin de encontrar la cuenta de servicio adecuada para tu proyecto de AI Platform, ve a la página IAM en la consola de Google Cloud y busca el miembro que coincida con este formato de dirección de correo electrónico. Debes reemplazar la variable AI_PLATFORM_PROJECT_NUMBER por el número de proyecto de AI Platform. La cuenta de servicio también tiene el nombre Vertex AI Service Agent
.
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 la consola de Google Cloud o mediante la CLI de Google Cloud.
Consola de Google Cloud
En la consola de Google Cloud, haz clic en Seguridad y selecciona Administración de claves. Esto te llevará a la página Claves criptográficas y seleccionar tu proyecto de Cloud KMS.
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.
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.
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:- 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_PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com
. 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.
Haz clic en Guardar.
- 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:
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_PROJECT_NUMBER@gcp-sa-aiplatform.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_PROJECT_NUMBER: Es el número del proyecto de AI Platform, que anotaste en la sección anterior como parte de una dirección de correo electrónico de cuenta de servicio.
Crea recursos con la clave de KMS
Cuando creas un recurso compatible con CMEK nuevo, puedes especificar la clave como uno de los parámetros de creación.
Console
Cuando creas un nuevo recurso compatible con CMEK en la sección Vertex AI de la consola de Google Cloud, puedes seleccionar tu clave en el sección general o avanzada:
Línea de REST y CMD
Cuando crees un recurso compatible, agrega un objeto encryptionSpec
a la solicitud y configura el campo encryptionSpec.kmsKeyName
para que apunte a tu recurso de clave.
Por ejemplo, cuando creas un recurso dataset
, especificarías tu clave en el cuerpo de la solicitud:
{
"displayName": DATASET_NAME,
"metadataSchemaUri": METADATA_URI,
"encryptionSpec": {
"kmsKeyName": "projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME"
}
}
Java
Cuando crees un recurso admitido, configura EncryptionSpec
para que apunte a tu recurso de clave. Consulta la documentación de la biblioteca cliente de Vertex IA para Java a fin de obtener más información.
Node.js
Cuando crees un recurso admitido, configura el parámetro encryptionSpec
para que apunte a tu recurso de clave. Consulta la documentación de la biblioteca cliente de Vertex AI para Node.js a fin de obtener más información.
Python
Cuando crees un recurso admitido, configura el parámetro encryption_spec
para que apunte a tu recurso de clave. Consulta la documentación Cliente de Python para Cloud AI Platform a fin de obtener más información.
¿Qué sigue?
- Obtén más información sobre CMEK en Google Cloud.
- Obtén más información sobre cómo usar CMEK con otros productos de Google Cloud.