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, Customer-Managed Encryption Keys) pour vos tâches d'entraînement.
Pour en savoir plus sur les avantages particuliers d'utiliser le chiffrement CMEK avec AI Platform Training, consultez la section suivante de ce guide. Pour plus d'informations sur le chiffrement CMEK en général, y compris quand et pourquoi les activer, consultez la documentation de Cloud Key Management Service.
Ce guide décrit certains avantages à utiliser CMEK avec AI Platform Training et explique comment configurer une tâche d'entraînement à cet effet.
Comprendre CMEK pour AI Platform Training
Les sections suivantes présentent des informations de base sur CMEK pour AI Platform Training que vous devez comprendre avant de configurer CMEK pour vos tâches d'entraînement.
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 d'entraînement, votre code s'exécute sur une ou plusieurs instances de machine virtuelle (VM) gérées par AI Platform Training. Lorsque vous activez CMEK pour AI Platform Training, 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 d'entraînement sur les VM
- Toutes les données qui sont chargées par votre code d'entraînement
- Toutes les données temporaires qui sont enregistrées sur le disque local par votre code d'entraînement
La clé CMEK ne chiffre pas les métadonnées associées à votre tâche d'entraînement, telles que le nom et la région du projet. Les métadonnées associées aux tâches d'entraînement sont toujours chiffrées à l'aide du mécanisme de chiffrement par défaut de Google.
Utiliser CMEK avec d'autres produits Google Cloud
Configurer CMEK pour AI Platform Training n'implique pas de configurer automatiquement CMEK pour les autres produits Google Cloud utilisés avec AI Platform Training. Pour chiffrer des données dans d'autres produits Google Cloud avec CMEK, une configuration supplémentaire est requise. Exemple :
Cloud Storage : lorsque vous exécutez une tâche de conteneur non personnalisé, AI Platform Training charge votre application d'entraînement à partir d'un bucket Cloud Storage. En outre, la plupart des 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 comme clé par défaut pour les buckets Cloud Storage que vous utilisez avec AI Platform Training ou pour chiffrer des objets spécifiques.
Container Registry : lorsque vous exécutez une tâche de conteneur personnalisé, AI Platform Training charge votre image de conteneur à partir de Container Registry.
Pour vous assurer que votre image de conteneur est chiffrée avec CMEK, consultez le guide Container Registry sur l'utilisation de clés de chiffrement gérées par le client.
Cloud Logging : lorsque vous exécutez une tâche d'entraînement, AI Platform Training enregistre les journaux dans Cloud Logging. Ces journaux ne sont pas chiffrés avec CMEK. Toutefois, si vous utilisez le routeur de journaux, vous pouvez configurer CMEK pour certains fichiers temporaires créés par celui-ci.
Limites
Vous ne pouvez pas utiliser CMEK avec AI Platform Training dans les situations suivantes :
- Vous ne pouvez pas utiliser CMEK avec des tâches d'entraînement utilisant des TPU.
- Si vous avez commencé à utiliser l'API Training and Prediction d'AI Platform en 2017 ou avant et que vous envoyez une tâche d'entraînement avec CMEK, vous pouvez rencontrer une erreur indiquant une incompatibilité avec un ancien mécanisme d'authentification. Dans ce cas, créez un projet Google Cloud ou sélectionnez un autre projet pour exécuter votre tâche AI Platform Training.
Configurer CMEK pour votre tâche d'entraînement
Les sections suivantes décrivent comment créer un trousseau et une clé dans Cloud Key Management Service, accorder des autorisations de chiffrement et de déchiffrement à AI Platform Training pour votre clé, et créer une tâche d'entraînement utilisant CMEK.
Avant de commencer
Ce guide suppose que vous utilisez deux projets Google Cloud distincts pour configurer CMEK pour l'entraînement :
- Un projet de gestion de votre clé de chiffrement (dénommé "projet Cloud KMS")
- Un projet pour accéder à AI Platform Training, gérer les données d'entraînement ou les résultats 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 AI Platform Training & Prediction 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 AI Platform Training & Prediction 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 et une clé
Suivez le guide Cloud KMS sur la création de clés symétriques pour créer un trousseau et une clé. Lorsque vous créez votre trousseau, spécifiez une région compatible avec AI Platform Training en tant qu'emplacement du trousseau de clés. AI Platform Training n'accepte que les clés CMEK lorsque votre tâche d'entraînement 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 les autorisations à AI Platform Training
Pour utiliser CMEK pour votre tâche d'entraînement, vous devez autoriser AI Platform Training à chiffrer et déchiffrer des données à l'aide de votre clé. AI Platform Training utilise un agent de service pour exécuter vos tâches d'entraînement. Cet agent de service est identifié par une adresse e-mail au format suivant:
service-AI_PLATFORM_PROJECT_NUMBER@cloud-ml.google.com.iam.gserviceaccount.com
Pour trouver l'agent 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, en remplaçant la variable AI_PLATFORM_PROJECT_NUMBER par le numéro de projet de votre projet AI Platform. L'agent de service porte également le nom Google Cloud ML Engine Service Agent
.
Prenez note de l'adresse e-mail de cet agent 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, 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@cloud-ml.google.com.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@cloud-ml.google.com.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 une tâche d'entraînement avec CMEK
Maintenant que vous avez accordé à AI Platform Training l'autorisation de chiffrer et de déchiffrer des données à l'aide de votre clé, vous pouvez créer une tâche d'entraînement qui chiffre les données temporaires à l'aide de cette clé. Lorsque vous créez une tâche d'entraînement, spécifiez le champ encryptionConfig
dans le champ trainingInput
de votre tâche.
L'exemple suivant montre comment effectuer cette opération à l'aide de la CLI gcloud. Vous ne pouvez pas créer de job d'entraînement avec CMEK dans la console Google Cloud pour le moment.
L'exemple suppose que vous disposez d'une application d'entraînement sur votre système de fichiers local dans un répertoire nommé trainer
avec un module nommé task
.
Créez un fichier de configuration
config.yaml
contenant les éléments suivants :trainingInput: encryptionConfig: kmsKeyName: projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
Dans le fichier de configuration, remplacez les espaces réservés suivants :
- KMS_PROJECT_ID : ID de votre projet Cloud KMS.
- KEY_RING_NAME : nom de votre trousseau de clés.
- KEY_NAME : nom de votre clé.
Pour créer la tâche d'entraînement, exécutez la commande suivante :
gcloud ai-platform jobs submit training JOB_ID \ --config=config.yaml \ --job-dir=JOB_DIR \ --module-name=trainer.task \ --package-path=trainer \ --python-version=3.7 \ --region=REGION \ --runtime-version=2.11 \ --scale-tier=basic
Dans cette commande, remplacez les espaces réservés suivants :
- JOB_ID : nom que vous avez choisi pour la tâche.
JOB_DIR : chemin d'accès à un répertoire Cloud Storage dans lequel votre application d'entraînement doit être importée. Votre tâche d'entraînement peut également utiliser ce répertoire pendant l'entraînement pour enregistrer le résultat, par exemple. Pour plus de commodité, choisissez un répertoire dans un bucket Cloud Storage de votre projet AI Platform.
REGION : région où vous avez créé votre trousseau de clés et où vous prévoyez de créer la tâche d'entraînement.
La commande, si elle aboutit, génère le résultat suivant :
Job [JOB_ID] submitted successfully. Your job is still active. You may view the status of your job with the command $ gcloud ai-platform jobs describe JOB_ID or continue streaming the logs with the command $ gcloud ai-platform jobs stream-logs JOB_ID jobId: JOB_ID state: QUEUED
Vous pouvez désormais surveiller votre tâche d'entraînement.
Outre les champs region
et encryptionConfig
, vous pouvez personnaliser la configuration de votre tâche d'entraînement en fonction de vos besoins. Vous pouvez même utiliser un conteneur personnalisé pour l'entraînement.
Étape suivante
- Apprenez-en plus sur le chiffrement CMEK sur Google Cloud
- Découvrez comment utiliser CMEK avec d'autres produits Google Cloud.
- Pour savoir comment configurer des options supplémentaires en plus de CMEK, consultez le guide sur l'exécution d'une tâche d'entraînement.