Chiffrer les ressources de station de travail à l'aide de CMEK

Par défaut, Cloud Workstations utilise une clé de chiffrement gérée par Google pour chiffrer les ressources des stations de travail telles que les VM et les disques persistants lorsque les données sont au repos. Si vous avez des exigences réglementaires ou de conformité spécifiques liées aux clés qui protègent vos données, vous pouvez utiliser des clés de chiffrement gérées par le client (CMEK) à l'aide de Cloud Key Management Service (Cloud KMS).

Pour en savoir plus sur les CMEK en général, y compris quand et pourquoi les activer, consultez la documentation Cloud KMS.

Avant de commencer

Créer vos projets

  1. Dans la console Google Cloud, sur la page du sélecteur de projet, sélectionnez ou créez deux projets Google Cloud:

    • Un projet de clé contient vos ressources Cloud KMS, y compris un trousseau de clés et une clé de chiffrement symétrique.

    • Un projet de stations de travail contient des stations de travail chiffrées avec une clé CMEK.

    Vous pouvez utiliser le même projet pour votre projet clé et votre projet de stations de travail, mais il est recommandé d'utiliser deux projets pour la séparation des tâches.

  2. Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier si la facturation est activée sur un projet.

  3. Activez les API requises dans chaque projet.

  4. Assurez-vous d'installer et d'initialiser la CLI gcloud. Pour initialiser la CLI gcloud, exécutez la commande suivante:

    gcloud init
    

Rôles requis

Bien que vous puissiez attribuer les rôles d'administrateur Cloud KMS et d'administrateur Cloud Workstations à la même personne, nous vous recommandons de suivre le principe du moindre privilège lorsque vous attribuez des rôles. Il est recommandé d'attribuer ces rôles à deux personnes distinctes et de leur demander de se coordonner, plutôt que de demander à votre service Cloud KMS d'être également votre administrateur Cloud Workstations. Pour en savoir plus, consultez les bonnes pratiques de sécurité et la section Utiliser IAM en toute sécurité.

Pour obtenir les autorisations nécessaires pour configurer les CMEK, demandez à votre administrateur de vous attribuer les rôles IAM suivants:

  • Si vous êtes administrateur Cloud KMS, demandez à votre administrateur de vous attribuer le rôle suivant afin que vous puissiez créer et gérer des ressources Cloud KMS : Administrateur Cloud KMS (roles/cloudkms.admin) sur votre projet de clé.
  • Si vous êtes administrateur Cloud Workstations, demandez à votre administrateur de vous attribuer le rôle suivant pour que vous puissiez créer et mettre à jour des stations de travail : Administrateur Cloud Workstations (roles/workstations.admin) sur votre projet de stations de travail.

Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.

Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.

Créer un trousseau de clés et une clé de chiffrement

Dans votre projet de clé, créez une clé et enregistrez son ID de ressource:

  1. Créez ou sélectionnez un trousseau de clés.

    Vous pouvez partager des trousseaux entre les services. Toutefois, nous vous recommandons d'utiliser une clé différente pour chaque ressource protégée. Consultez la section Séparation des tâches.

  2. Créez une clé de chiffrement symétrique.

    Assurez-vous de créer votre clé CMEK et votre configuration de station de travail dans la même région.

  3. Obtenez l'ID de ressource de la clé et enregistrez-le pour une étape ultérieure.

Vérifier les configurations de stations de travail

Si vous ne disposez pas de configurations de stations de travail dans la console Google Cloud, demandez à votre administrateur Cloud Workstations de créer une configuration de station de travail pour vous ou assurez-vous de disposer d'un rôle IAM d'administrateur Cloud Workstations sur le projet afin de pouvoir créer vous-même ces ressources.

Utiliser les clés de chiffrement gérées par le client

Pour utiliser une clé CMEK dans une configuration de station de travail, activez-la à partir de la console Google Cloud ou de la CLI gcloud.

Console

