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

Par défaut, Cloud Workstations utilise une clé appartenant à Google et gérée par Google pour chiffrer les ressources de la station 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 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 les Documentation Cloud KMS

Avant de commencer

Créer vos projets

  1. Dans la console Google Cloud, sur la page de sélection du 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 un Clé CMEK.

    Vous pouvez utiliser le même projet pour votre projet de clé et votre projet de stations de travail, mais comme bonne pratique, nous vous recommandons d'utiliser deux projets pour séparation des tâches.

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

  3. Activez les API requises dans chaque projet.

  4. Veillez à installer et à initialiser CLI gcloud. À initialisez la CLI gcloud. exécutez la commande suivante:

    gcloud init
    

Rôles requis

Bien que vous puissiez attribuer les rôles Administrateur Cloud KMS et Administrateur des stations de travail Cloud à la même personne, nous vous recommandons de suivre le principe du moindre privilège lorsque vous attribuez des rôles. Nous vous recommandons attribuer ces rôles à deux personnes distinctes et leur demander de se coordonner, au lieu de demander à Cloud KMS d'être aussi votre Administrateur Cloud Workstations. Pour en savoir plus, consultez les bonnes pratiques de sécurité et l'utilisation sécurisée d'IAM.

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

  • Si vous êtes administrateur Cloud KMS, demandez à votre administrateur de vous accorder le rôle suivant afin de pouvoir créer et gérer des ressources Cloud KMS : administrateur Cloud KMS (roles/cloudkms.admin) sur votre projet de clé.
  • Si vous êtes l'administrateur Cloud Workstations, demandez à votre administrateur de vous accorder le rôle suivant afin de pouvoir 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 page Gérer l'accès aux projets, aux dossiers et aux organisations.

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 de clés entre les services, mais 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 un clé de chiffrement symétrique.

    Veillez à créer votre clé CMEK et votre configuration de station de travail dans le dans la même région.

  3. Obtenir 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 disponibles dans le la console Google Cloud, demandez à votre administrateur Cloud Workstations de créer configuration de station de travail pour vous, ou assurez-vous que vous disposez Administrateur Cloud Workstations IAM sur le projet afin de pouvoir créer ces ressources vous-même.

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

Pour utiliser un CMEK dans une configuration de station de travail, activez-le depuis la console Google Cloud ou 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 clés cryptographiques 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 page "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 en tant que volet.

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

  5. Dans le menu déroulant Sélectionner un rôle, sélectionnez Chiffreur/Déchiffreur de clés cryptographiques Cloud KMS.

  6. Cliquez sur Ajouter un autre rôle.

  7. Dans le menu déroulant Sélectionner un rôle, sélectionnez Lecteur Cloud KMS.

  8. Cliquez sur Enregistrer.

Pour activer CMEK à partir de la console Google Cloud :

  1. Suivez les étapes pour Créez une configuration de station de travail.

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

  3. Cliquez sur expand_more. Cliquez sur Plus d'options et sélectionnez Utiliser une clé de chiffrement gérée par le client (CMEK).

    1. Dans le champ Sélectionnez 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 n'est pas répertoriée, cliquez sur Saisir la clé manuellement pour sélectionnez la clé par ID de ressource, puis saisissez l'ID de ressource noté précédemment.

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

  4. Suivez les autres étapes pour créer la configuration de votre poste 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 un accès à une clé Cloud KMS, puis active les CMEK en spécifiant cette clé la configuration de la station de travail:

  1. Attribuez le rôle Cloud KMS au compte de service KMS et à l'agent de service Compute Engine pour votre projet de stations de travail Rôle de chiffreur/déchiffreur de clés cryptographiques (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: la valeur un identifiant numérique unique généré, inclus dans la première partie du compte de service Compute Engine par défaut stations de travail.
    • KMS_PROJECT_ID: ID du projet. Il s'agit d'une chaîne unique permettant de différencier votre projet Cloud KMS des autres Google Cloud.

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

  2. Pour récupérer le compte de service de gestion des stations de travail pour votre station de travail , exécutez 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 de 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: le 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 dans Google Cloud.

    Pour en savoir plus sur toutes les options 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 méthode création de clusters 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 de votre cluster de stations de travail.
    • WORKSTATIONS_PROJECT_NUMBER : identifiant numérique unique généré automatiquement, inclus dans la première partie du compte de service Compute Engine par défaut du projet de stations de travail.
  5. Si vous avez déjà créé un cluster, Créer 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, un délai d'inactivité de 3600s et des ressources de station de travail chiffrées 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 la 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. Il s'agit d'une chaîne unique permettant de différencier votre projet des autres dans 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, inclus dans la première partie du compte de service Compute Engine par défaut du projet de stations de travail.

    Une fois la configuration d'une station de travail créée, Cloud KMS chiffre les disques persistants de votre projet avec le service .

Effectuer une rotation des clés de chiffrement gérées par le client

Lorsque vous attribuez le rôle de lecteur Cloud KMS au compte de service de gestion des stations de travail (roles/cloudkms.viewer) sur la clé CMEK, le service de station de travail peut détecter la rotation des clés et rechiffrer votre disque d'accueil à l'aide de la nouvelle version de clé primaire.

Le rechiffrement a lieu après l'arrêt de votre station de travail. Chaque fois que vous arrêtez une station de travail chiffrée, le service de station de travail vérifie si la clé a été alternée. Si la clé a été remplacée, le service de poste de travail crée un instantané du disque d'accueil de votre poste de travail et le supprime. La prochaine fois que vous démarrez la station de travail, le service de station de travail crée un disque à partir de l'instantané, en utilisant la nouvelle version de clé primaire.

Quotas Cloud KMS et Cloud Workstations

Lorsque vous utilisez des CMEK dans Cloud Workstations, vos projets peuvent utiliser des requêtes de chiffrement Cloud KMS des quotas. 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 station de travail ne peut pas être démarrée.

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

Étape suivante