Chiffrer un disque de démarrage de VM TPU avec une clé de chiffrement gérée par le client (CMEK)

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

Une fois la clé CMEK créée, vous devrez accorder au compte de service Compute Engine l'accès à votre clé.

Accorder l'autorisation d'utiliser la clé

Vous devez attribuer 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 : identifiant de votre projet de clé

Console

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

    Accéder à la page de gestion des clés

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

  3. Cliquez sur le nom de la clé que vous souhaitez modifier.

  4. Cliquez sur l'onglet Autorisations.

  5. Cliquez sur  Accorder l'accès. Le volet Accorder l'accès à la clé s'ouvre.

  6. Dans le champ Nouveaux comptes principaux, saisissez le nom de l'agent de service Compute Engine :

    service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com
    

    Remplacez PROJECT_NUMBER par le numéro de votre projet Google Cloud.

  7. Dans le menu Sélectionner un rôle, sélectionnez Chiffreur/Déchiffreur de CryptoKeys Cloud KMS.

  8. Cliquez sur Enregistrer.

Créer une VM TPU avec une clé CMEK

Vous pouvez spécifier une CMEK lorsque vous créez une VM TPU à l'aide de l'API TPU ou de l'API Queued Resources.

API TPU

Pour spécifier une clé CMEK lors de la création d'une VM TPU à l'aide de l'API Cloud TPU, utilisez l'argument --boot-disk de la commande tpu-vm create pour spécifier la clé de chiffrement à utiliser :

gcloud compute tpus tpu-vm create TPU_NAME \
    --zone ZONE \
    --boot-disk kms-key=projects/PROJECT_ID/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME \
    --version=TPU_RUNTIME_VERSION \
    --accelerator-type=ACCLERATOR_TYPE

Remplacez les éléments suivants :

  • TPU_NAME : nom de votre VM TPU.
  • ZONE : zone dans laquelle vous prévoyez de créer votre Cloud TPU.
  • PROJECT_ID : ID de votre projet Google Cloud .
  • 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é
  • TPU_RUNTIME_VERSION : version du logiciel Cloud TPU.
  • ACCELERATOR_TYPE : type d'accélérateur pour votre Cloud TPU que vous souhaitez créer. Pour en savoir plus sur les types d'accélérateurs compatibles avec chaque version de TPU, consultez Versions de TPU.

API Queued Resources

Pour spécifier une clé CMEK lors de la création d'une VM TPU à l'aide de l'API Queued Resources, utilisez l'argument --bootdisk de la commande queued-resources create pour spécifier la clé de chiffrement à utiliser :

gcloud compute tpus queued-resources create QUEUED_RESOURCE_ID \
    --zone ZONE \
    --node-id NODE_ID \
    --boot-disk kms-key=projects/PROJECT_ID/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME \
    --runtime-version=TPU_RUNTIME_VERSION \
    --accelerator-type=ACCLERATOR_TYPE

Remplacez les éléments suivants :

  • QUEUED_RESOURCE_ID : ID attribué par l'utilisateur à la demande de ressource mise en file d'attente.
  • ZONE : zone dans laquelle vous prévoyez de créer votre Cloud TPU.
  • NODE_ID : ID attribué par l'utilisateur à la ressource Cloud TPU créée lorsque la demande de ressource en file d'attente est allouée.
  • PROJECT_ID : ID de votre projet Google Cloud .
  • 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é
  • TPU_RUNTIME_VERSION : version du logiciel Cloud TPU.
  • ACCELERATOR_TYPE : type d'accélérateur pour votre Cloud TPU que vous souhaitez créer. Pour en savoir plus sur les types d'accélérateurs compatibles avec chaque version de TPU, consultez Versions de TPU.

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 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 sera pas arrêtée automatiquement. La VM TPU pourra toujours accéder aux données du disque de démarrage chiffré jusqu'à ce qu'elle soit arrêtée ou redémarrée. 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é.