Attribuez à votre compte de service Compute Engine et à votre agent de service Compute Engine le rôle Chiffreur/Déchiffreur de CryptoKeys Cloud KMS et le rôle Lecteur Cloud KMS:

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

    Accéder à la gestion des clés

  2. Cliquez sur le nom du trousseau de clés contenant la clé.

  3. Cochez la case correspondant à la clé que vous souhaitez utiliser.

    L'onglet Autorisations s'affiche sous la forme d'un volet.

  4. Dans la boîte de dialogue Ajouter des membres, indiquez l'adresse e-mail du compte de service Compute Engine et de l'agent de service Compute Engine auxquels vous accordez l'accès.

  5. Dans la liste déroulante Sélectionner un rôle, sélectionnez Chiffreur/Déchiffreur de CryptoKeys Cloud KMS.

  6. Cliquez sur Ajouter un autre rôle.

  7. Dans la liste déroulante Sélectionnez un rôle, sélectionnez Lecteur Cloud KMS.

  8. Cliquez sur Enregistrer.

Pour activer les CMEK depuis la console Google Cloud:

  1. Suivez les étapes pour créer une configuration de station de travail.

  2. Lorsque vous spécifiez la configuration de votre machine, recherchez la section Options avancées.

  3. Cliquez sur expand_more Développer, puis sélectionnez Utiliser une clé de chiffrement gérée par le client (CMEK).

    1. Dans le champ Sélectionner une clé gérée par le client, choisissez la clé de chiffrement gérée par le client que vous avez créée dans votre projet de clé.

      Si la clé que vous avez créée ne figure pas dans la liste, cliquez sur Saisir la clé manuellement pour la sélectionner par ID de ressource, puis saisissez l'ID de ressource que vous avez noté précédemment.

    2. Dans le champ Compte de service, sélectionnez le compte de service utilisé par la clé.

  4. Effectuez les autres étapes pour créer votre configuration de station de travail.

  5. Créez, démarrez et lancez la configuration de la station de travail pour chiffrer les disques persistants de votre projet avec la clé Cloud KMS spécifiée.

gcloud

