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

Par défaut, Vertex AI Workbench chiffre le contenu client au repos. Vertex AI Workbench gère le chiffrement sans intervention de votre part. Cette option est appelée chiffrement par défaut de Google.

Si vous souhaitez contrôler vos clés de chiffrement, vous pouvez utiliser des clés de chiffrement gérées par le client (CMEK) dans Cloud KMS avec des services bénéficiant d'une intégration des CMEK, y compris Vertex AI Workbench. L'utilisation de clés Cloud KMS vous permet de contrôler leur niveau de protection, leur emplacement, leur calendrier de rotation, leurs autorisations d'utilisation et d'accès, ainsi que leurs limites cryptographiques. Grâce à Cloud KMS, vous pouvez également afficher les journaux d'audit et contrôler les cycles de vie des clés. Au lieu de laisser Google posséder et gérer les clés de chiffrement de clés (KEK) symétriques qui protègent vos données, c'est vous qui vous chargez de cette tâche dans Cloud KMS.

Une fois que vous avez configuré vos ressources avec des CMEK, l'accès à vos ressources Vertex AI Workbench est semblable à celui du chiffrement par défaut de Google. Pour en savoir plus sur les options de chiffrement, consultez Clés de chiffrement gérées par le client (CMEK).

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.

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.

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

      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. Configurer la Google Cloud CLI

      L'utilisation de gcloud CLI est obligatoire pour certaines étapes de ce guide et facultative pour d'autres.

      Installez la Google Cloud CLI. Une fois que la Google Cloud CLI est installée, initialisez-la en exécutant la commande suivante :

      gcloud init

      Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

      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. Ce compte de service est soit le compte de service Compute Engine par défaut, soit un compte de service que vous spécifiez lorsque vous créez 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 la console Google Cloud ou de Google Cloud CLI.

      Console

      1. Dans la console Google Cloud , accédez à la page Gestion des clés.

        Accéder à la page "Gestion des clés"

      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 ci-dessous.

      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 la console Google Cloud ou de gcloud CLI.

      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 la console Google Cloud , 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 gcloud CLI 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é.

      Étapes suivantes