Chiffrer un disque de démarrage de VM TPU avec une clé de chiffrement gérée par le client (CMEK) avec Compute Engine
Par défaut, Cloud TPU chiffre le contenu client au repos. Cloud TPU 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 TPU. 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 Cloud TPU 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).
Pour utiliser une CMEK, créez un trousseau de clés.
Créez votre trousseau de clés au même emplacement que votre VM ou tranche TPU. Par exemple, une VM TPU située dans la zone us-central1-a ne peut utiliser qu'une clé de la région us-central1.
Ensuite, créez une clé dans votre trousseau de clés. Une fois la clé CMEK créée, accordez au compte de service Compute Engine l'accès à votre clé.
Accorder l'autorisation d'utiliser la clé
Attribuez le rôle IAM Chiffreur/Déchiffreur de clés cryptographiques Cloud KMS (roles/cloudkms.cryptoKeyEncrypterDecrypter) sur la clé Cloud KMS à l'agent de service Compute Engine dans votre projet Google Cloud . L'attribution de ce rôle permet au service Compute Engine d'accéder à votre clé de chiffrement et de l'utiliser.
Pour attribuer le rôle roles/cloudkms.cryptoKeyEncrypterDecrypter à l'agent de service Compute Engine, sélectionnez l'une des options suivantes :
gcloud
Exécutez la commande ci-dessous.
gcloud kms keys add-iam-policy-binding KEY_NAME \
--location LOCATION \
--keyring RING_NAME \
--member serviceAccount:service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com \
--role roles/cloudkms.cryptoKeyEncrypterDecrypter \
--project KEY_PROJECT_ID
Remplacez les éléments suivants :
- KEY_NAME : nom de votre clé.
- LOCATION : emplacement dans lequel vous avez créé votre trousseau de clés.
- RING_NAME : nom de votre trousseau de clés.
- PROJECT_NUMBER : numéro de votre projet Google Cloud .
- KEY_PROJECT_ID : ID de votre projet de clé.
Console
- Dans la console Google Cloud , accédez à la page Gestion des clés.
Cliquez sur le nom du trousseau de clés contenant la clé.
Cliquez sur le nom de la clé que vous souhaitez modifier.
Cliquez sur Autorisations.
Cliquez sur Accorder l'accès. Le volet Accorder l'accès s'ouvre.
Dans le champ Nouveaux comptes principaux, saisissez le nom de l'agent de service Compute Engine :
service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.comRemplacez PROJECT_NUMBER par votre numéro de projet Google Cloud .
Dans le menu Sélectionner un rôle, sélectionnez Chiffreur/Déchiffreur de CryptoKeys Cloud KMS.
Cliquez sur Enregistrer.
Créer une VM TPU avec une clé CMEK
Vous pouvez spécifier une clé CMEK lorsque vous créez une VM TPU ou un modèle d'instance pour un groupe d'instances géré (MIG) à l'aide de l'indicateur --boot-disk-kms-key.
Créer une instance de VM TPU unique avec une CMEK
Pour spécifier une clé CMEK lors de la création d'une seule VM TPU, utilisez l'indicateur --boot-disk-kms-key dans la commande gcloud compute instances create :
gcloud compute instances create TPU_NAME \
--machine-type=MACHINE_TYPE \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT \
--zone=ZONE \
--maintenance-policy=TERMINATE \
--boot-disk-kms-key=projects/KEY_PROJECT_ID/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
Remplacez les espaces réservés suivants :
- TPU_NAME : nom de votre VM TPU.
- MACHINE_TYPE : type de machine pour la VM TPU, par exemple
ct6e-standard-8t. - IMAGE_FAMILY : famille d'images d'OS pour la VM TPU. Si vous souhaitez installer une version spécifique de l'OS, utilisez l'option
--image. Pour en savoir plus sur les images d'OS, consultez Images d'OS. - IMAGE_PROJECT : projet contenant l'image de l'OS.
Pour les images TPU, il s'agit de
ubuntu-os-accelerator-images. - ZONE : zone de la VM TPU (par exemple,
us-central1-b). - KEY_PROJECT_ID : projet contenant la clé de chiffrement.
- REGION : région dans laquelle vous avez créé votre trousseau de clés.
- RING_NAME : nom de votre trousseau de clés.
- KEY_NAME : nom de votre clé.
Créer un MIG avec une tranche à hôte unique et une clé CMEK
Pour utiliser une clé CMEK avec un MIG, spécifiez la clé lorsque vous créez le modèle d'instance.
Créez un modèle d'instance à l'aide de l'indicateur
--boot-disk-kms-key:gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --machine-type=MACHINE_TYPE \ --maintenance-policy=TERMINATE \ --image-family=IMAGE_FAMILY \ --image-project=IMAGE_PROJECT \ --boot-disk-kms-key=projects/KEY_PROJECT_ID/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAMERemplacez les espaces réservés suivants :
- INSTANCE_TEMPLATE_NAME : nom de votre modèle d'instance.
- MACHINE_TYPE : type de machine pour la VM TPU, par exemple
ct6e-standard-8t. - IMAGE_FAMILY : famille d'images d'OS pour la VM TPU. Si vous souhaitez installer une version spécifique de l'OS, utilisez l'option
--image. Pour en savoir plus sur les images d'OS, consultez Images d'OS. - IMAGE_PROJECT : projet contenant l'image de l'OS.
Pour les images TPU, il s'agit de
ubuntu-os-accelerator-images. - KEY_PROJECT_ID : projet contenant la clé de chiffrement.
- REGION : région dans laquelle vous avez créé votre trousseau de clés.
- RING_NAME : nom de votre trousseau de clés.
- KEY_NAME : nom de votre clé.
Créez un MIG à l'aide du modèle :
gcloud compute instance-groups managed create MIG_NAME \ --size=MIG_SIZE \ --template=INSTANCE_TEMPLATE_NAME \ --zone=ZONE \ --size=MIG_SIZERemplacez les espaces réservés suivants :
- MIG_NAME : nom de votre MIG.
- MIG_SIZE : nombre de VM TPU dans le MIG.
- INSTANCE_TEMPLATE_NAME : nom du modèle d'instance à utiliser.
- ZONE : zone de la VM TPU (par exemple,
us-central1-b). - MIG_SIZE : nombre de VM TPU dans le MIG. Pour une VM TPU à hôte unique, définissez la taille sur 1.
Créer un MIG avec une tranche multihôte et une clé CMEK
Lorsque vous créez un MIG de tranche multihôte, spécifiez la clé de chiffrement dans le modèle d'instance.
Créez le modèle d'instance.
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME --machine-type=MACHINE_TYPE \ --maintenance-policy=TERMINATE \ --image-family=IMAGE_FAMILY \ --image-project=IMAGE_PROJECT \ --boot-disk-kms-key=projects/KEY_PROJECT_ID/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAMERemplacez les espaces réservés suivants :
- INSTANCE_TEMPLATE_NAME : nom de votre modèle d'instance.
- MACHINE_TYPE : type de machine pour la VM TPU, par exemple
ct6e-standard-8t. - IMAGE_FAMILY : famille d'images d'OS pour la VM TPU. Si vous souhaitez installer une version spécifique de l'OS, utilisez l'option
--image. Pour en savoir plus sur les images d'OS, consultez Images d'OS. - IMAGE_PROJECT : projet contenant l'image de l'OS.
Pour les images TPU, il s'agit de
ubuntu-os-accelerator-images. - KEY_PROJECT_ID : projet contenant la clé de chiffrement.
- REGION : région dans laquelle vous avez créé votre trousseau de clés.
- RING_NAME : nom de votre trousseau de clés.
- KEY_NAME : nom de votre clé.
Créez une règle de charge de travail.
La commande suivante crée une règle de charge de travail :
gcloud compute resource-policies create workload WORKLOAD_POLICY_NAME \ --type=high-throughput \ --accelerator-topology=TOPOLOGYRemplacez les espaces réservés suivants :
- WORKLOAD_POLICY_NAME : nom de votre stratégie de charge de travail.
- TOPOLOGY : topologie des VM TPU, par exemple
4x4x8.
Créez le MIG.
gcloud compute instance-groups managed create MIG_NAME \ --size=MIG_SIZE \ --target-size-policy-mode=bulk \ --template=INSTANCE_TEMPLATE_NAME \ --zone=ZONE \ --default-action-on-vm-failure=do-nothing \ --workload-policy=WORKLOAD_POLICY_NAMERemplacez les espaces réservés suivants :
- MIG_NAME : nom de votre MIG.
- MIG_SIZE : nombre de VM dans le MIG. Cette valeur est validée par rapport à la topologie spécifiée dans la règle de charge de travail.
- INSTANCE_TEMPLATE_NAME : nom de votre modèle d'instance.
- ZONE : zone de votre MIG.
- WORKLOAD_POLICY_NAME : nom de votre stratégie de charge de travail.
Pour savoir comment créer des VM TPU avec des CMEK à l'aide de GKE, consultez Utiliser des clés de chiffrement gérées par le client dans la documentation GKE.
Clés CMEK supprimées ou révoquées
Si une clé CMEK est révoquée ou supprimée, toute VM TPU qui utilise un disque de démarrage chiffré avec la CMEK supprimée ou révoquée ne s'éteint pas automatiquement. La VM TPU accède toujours aux données du disque de démarrage chiffré jusqu'à ce que vous l'éteigniez ou la redémarriez. Cela vous permet de récupérer vos données si vous restaurez l'accès à une clé révoquée ou supprimée. Si vous réactivez une clé, vous pouvez démarrer ou réparer votre VM TPU. Le disque de démarrage sera alors déchiffré et chargé.