L'exemple suivant attribue un rôle IAM qui fournit l'accès à une clé Cloud KMS, puis active les CMEK en spécifiant cette clé dans la configuration de la station de travail:

  1. Attribuez au compte de service KMS et à l'agent de service Compute Engine associé au projet de vos stations de travail le rôle Chiffreur/Déchiffreur de CryptoKeys Cloud KMS (roles/cloudkms.cryptoKeyEncrypterDecrypter) sur la clé CMEK. Cela permet au service Compute Engine de créer des ressources chiffrées dans votre projet à l'aide de la clé CMEK spécifiée.

      gcloud kms keys add-iam-policy-binding KEY_NAME \
        --location LOCATION \
        --keyring KEY_RING \
        --member serviceAccount:WORKSTATIONS_PROJECT_NUMBER-compute@developer.gserviceaccount.com \
        --role roles/cloudkms.cryptoKeyEncrypterDecrypter \
        --project KMS_PROJECT_ID
    
      gcloud kms keys add-iam-policy-binding KEY_NAME \
        --location LOCATION \
        --keyring KEY_RING \
        --member serviceAccount:service-WORKSTATIONS_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com \
        --role roles/cloudkms.cryptoKeyEncrypterDecrypter \
        --project KMS_PROJECT_ID
    

    Remplacez les éléments suivants :

    • KEY_NAME : nom de votre clé
    • LOCATION: nom de la région dans laquelle vous avez créé votre trousseau de clés.
    • KEY_RING : nom de votre trousseau de clés
    • WORKSTATIONS_PROJECT_NUMBER: identifiant numérique unique généré automatiquement qui est inclus dans la première partie du compte de service Compute Engine par défaut du projet de stations de travail.
    • KMS_PROJECT_ID: ID du projet, qui est une chaîne unique permettant de différencier votre projet Cloud KMS de tous les autres projets Google Cloud.

    Pour obtenir des informations sur tous les indicateurs et valeurs possibles, exécutez la commande avec l'option --help.

  2. Pour récupérer le compte de service de gestion des stations de travail pour votre projet de station de travail, utilisez la commande suivante:

    gcloud beta services identity create --service=workstations.googleapis.com \
        --project=WORKSTATIONS_PROJECT_ID
    

    Remplacez WORKSTATIONS_PROJECT_ID par l'ID de projet de vos stations de travail.

  3. Attribuez au compte de service de gestion des stations de travail de votre projet le rôle Lecteur Cloud KMS (roles/cloudkms.viewer) sur la clé CMEK. Cela permet au service de station de travail de détecter la rotation des clés et de rechiffrer les ressources, si nécessaire dans votre projet.

    gcloud kms keys add-iam-policy-binding KEY_NAME \
        --location LOCATION \
        --keyring KEY_RING \
        --member WORKSTATIONS_MANAGEMENT_SERVICE_ACCOUNT \
        --role roles/cloudkms.viewer \
        --project KMS_PROJECT_ID
    

    Remplacez les éléments suivants :

    • KEY_NAME : nom de votre clé
    • LOCATION: nom de la région dans laquelle vous avez créé votre trousseau de clés.
    • KEY_RING : nom de votre trousseau de clés
    • WORKSTATIONS_MANAGEMENT_SERVICE_ACCOUNT: compte de service de gestion des stations de travail obtenu à l'étape ci-dessus.
    • KMS_PROJECT_ID: ID du projet (chaîne unique permettant de différencier votre projet de clé Cloud KMS de tous les autres projets Google Cloud).

    Pour obtenir des informations sur tous les indicateurs et valeurs possibles, exécutez la commande avec l'option --help.

  4. Facultatif:si vous n'avez pas encore créé de cluster de stations de travail, créez-en un à l'aide de la commande CLI clusters create gcloud.

    gcloud workstations clusters create \
        WORKSTATIONS_CLUSTER_NAME --region=LOCATION \
        --project=WORKSTATIONS_PROJECT_NUMBER
    

    Remplacez les éléments suivants :

    • WORKSTATIONS_CLUSTER_NAME: nom du cluster de stations de travail.
    • LOCATION: nom de la région pour votre cluster de stations de travail.
    • WORKSTATIONS_PROJECT_NUMBER: identifiant numérique unique généré automatiquement qui est inclus dans la première partie du compte de service Compute Engine par défaut du projet de stations de travail
  5. En supposant que vous ayez déjà créé un cluster, créez une configuration de station de travail avec les paramètres encryption_key.

    Pour créer une configuration de station de travail avec le type de machine e2-standard-2, le délai d'inactivité de 3600s et les ressources de poste de travail chiffrées par CMEK, exécutez la commande CLI gcloud suivante:

    gcloud workstations configs create WORKSTATIONS_CONFIG_NAME \
      --cluster=WORKSTATIONS_CLUSTER_NAME \
      --region=LOCATION \
      --machine-type="e2-standard-2" \
      --idle-timeout=3600 \
      --kms-key="projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME" \
      --kms-key-service-account="WORKSTATIONS_PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
      --project=WORKSTATIONS_PROJECT_NUMBER
    

    Remplacez les éléments suivants :

    • WORKSTATIONS_CONFIG_NAME: nom de la configuration de station de travail.
    • WORKSTATIONS_CLUSTER_NAME: nom de votre cluster de stations de travail.
    • LOCATION: nom de la région de votre cluster.
    • KMS_PROJECT_ID: ID du projet, une chaîne unique permettant de différencier votre projet de tous les autres projets Google Cloud.
    • KEY_RING : nom de votre trousseau de clés
    • KEY_NAME : nom de votre clé
    • WORKSTATIONS_PROJECT_NUMBER: identifiant numérique unique généré automatiquement qui est inclus dans la première partie du compte de service Compute Engine par défaut du projet de stations de travail

    Une fois que vous avez créé une configuration de station de travail, Cloud KMS chiffre les disques persistants de votre projet à l'aide de la clé Cloud KMS spécifiée.

Quotas Cloud KMS et stations de travail Cloud Workstations

Lorsque vous utilisez des CMEK dans Cloud Workstations, vos projets peuvent consommer les quotas de requêtes cryptographiques Cloud KMS. Par exemple, les dépôts chiffrés par CMEK peuvent utiliser ces quotas pour chaque importation ou téléchargement. Les opérations de chiffrement et de déchiffrement à l'aide de clés CMEK n'affectent les quotas Cloud KMS que si vous utilisez des clés matérielles (Cloud HSM) ou externes (Cloud EKM). Pour en savoir plus, consultez la page Quotas Cloud KMS.

Clés externes

Vous pouvez utiliser Cloud External Key Manager (Cloud EKM) pour chiffrer les données dans Google Cloud à l'aide de clés externes que vous gérez.

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 la clé devient indisponible, votre poste de travail ne peut pas être démarré.

Pour plus d'informations sur l'utilisation des clés externes, consultez la section Cloud External Key Manager.

Étapes suivantes