Clés de chiffrement gérées par le client

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 instances de notebooks gérés par l'utilisateur.

Cette page décrit certains avantages et limites spécifiques de l'utilisation du chiffrement CMEK avec les notebooks gérés par l'utilisateur, et explique comment configurer une nouvelle instance de notebooks gérés par l'utilisateur pour utiliser le chiffrement CMEK.

Pour en savoir plus sur le chiffrement CMEK en général, y compris quand et pourquoi l'activer, consultez la page Clés de chiffrement gérées par le client.

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 Key Management Service. 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.

Lorsque vous exécutez une instance de notebooks gérés par l'utilisateur, votre instance s'exécute sur une machine virtuelle (VM) gérée par Vertex AI Workbench. Lorsque vous activez CMEK pour une instance de notebooks gérées par l'utilisateur, Vertex AI Workbench utilise la clé que vous désignez, et non une clé gérée par Google, pour chiffrer les données sur les disques de démarrage de la VM.

La clé CMEK ne chiffre pas les métadonnées, telles que le nom et la région de l'instance, associées à votre instance de notebooks gérés par l'utilisateur. Les métadonnées associées aux instances de notebooks gérés par l'utilisateur sont toujours chiffrées à l'aide du mécanisme de chiffrement par défaut de Google.

Limites du chiffrement CMEK

Pour réduire la latence et éviter que les ressources ne dépendent de services répartis sur plusieurs domaines de défaillance, nous vous recommandons de protéger les instances régionales de notebooks gérés par l'utilisateur en faisant appel à des clés situées au même emplacement.

  • Vous pouvez chiffrer des instances régionales de notebooks gérés par l'utilisateur à l'aide de clés situées au même emplacement ou dans l'emplacement global. Par exemple, vous pouvez chiffrer les données d'un disque situé dans la zone us-west1-a à l'aide d'une clé située dans la région us-west1 ou dans l'emplacement global.
  • Vous pouvez chiffrer des instances globales à l'aide de clés située dans n'importe quel emplacement.
  • Configurer CMEK pour les notebooks gérés par l'utilisateur ne configure pas automatiquement CMEK pour les autres produits Google Cloud que vous utilisez. Pour chiffrer des données dans d'autres produits Google Cloud avec CMEK, vous devez effectuer une configuration supplémentaire.

Configurer CMEK pour votre instance de notebooks gérés par l'utilisateur

Dans les sections suivantes, nous allons voir 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 au compte de service pour votre clé, et créer une instance de notebooks gérés par l'utilisateur utilisant CMEK.

Avant de commencer

Nous vous recommandons d'utiliser une configuration compatible avec la séparation des tâches. Pour configurer CMEK pour les notebooks gérés par l'utilisateur, vous pouvez utiliser deux projets Google Cloud distincts :

  • Un projet Cloud KMS : projet permettant de gérer votre clé de chiffrement.
  • Un projet de notebooks gérés par l'utilisateur : projet permettant d'accéder aux instances de notebooks gérés par l'utilisateur et d'interagir avec tous les autres produits Google Cloud dont vous avez besoin pour votre cas d'utilisation.

Vous pouvez également utiliser un seul projet Google Cloud. Pour ce faire, utilisez le même projet pour toutes les tâches suivantes.

Configurer le projet 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.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Cloud KMS API.

    Enable the API

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

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Cloud KMS API.

    Enable the API

Configurer le projet de notebooks gérés par l'utilisateur

  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.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Notebooks API.

    Enable the API

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

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Notebooks API.

    Enable the 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é

Lorsque vous créez un trousseau et une clé, tenez compte des exigences suivantes :

  • Lorsque vous choisissez l'emplacement de votre trousseau de clés, utilisez l'emplacement global ou l'emplacement de votre instance de notebooks gérés par l'utilisateur.

  • Assurez-vous de créer votre trousseau et votre clé dans votre projet Cloud KMS.

Pour créer un trousseau et une clé, consultez la page Créer des clés de chiffrement symétriques.

Accorder des autorisations pour les notebooks gérés par l'utilisateur

Pour utiliser CMEK pour votre instance de notebooks gérés par l'utilisateur, vous devez autoriser cette instance à chiffrer et déchiffrer des données à l'aide de votre clé.

Déterminer le compte de service à utiliser

Les notebooks gérés par l'utilisateur utilisent un compte de service pour exécuter votre instance de notebooks gérés par l'utilisateur. Il s'agit du compte de service Compute Engine par défaut ou d'un compte de service que vous spécifiez lors de la création de l'instance.

Si le compte de service est le compte de service Compute Engine par défaut, procédez comme suit pour trouver l'adresse e-mail du compte de service:

  1. Dans la console Google Cloud, accédez à la page IAM.

    Accéder à IAM

  2. Recherchez le compte principal nommé Compute Engine default service account.

    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é.

Accorder l'autorisation au compte de service

Accordez l'autorisation à l'aide de Google Cloud Console ou de Google Cloud CLI.

