Par défaut, Google Cloud chiffre automatiquement les données au repos à l'aide de clés de chiffrement gérées par Google. Si vous avez des exigences réglementaires ou de conformité spécifiques concernant les clés qui protègent vos données, vous pouvez utiliser des clés de chiffrement gérées par le client (CMEK) pour vos ressources.
Pour en savoir plus sur les avantages particuliers liés à l'utilisation des clés CMEK avec les ressources Vertex AI, consultez la section suivante de ce guide. Pour plus d'informations sur le chiffrement CMEK en général, y compris quand et pourquoi l'activer, consultez la documentation de Cloud Key Management Service.
Ce guide décrit certains avantages liés à l'utilisation des clés CMEK avec les ressources Vertex AI et explique comment configurer un job d'entraînement pour qu'il utilise des clés CMEK.
Pour en savoir plus sur l'utilisation des clés CMEK pour Colab Enterprise, consultez la page Clés CMEK pour Colab Enterprise.
CMEK pour les ressources Vertex AI
Les sections suivantes décrivent les informations de base à connaître sur les clés CMEK pour les ressources Vertex AI avant de les configurer pour vos jobs.
Avantages du chiffrement CMEK
D'une manière générale, CMEK est particulièrement utile si vous avez besoin d'un contrôle total sur les clés utilisées pour chiffrer vos données. Avec CMEK, vous pouvez gérer vos clés dans Cloud KMS. Par exemple, vous pouvez désactiver des clés, les alterner ou définir un calendrier de rotation à l'aide de l'API Cloud KMS. Pour plus d'informations sur CMEK en général, y compris quand et pourquoi l'activer, consultez la documentation Cloud KMS.
Lorsque vous exécutez une tâche AutoML ou personnalisée d'entraînement, votre code s'exécute sur une ou plusieurs instances de machine virtuelle (VM). géré par Vertex AI. Lorsque vous activez CMEK pour Vertex AI, la clé que vous désignez, et non une clé gérée par Google, est utilisée pour chiffrer les données sur les disques de démarrage de ces VM. La clé CMEK chiffre les types de données suivants :
- La copie de votre code sur les VM
- Toutes les données qui sont chargées par votre code
- Toutes les données temporaires qui sont enregistrées sur le disque local par votre code
- Modèles entraînés automatiquement
- Fichiers multimédias (données) importés dans des ensembles de données multimédias.
En général, la clé CMEK ne chiffre pas les métadonnées associées à votre opération, telles que le nom et la région de la tâche, ou le nom à afficher d'un ensemble de données. Les métadonnées associées aux opérations sont toujours chiffrées à l'aide du mécanisme de chiffrement par défaut de Google.
Pour les ensembles de données, lorsqu'un utilisateur importe des données dans l'ensemble de données, les éléments de données et les annotations sont chiffrés par CMEK. Le nom à afficher de l'ensemble de données n'est pas chiffré avec le chiffrement CMEK.
Pour les modèles, les modèles stockés dans le système de stockage (par exemple, un disque) sont chiffrés avec CMEK. Tous les résultats d'évaluation du modèle sont chiffrés avec CMEK.
Pour les points de terminaison endpoints, tous les fichiers de modèle utilisés pour le déploiement de modèle dans le point de terminaison sont chiffrés par CMEK. Cela n'inclut pas les données en mémoire.
Pour la prédiction par lot, tous les fichiers temporaires (tels que les fichiers de modèle, les journaux, les disques de VM) utilisés pour exécuter le job de prédiction par lot sont chiffrés avec CMEK. Les résultats de la prédiction par lot sont stockés dans la destination fournie par l'utilisateur. Par conséquent, Vertex AI respecte la valeur par défaut de la configuration de chiffrement de la destination. Sinon, les résultats seront également chiffrés avec CMEK.
Pour l'étiquetage de données, tous les fichiers d'entrée (images, textes, vidéos, tabulaires), toutes les discussions temporaires (par exemple questions, commentaires) et toutes les sorties (résultats de libellé) sont chiffrés par CMEK. Les noms à afficher des spécifications d'annotation ne sont pas chiffrés avec le chiffrement CMEK.
Clés externes
Vous pouvez utiliser Cloud External Key Manager (Cloud EKM) pour créer des clés externes que vous gérez afin de chiffrer les données dans Google Cloud.
Lorsque vous utilisez une clé Cloud EKM, Google n'a aucun contrôle sur la disponibilité de votre clé gérée en externe. Si vous demandez l'accès à une ressource chiffrée avec une clé gérée en externe et que la clé n'est pas disponible, Vertex AI rejette la requête. Il peut s'écouler jusqu'à 10 minutes avant que vous ne puissiez accéder à la ressource une fois la clé disponible.
Pour plus d'informations sur l'utilisation des clés externes, consultez la section Cloud External Key Manager.
Utiliser CMEK avec d'autres produits Google Cloud
La configuration des clés CMEK pour les ressources Vertex AI ne permet pas de configurer automatiquement des clés CMEK pour les autres produits Google Cloud utilisés avec Vertex AI. Pour chiffrer des données dans d'autres produits Google Cloud avec CMEK, une configuration supplémentaire est requise. Exemple :
Cloud Storage: lorsque vous procédez à un entraînement personnalisé, Vertex AI charge généralement vos données à partir de Cloud Storage. Lorsque vous utilisez une application d'entraînement Python et un conteneur prédéfini pour l'entraînement, Vertex AI charge également votre code à partir d'un bucket Cloud Storage. En outre, certaines tâches d'entraînement effectuent également en sortie l'exportation des artefacts de modèle entraîné (par exemple, un répertoire SaveModel TensorFlow) vers un bucket Cloud Storage.
Pour vous assurer que vos données dans Cloud Storage sont chiffrées avec CMEK, consultez le guide Cloud Storage sur l'utilisation des clés de chiffrement gérées par le client. Vous pouvez définir votre clé de chiffrement en tant que clé par défaut pour le ou les buckets Cloud Storage que vous utilisez avec Vertex AI, ou l'utiliser pour chiffrer des objets spécifiques.
Artifact Registry: lorsque vous utilisez un conteneur personnalisé pour l'entraînement, vous pouvez configurer Vertex AI pour charger votre image de conteneur à partir d'Artifact Registry.
Pour vous assurer que votre image de conteneur est chiffrée avec CMEK, consultez le guide Artifact Registry sur CMEK.
Cloud Logging: lorsque vous exécutez un job d'entraînement, l'entraînement Vertex AI enregistre les journaux dans Logging. Pour chiffrer ces journaux à l'aide de CMEK, consultez la page Configurer CMEK pour Cloud Logging.
Ressources actuelles compatibles avec les CMEK
Les ressources Vertex AI actuelles traitées par CMEK sont les suivantes. La prise en charge de CMEK des fonctionnalités bêta est également au statut bêta.
Ressource | Éléments chiffrés | Liens vers la documentation |
---|---|---|
Ensemble de données |
|
|
Modèle |
|
|
Point de terminaison |
|
|
CustomJob |
|
|
HyperparameterTuningJob |
|
|
TrainingPipeline |
|
|
BatchPredictionJob (à l'exception de prédiction par lot d'image AutoML) |
|
|
ModelDeploymentMonitoringJob |
|
|
PipelineJob |
|
|
MetadataStore |
|
|
TensorBoard |
|
|
Featurestore |
|
|
Index |
|
|
IndexEndpoint |
|
|
Environnement d'exécution Colab Enterprise |
|
Compatibilité CMEK avec les pipelines de réglage de l'IA générative
La fonctionnalité CMEK est fournie dans le pipeline de réglage des modèles suivants :
text-bison for PaLM 2
(GPU)BERT
T5
image-generation (GPU)
Limites
La compatibilité CMEK n'est pas fournie dans les cas suivants :
- Prédiction par lot d'un modèle d'image AutoML (
BatchPredictionJob
) - Réglage des TPU
Configurer les CMEK pour vos ressources
Les sections suivantes décrivent comment créer un trousseau de clés et une clé dans Cloud Key Management Service, accorder des autorisations de chiffrement et de déchiffrement à Vertex AI pour votre clé, et créer des ressources utilisant des clés CMEK.
Avant de commencer
Dans ce guide, nous partons du principe que vous utilisez deux projets Google Cloud distincts pour configurer les clés CMEK associées aux données Vertex AI :
- Un projet de gestion de votre clé de chiffrement (dénommé "projet Cloud KMS")
- Un projet pour accéder aux données Vertex AI ou au résultat dans Cloud Storage et interagir avec tous les autres produits Google Cloud dont vous avez besoin pour votre cas d'utilisation (dénommé "projet AI Platform")
Cette configuration recommandée accepte la séparation des tâches.
Vous pouvez également utiliser un seul projet Google Cloud pour l'ensemble du guide. Pour ce faire, utilisez le même projet pour toutes les tâches suivantes qui se rapportent au projet Cloud KMS et les tâches qui se rapportent au projet AI Platform.
Configurer le projet 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.
Configurer le projet 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.
Configurer Google Cloud CLI
L'utilisation de la CLI gcloud est obligatoire pour certaines étapes de ce guide et facultative pour d'autres.Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Créer un trousseau de clés et une clé
Suivez le guide Cloud KMS sur la création de clés symétriques pour créer un trousseau de clés et une clé. Lorsque vous créez votre trousseau, spécifiez une région compatible avec les opérations Vertex AI en tant qu'emplacement du trousseau de clés. L'entraînement Vertex AI n'est compatible avec CMEK que lorsque votre ressource et votre clé utilisent la même région. Vous ne devez pas spécifier d'emplacement birégional, multirégional ou mondial pour votre trousseau de clés.
Assurez-vous de créer votre trousseau et votre clé dans votre projet Cloud KMS.
Accorder des autorisations à Vertex AI
Pour utiliser CMEK pour vos ressources, vous devez autoriser Vertex AI à chiffrer et déchiffrer des données à l'aide de votre clé. Vertex AI utilise un agent de service géré par Google pour exécuter des opérations à l'aide de vos ressources. Ce compte de service est identifié par une adresse e-mail au format suivant :
service-PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com
Pour trouver le compte de service approprié pour votre projet AI Platform, accédez à la page IAM dans la console Google Cloud, puis recherchez le membre correspondant à ce format d'adresse e-mail à partir du numéro de projet de votre projet AI Platform, en remplaçant la variable AI_PLATFORM_PROJECT_NUMBER. Le compte de service porte également le nom Vertex AI Service Agent
.
Prenez note de l'adresse e-mail de ce compte de service et utilisez-la dans les étapes suivantes pour lui accorder l'autorisation de chiffrer et de déchiffrer des données à l'aide de votre clé. Vous pouvez accorder l'autorisation à l'aide de Google Cloud Console ou de Google Cloud CLI :
Console Google Cloud
Dans la console Google Cloud, cliquez sur Sécurité, puis sélectionnez Gestion des clés. Vous accédez à la page Clés de chiffrement et sélectionnez votre projet Cloud KMS.
Cliquez sur le nom du trousseau de clés que vous avez créé dans une section précédente de ce guide pour accéder à la page Détails du trousseau de clés.
Cochez la case correspondant à la clé que vous avez créée dans une section précédente de ce guide. Si un panneau d'informations portant le nom de votre clé n'est pas déjà ouvert, cliquez sur Afficher le panneau d'informations.
Dans le panneau d'informations, cliquez sur
Ajouter un membre pour ouvrir la boîte de dialogue Ajouter des membres à "KEY_NAME". Dans cette boîte de dialogue, procédez comme suit :- Dans la zone Nouveaux membres, saisissez l'adresse e-mail du compte de service dont vous avez pris note dans la section précédente :
service-AI_PLATFORM_PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com
Dans la liste déroulante Sélectionner un rôle, cliquez sur Cloud KMS, puis sur le rôle Chiffreur/Déchiffreur de clé de chiffrement Cloud KMS.
Cliquez sur Enregistrer.
- Dans la zone Nouveaux membres, saisissez l'adresse e-mail du compte de service dont vous avez pris note dans la section précédente :
gcloud
Exécutez la commande suivante :
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
Dans cette commande, remplacez les espaces réservés suivants :
- KEY_NAME : nom de la clé que vous avez créée dans une section précédente de ce guide.
- KEY_RING_NAME : trousseau de clés que vous avez créé dans une section précédente de ce guide.
- REGION : région dans laquelle vous avez créé votre trousseau de clés.
- KMS_PROJECT_ID : ID de votre projet Cloud KMS.
- AI_PLATFORM_PROJECT_NUMBER : numéro de votre projet AI Platform, indiqué dans la section précédente dans l'adresse e-mail d'un compte de service.
Créer des ressources avec la clé KMS
Lorsque vous créez une ressource compatible avec CMEK, vous pouvez spécifier votre clé comme l'un des paramètres de création.
Console
Lorsque vous créez une ressource compatible avec CMEK dans la section Vertex AI de Google Cloud Console, vous pouvez sélectionner votre clé sur la section "Général" ou "Options avancées" :
API REST et ligne de commande
Lorsque vous créez une ressource compatible, ajoutez un objet encryptionSpec
à votre requête et définissez le champ encryptionSpec.kmsKeyName
pour qu'il pointe vers votre ressource de clé.
Par exemple, lors de la création d'une ressource dataset
, vous devez spécifier votre clé dans le corps de la requête:
{
"displayName": DATASET_NAME,
"metadataSchemaUri": METADATA_URI,
"encryptionSpec": {
"kmsKeyName": "projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME"
}
}
Java
Lorsque vous créez une ressource compatible, définissez EncryptionSpec
pour qu'il pointe vers votre ressource de clé. Pour en savoir plus, consultez la documentation de la bibliothèque cliente Vertex AI pour Java.
Node.js
Lorsque vous créez une ressource compatible, définissez le paramètre encryptionSpec
pour qu'il pointe vers votre ressource de clé. Pour en savoir plus, consultez la documentation de la bibliothèque cliente Vertex AI pour Node.js.
Python
Lorsque vous créez une ressource compatible, définissez le paramètre encryption_spec
pour qu'il pointe vers votre ressource de clé. Reportez-vous à la documentation sur le client Python pour Cloud AI Platform pour en savoir plus.
Étapes suivantes
- Apprenez-en plus sur le chiffrement CMEK sur Google Cloud
- Découvrez comment utiliser CMEK avec d'autres produits Google Cloud.