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

Par défaut, Cloud Workstations chiffre le contenu client au repos. Cloud Workstations 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 Cloud Workstations. 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. Cloud KMS vous permet également de suivre l'utilisation des clés, d'afficher les journaux d'audit et de 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 Cloud Workstations 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).

Par défaut, Cloud Workstations utilise un Google-owned and Google-managed encryption key 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 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) avec Cloud Key Management Service (Cloud KMS).

Pour en savoir plus sur CMEK en général, y compris quand et pourquoi l'activer, consultez la 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 les Google Cloudprojets suivants :

    • 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 postes de travail contient des postes de travail chiffrés avec une clé CMEK.

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

  2. Assurez-vous que la facturation est activée pour votre projet Cloud. Pour en savoir plus, consultez Vérifier l'état de facturation de vos projets.

  3. Activez les API requises dans chaque projet.

  4. Installez et initialisez la CLI gcloud :

    1. Pour installer la CLI gcloud, consultez Installer la CLI gcloud et suivez les instructions correspondant à votre système d'exploitation.

    2. Pour initialiser la CLI gcloud, consultez Initialiser la CLI gcloud ou exécutez la commande suivante :

      gcloud init
      

Rôles requis

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

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 attribuer le rôle suivant pour 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 l'administrateur Cloud Workstations, demandez à votre administrateur de vous accorder le rôle suivant pour que vous puissiez créer et modifier des postes de travail : Administrateur Cloud Workstations (roles/workstations.admin) sur votre projet de postes de travail.

Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises avec 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.

    Le trousseau de clés doit se trouver dans la même région que votre cluster de postes de travail. Cloud Workstations n'est pas compatible avec les emplacements Cloud KMS multirégionaux ou mondiaux.

    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 une clé de chiffrement symétrique.

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

Accorder l'accès à votre clé de chiffrement

Cloud Workstations utilise les comptes de service suivants pour gérer le chiffrement de vos ressources :

  1. L'agent de service Cloud Workstations : Cloud Workstations utilise ce compte pour détecter la rotation de votre clé.

  2. Le compte de service de clé Cloud KMS : vous fournissez un compte de service que Cloud Workstations peut utiliser pour accéder à votre clé afin de chiffrer et de déchiffrer les ressources.

Attribuer le rôle Lecteur Cloud KMS à l'agent de service Cloud Workstations

L'agent de service Cloud Workstations permet à Cloud Workstations d'effectuer des tâches de service sur votre projet. Lorsque vous avez activé le service Cloud Workstations dans votre projet Workstations, cet agent de service a été créé automatiquement. Pour que le chiffrement CMEK fonctionne correctement, vous devez attribuer le rôle Lecteur Cloud KMS (roles/cloudkms.viewer) à l'agent de service Cloud Workstations pour votre projet de stations de travail sur la clé Cloud KMS. Cela permettra à Cloud Workstations de détecter la rotation des clés.

  1. Pour récupérer l'agent de service Cloud Workstations pour votre projet de poste 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 votre projet de poste de travail.

    L'agent de service Cloud Workstations utilise le format suivant :
    service-$WORKSTATIONS_PROJECT_NUMBER@gcp-sa-workstations.iam.gserviceaccount.com.

  2. Attribuez le rôle Lecteur Cloud KMS (roles/cloudkms.viewer) à l'agent de service Cloud Workstations sur la clé CMEK. Cela permet à Cloud Workstations 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 \
        --keyring=KEY_RING \
        --location=LOCATION \
        --project=KMS_PROJECT_ID \
        --role=roles/cloudkms.viewer \
        --member=CLOUD_WORKSTATIONS_SERVICE_AGENT
    

    Remplacez les éléments suivants :

    • KEY_NAME : nom de votre clé
    • KEY_RING : nom de votre trousseau de clés
    • LOCATION : emplacement contenant votre trousseau de clés.
    • KMS_PROJECT_ID : ID du projet contenant votre clé.
    • CLOUD_WORKSTATIONS_SERVICE_AGENT : agent de service Cloud Workstations obtenu à l'étape précédente.

    Pour en savoir plus sur toutes les options et valeurs possibles, exécutez la commande avec l'option --help.

Configurer un compte de service de clé Cloud KMS