Console

  1. Dans Google Cloud Console, accédez à la page Clés cryptographiques.

    Accéder à la page Clés cryptographiques

  2. Sélectionnez votre projet Cloud KMS.

  3. Cliquez sur le nom du trousseau que vous avez créé à l'étape Créer un trousseau de clés et une clé. La page Détails du trousseau s'ouvre.

  4. Cochez la case correspondant à la clé que vous avez créée à l'étape Créer un trousseau de clés et une clé. Si un panneau d'informations portant le nom de votre clé n'est pas déjà ouvert, cliquez sur Afficher le panneau d'informations.

  5. Dans le panneau d'informations, cliquez sur Ajouter un membre . La boîte de dialogue Ajouter des membres à "KEY_NAME" s'ouvre. Dans cette boîte de dialogue, procédez comme suit :

    1. Dans le champ Nouveaux membres, saisissez l'adresse e-mail du compte de service de votre instance.

    2. Dans la liste Sélectionner un rôle, cliquez sur Cloud KMS, puis sur le rôle Chiffreur/Déchiffreur de clé de chiffrement Cloud KMS.

    3. Cliquez sur Enregistrer.

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_ACCOUNT \
    --role=roles/cloudkms.cryptoKeyEncrypterDecrypter

Remplacez les éléments suivants :

  • KEY_NAME : nom de la clé que vous avez créée à l'étape Créer un trousseau de clés et une clé.
  • KEY_RING_NAME : trousseau de clés que vous avez créé à l'étape Créer un trousseau de clés et une clé.
  • REGION : région dans laquelle vous avez créé votre trousseau de clés.
  • KMS_PROJECT_ID : ID de votre projet Cloud KMS.
  • SERVICE_ACCOUNT: adresse e-mail du compte de service de votre instance

Créer une instance de notebooks gérés par l'utilisateur avec CMEK

Après avoir accordé à votre instance de notebooks gérés par l'utilisateur l'autorisation de chiffrer et de déchiffrer des données à l'aide de votre clé, vous pouvez créer une instance de notebooks gérés par l'utilisateur qui chiffre les données à l'aide de cette clé.

Les exemples suivants expliquent comment chiffrer et déchiffrer des données avec votre clé à l'aide de Google Cloud Console ou de la CLI gcloud.

Console

Pour créer une instance de notebooks gérés par l'utilisateur avec une clé de chiffrement gérée par le client, procédez comme suit :

  1. Dans Google Cloud Console, accédez à la page Notebooks gérés par l'utilisateur. Vous pouvez également accéder à notebook.new (https://notebook.new) et ignorer l'étape suivante.

    Accéder à la page Notebooks gérés par l'utilisateur

  2. Sélectionnez  Nouveau notebook, puis Personnaliser.

  3. Dans la section Détails de la page Créer un notebook géré par l'utilisateur, fournissez les informations suivantes pour votre nouvelle instance :

    • Nom : nom de la nouvelle instance.
    • Région : région dans laquelle se trouve votre clé et votre trousseau.
    • Zone : zone dans la région que vous avez sélectionnée.
  4. Sélectionnez la section Disques.

  5. Pour utiliser des clés de chiffrement gérées par le client, sélectionnez Clé de chiffrement gérée par le client (CMEK) sous Chiffrement.

  6. Cliquez sur Sélectionner une clé gérée par le client.

    • Si la clé gérée par le client que vous souhaitez utiliser figure dans la liste, sélectionnez-la.
    • Si la clé gérée par le client que vous souhaitez utiliser ne figure pas dans la liste, saisissez son ID de ressource. L'ID de ressource de votre clé gérée par le client se présente comme suit :

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

      Remplacez les éléments suivants :

  7. Renseignez le reste de la boîte de dialogue de création d'instance, puis cliquez sur Créer.

  8. Vertex AI Workbench crée une instance de notebooks gérés par l'utilisateur en fonction des propriétés spécifiées et la démarre automatiquement. Lorsque l'instance est prête à l'emploi, Vertex AI Workbench active un lien Ouvrir JupyterLab.

gcloud

Pour utiliser la CLI gcloud afin de créer une instance de notebooks gérés par l'utilisateur avec une clé de chiffrement gérée par le client, exécutez la commande suivante. Cet exemple suppose que vous souhaitez créer une instance de notebooks gérés par l'utilisateur avec un type de machine n1-standard-1 et un disque de démarrage persistant standard de 100 Go.

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'

Remplacez les éléments suivants :

  • REGION : région dans laquelle vous avez créé votre trousseau de clés et où vous prévoyez de créer votre instance de notebooks gérés par l'utilisateur.
  • IMAGE_FAMILY : famille d'images que vous souhaitez utiliser pour créer votre instance de notebooks gérés par l'utilisateur.
  • KEY_NAME : nom de la clé que vous avez créée à l'étape Créer un trousseau de clés et une clé.
  • KMS_PROJECT_ID : ID de votre projet Cloud KMS.
  • KEY_RING_NAME : trousseau de clés que vous avez créé à l'étape Créer un trousseau de clés et une clé.

Étape suivante