Cloud Workstations utilise un compte de service de votre choix pour effectuer le chiffrement et le déchiffrement avec votre clé gérée par le client. Nous appelons ce compte "compte de service de clé Cloud KMS". Vous pouvez créer un compte de service ou en utiliser un existant. Voici les conditions requises pour ce compte :

  • L'administrateur Cloud Workstations doit disposer de l'autorisation iam.serviceAccounts.actAs sur ce compte de service.
  • Le compte de service que vous choisissez doit disposer du rôle Chiffreur/Déchiffreur de CryptoKey Cloud KMS (roles/cloudkms.cryptoKeyEncrypterDecrypter) sur votre clé Cloud KMS.
  1. Si vous souhaitez créer un compte de service, exécutez la commande suivante :

    gcloud iam service-accounts create \
      KMS_KEY_SERVICE_ACCOUNT_NAME \
      --display-name="Service account for Cloud Workstations CMEK" \
      --project=WORKSTATIONS_PROJECT_ID
    

    Remplacez les éléments suivants :

    • KMS_KEY_SERVICE_ACCOUNT_NAME : nom du compte de service.
    • WORKSTATIONS_PROJECT_ID : ID de votre projet d'atelier.

    Le compte de service que vous avez créé possède une adresse e-mail au format suivant : KMS_KEY_SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com.

    Enregistrez l'adresse e-mail du compte de service pour une étape ultérieure.

  2. Pour attribuer le rôle IAM Administrateur Cloud Workstations Utilisateur du compte de service (roles/iam.serviceAccountUser) au compte de service de la clé Cloud KMS, exécutez la commande suivante :

    gcloud iam service-accounts add-iam-policy-binding \
        KMS_KEY_SERVICE_ACCOUNT_EMAIL \
        --member="user:CLOUD_WORKSTATIONS_ADMIN_EMAIL" \
        --project=WORKSTATIONS_PROJECT_ID \
        --role=roles/iam.serviceAccountUser
    

    Remplacez les éléments suivants :

    • KMS_KEY_SERVICE_ACCOUNT_EMAIL : adresse e-mail du compte de service de la clé Cloud KMS.
    • CLOUD_WORKSTATIONS_ADMIN_EMAIL : adresse e-mail de l'administrateur Cloud Workstations.
    • WORKSTATIONS_PROJECT_ID : ID de votre projet d'atelier.
  3. Pour accorder au compte de service de clé Cloud KMS le rôle Chiffreur/Déchiffreur de CryptoKey Cloud KMS (roles/cloudkms.cryptoKeyEncrypterDecrypter) sur votre clé Cloud KMS, exécutez la commande suivante :

      gcloud kms keys add-iam-policy-binding \
        KEY_NAME \
        --keyring KEY_RING \
        --location LOCATION \
        --project KMS_PROJECT_ID \
        --role roles/cloudkms.cryptoKeyEncrypterDecrypter \
        --member serviceAccount:KMS_KEY_SERVICE_ACCOUNT_EMAIL\
    

    Remplacez les éléments suivants :

    • KEY_NAME : nom de votre clé
    • KEY_RING : nom de votre trousseau de clés
    • LOCATION : emplacement contenant votre trousseau de clés.
    • KMS_PROJECT_ID : ID du projet contenant votre clé.
    • KMS_KEY_SERVICE_ACCOUNT_EMAIL : adresse e-mail du compte de service de la clé Cloud KMS.

    Pour en savoir plus sur toutes les options et valeurs possibles, exécutez la commande avec l'option --help.

Rechercher des clusters de stations de travail

Si vous ne disposez pas de clusters de postes de travail dans la consoleGoogle Cloud , demandez à votre administrateur Cloud Workstations de créer un cluster de postes de travail pour vous dans la même région que le trousseau de clés Cloud KMS. Vous pouvez également vous assurer de disposer d'un rôle IAM d'administrateur Cloud Workstations 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

  1. Si vous n'avez pas encore créé de cluster de postes 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_ID
    

    Remplacez les éléments suivants :

    • WORKSTATIONS_CLUSTER_NAME : nom du cluster de postes de travail.
    • LOCATION : nom de la région de votre cluster de postes de travail.
    • WORKSTATIONS_PROJECT_ID : ID de votre projet d'atelier.
  2. 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, un délai d'inactivité de 3600s et des ressources de station de travail chiffrées avec CMEK, exécutez la commande gcloud CLI 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="KMS_KEY_SERVICE_ACCOUNT_EMAIL" \
      --project=WORKSTATIONS_PROJECT_ID
    

    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 postes de travail.
    • LOCATION : nom de la région de votre cluster.
    • KMS_PROJECT_ID : ID du projet, chaîne unique utilisée pour différencier votre projet de tous les autres dans Google Cloud.
    • KEY_RING : nom de votre trousseau de clés
    • KEY_NAME : nom de votre clé
    • KMS_KEY_SERVICE_ACCOUNT_EMAIL : adresse e-mail du compte de service de la clé Cloud KMS.
    • WORKSTATIONS_PROJECT_ID : ID de votre projet d'atelier.

    Après avoir créé une configuration de poste de travail, Cloud KMS chiffre les disques persistants de votre projet avec la clé Cloud KMS spécifiée.

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

Lorsque vous avez attribué le rôle Lecteur Cloud KMS à l'agent de service Cloud Workstations (roles/cloudkms.viewer) sur la clé CMEK, le service Workstations peut détecter la rotation de la clé et rechiffrer votre disque personnel à l'aide de la nouvelle version de clé principale.

Le re-chiffrement a lieu après l'arrêt de votre poste de travail. Chaque fois que vous arrêtez un poste de travail chiffré, le service de poste de travail vérifie si la clé a été permutée. Si la clé a été permutée, le service de poste de travail crée un instantané du disque personnel de votre poste de travail et supprime le disque. La prochaine fois que vous démarrerez la station de travail, le service de station de travail créera un disque à partir de l'instantané, en utilisant la nouvelle version de clé principale.

Quotas Cloud KMS et Cloud Workstations

Lorsque vous utilisez des clés CMEK dans Cloud Workstations, vos projets peuvent consommer des quotas de requêtes de chiffrement Cloud KMS. Par exemple, les dépôts chiffrés avec CMEK peuvent consommer 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 dansGoogle 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 démarrer.

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

Étapes suivantes