Protéger des ressources avec des clés Cloud KMS


Ce document fournit des informations sur l'utilisation des clés gérées par Cloud Key Management Service (Cloud KMS) afin de chiffrer les disques et d'autres ressources liées au stockage. Les clés gérées par Cloud KMS sont des clés de chiffrement gérées par le client (CMEK).

Vous pouvez utiliser des clés CMEK pour chiffrer les ressources Compute Engine, telles que les disques, les images système, les instantanés immédiats et les instantanés standards.

Pour en savoir plus sur le chiffrement de disques et d'autres ressources de stockage à l'aide de clés de chiffrement fournies par le client (CSEK), consultez la page Chiffrer des disques avec des clés fournies par le client.

En savoir plus sur le chiffrement des disques.

Avant de commencer

  • Familiarisez-vous avec les disques, les images, les instantanés de disques persistants et les instances de machine virtuelle (VM).
  • Déterminez si vous allez exécuter Compute Engine et Cloud KMS dans le même projet Google Cloud ou dans des projets différents. Pour en savoir plus sur les ID et numéros de projet Google Cloud, consultez la section Identifier des projets.
  • Pour le projet Google Cloud qui exécute Cloud KMS, procédez comme suit :
    1. Activez l'API Cloud KMS

      Activer l'API

    2. Créez un trousseau de clés et une clé comme indiqué sur la page Créer des trousseaux de clés et des clés.
  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud. Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine comme suit :

    Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :

    Console

    Lorsque vous utilisez la console Google Cloud pour accéder aux services et aux API Google Cloud, vous n'avez pas besoin de configurer l'authentification.

    gcloud

    1. Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

      gcloud init
    2. Définissez une région et une zone par défaut.

    REST

    Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.

      Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

      gcloud init

Rôles requis

Pour vous assurer que l'agent de service Compute Engine dispose des autorisations nécessaires pour protéger des ressources à l'aide de clés Cloud KMS, demandez à votre administrateur d'accorder à l'agent de service Compute Engine le rôle IAM suivant : Chiffreur/Déchiffreur de CryptoKeys Cloud KMS (roles/cloudkms.cryptoKeyEncrypterDecrypter) sur votre projet. Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.

Votre administrateur peut également attribuer à l'agent de service Compute Engine les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.

L'agent de service de Compute Engine se présente sous la forme suivante :

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

Pour attribuer le rôle, vous pouvez utiliser Google Cloud CLI comme suit :

gcloud projects add-iam-policy-binding KMS_PROJECT_ID \
    --member serviceAccount:service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com \
    --role roles/cloudkms.cryptoKeyEncrypterDecrypter

Remplacez les éléments suivants :

  • KMS_PROJECT_ID : ID de votre projet Google Cloud qui exécute Cloud KMS (même s'il correspond également au projet exécutant Compute Engine)
  • PROJECT_NUMBER : numéro de votre projet Google Cloud qui exécute les ressources Compute Engine, et non son ID

Spécifications de chiffrement

Les clés Cloud KMS qui servent à protéger les données dans Compute Engine sont de type AES-256. Il s'agit de clés de chiffrement de clés, s'appliquant aux clés de chiffrement de données qui chiffrent vos données, et non aux données elles-mêmes.

Les données sur les disques sont chiffrées à l'aide de clés générées par Google. Pour en savoir plus sur les spécifications liées au chiffrement par défaut dans Google Cloud, consultez la page Chiffrement au repos par défaut de la documentation sur la sécurité.

Limites

  • Vous ne pouvez pas chiffrer des ressources existantes avec des CMEK. Vous ne pouvez chiffrer des disques, des images et des instantanés qu'avec des clés CMEK lors de leur création.

  • Vous ne pouvez pas utiliser vos propres clés avec des disques SSD locaux, car les clés sont gérées par l'infrastructure Google et supprimées à l'arrêt de la VM.

  • Les ressources régionales (disques) peuvent être chiffrées par des clés se trouvant au même emplacement ou dans l'emplacement global. Par exemple, un disque de la zone us-west1-a peut être chiffré à l'aide d'une clé située dans us-west1 ou global. Les ressources globales (images, instantanés) peuvent être chiffrées par des clés se trouvant à n'importe quel emplacement.

  • Le chiffrement d'un disque, d'un instantané ou d'une image avec une clé est définitif. Vous ne pouvez pas supprimer le chiffrement de la ressource ni modifier la clé utilisée. Le seul moyen de supprimer le chiffrement ou de modifier les clés consiste à créer une copie de la ressource tout en spécifiant une nouvelle option de chiffrement.

Chiffrer un nouveau disque persistant avec des clés CMEK

Vous pouvez chiffrer un nouveau disque persistant en fournissant une clé lors de la création de la VM ou du disque.

Console

  1. Dans la console Google Cloud, accédez à la page Disques.

    Accéder à la page Disques

  2. Cliquez sur Créer un disque et saisissez les propriétés du nouveau disque.
  3. Sous Chiffrement, sélectionnez Clé gérée par le client.
  4. Dans le menu déroulant, sélectionnez la clé Cloud KMS à utiliser pour chiffrer ce disque.
  5. Pour créer le disque, cliquez sur Créer.

gcloud

Créez un disque chiffré à l'aide de la commande gcloud compute disks create, puis spécifiez la clé à l'aide de l'option --kms-key.

gcloud compute disks create DISK_NAME \
  --kms-key projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY

Remplacez les éléments suivants :

  • DISK_NAME : le nom du nouveau disque
  • KMS_PROJECT_ID : projet propriétaire de la clé Cloud KMS.
  • REGION : région où se trouve la clé.
  • KEY_RING : nom du trousseau de clés qui inclut la clé.
  • KEY : nom de la clé utilisée pour chiffrer le disque.

REST

Envoyez une requête POST à la méthode instances.insert. Pour chiffrer un disque, utilisez la propriété diskEncryptionKey avec la propriété kmsKeyName. Par exemple, vous pouvez chiffrer un nouveau disque lors de la création de la VM avec votre clé Cloud KMS en procédant comme suit :

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
"machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
"disks": [
 {
  "type": "PERSISTENT",
  "diskEncryptionKey": {
    "kmsKeyName": "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY"
  },
  "initializeParams": {
   "sourceImage": "SOURCE_IMAGE"
  },
  "boot": true
 }
],
...
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet Google Cloud exécutant Compute Engine
  • ZONE : zone dans laquelle créer la VM
  • MACHINE_TYPE : type de machine, par exemple c3-standard-4.
  • KMS_PROJECT_ID : projet propriétaire de la clé Cloud KMS.
  • REGION : la région où se trouve le disque.
  • KEY_RING : nom du trousseau de clés qui inclut la clé
  • KEY : nom de la clé utilisée pour chiffrer le disque
  • SOURCE_IMAGE : image à utiliser lors de la création de la VM, par exemple, projects/debian-cloud/global/images/debian-11-bullseye-v20231115.

De même, vous pouvez utiliser la méthode disks.insert pour créer un disque persistant autonome et le chiffrer avec votre clé Cloud KMS :

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks?sourceImage=SOURCE_IMAGE
{
 "name": "DISK_NAME",
 "diskEncryptionKey": {
   "kmsKeyName": "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY"
  },
 "type": "projects/PROJECT_ID/zones/ZONE/diskTypes/DISK_TYPE"
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet Google Cloud exécutant Compute Engine
  • ZONE : zone dans laquelle vous souhaitez créer le disque
  • SOURCE_IMAGE : image à utiliser lors de la création du disque, par exemple, projects/debian-cloud/global/images/debian-11-bullseye-v20231115.
  • DISK_NAME : nom du nouveau disque.
  • KMS_PROJECT_ID : projet propriétaire de la clé Cloud KMS.
  • REGION : la région où se trouve le disque.
  • KEY_RING : nom du trousseau de clés qui inclut la clé
  • KEY : nom de la clé utilisée pour chiffrer le disque
  • DISK_TYPE : type de disque à créer.

Créer un instantané à partir d'un disque chiffré avec une clé CMEK

Pour protéger un instantané que vous créez à partir d'un disque chiffré avec une clé CMEK, vous devez utiliser la même clé de chiffrement que celle utilisée pour chiffrer le disque.

Vous ne pouvez pas créer un instantané qui utilise une clé CMEK à moins que le disque source n'utilise également CMEK. En outre, ne pouvez pas convertir des disques ou des instantanés chiffrés par CMEK pour utiliser le chiffrement Google Cloud par défaut, sauf si vous créez une image disque entièrement nouvelle et un nouveau disque persistant.

Les instantanés créés à partir de disques chiffrés avec une clé CMEK sont incrémentiels.

Console

  1. Dans Google Cloud Console, accédez à la page Instantanés.

    Accéder à la page Instantanés

  2. Cliquez sur Create snapshot (Créer un instantané).
  3. Sous Disque source, choisissez le disque source pour l'instantané. L'instantané est automatiquement chiffré avec la même clé que celle utilisée par le disque source.

gcloud

Pour le chiffrement géré par le client, la clé Cloud KMS utilisée pour chiffrer le disque est également utilisée pour chiffrer l'instantané.

Vous pouvez créer votre instantané dans la stratégie d'emplacement de stockage définie par vos paramètres d'instantanés ou en utilisant un autre emplacement de stockage de votre choix. Pour en savoir plus, consultez la section Choisir l'emplacement de stockage de vos instantanés.

  • Pour créer un instantané à l'emplacement par défaut prédéfini ou personnalisé configuré dans vos paramètres d'instantané, utilisez la commande gcloud compute snapshots create.

    gcloud compute snapshots create SNAPSHOT_NAME \
        --source-disk-zone=SOURCE_ZONE \
        --source-disk=SOURCE_DISK_NAME \
        --snapshot-type=SNAPSHOT_TYPE
    
  • Sinon, pour remplacer les paramètres d'instantané et créer un instantané dans un emplacement de stockage personnalisé, incluez l'option --storage-location pour spécifier où stocker l'instantané.

    gcloud compute snapshots create SNAPSHOT_NAME \
        --source-disk-zone=SOURCE_ZONE \
        --source-disk=SOURCE_DISK_NAME \
        --snapshot-type=SNAPSHOT_TYPE \
        --storage-location=STORAGE_LOCATION
    

    Remplacez les éléments suivants :

    • SNAPSHOT_NAME : nom de l'instantané.
    • SOURCE_ZONE : zone du disque source.
    • SOURCE_DISK_NAME : nom du volume de disque à partir duquel vous souhaitez créer un instantané.
    • SNAPSHOT_TYPE : type d'instantané, STANDARD ou ARCHIVE. Si aucun type d'instantané n'est spécifié, un instantané STANDARD est créé.
    • STORAGE_LOCATION : Facultatif : emplacement multirégional Cloud Storage ou la région Cloud Storage dans laquelle vous souhaitez stocker l'instantané. Vous ne pouvez spécifier qu'un seul emplacement de stockage.

      N'utilisez le paramètre --storage-location que si vous souhaitez ignorer l'emplacement de stockage par défaut prédéfini ou personnalisé configuré dans vos paramètres d'instantanés.

REST

Vous pouvez créer votre instantané dans la stratégie d'emplacement de stockage définie par vos paramètres d'instantanés ou en utilisant un autre emplacement de stockage de votre choix. Pour en savoir plus, consultez la section Choisir l'emplacement de stockage de vos instantanés.

  • Pour créer un instantané dans l'emplacement par défaut prédéfini ou personnalisé configuré dans vos paramètres d'instantanés, envoyez une requête POST à la méthode snapshots.insert :

    POST https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT_ID/global/snapshots
    {
        "name": "SNAPSHOT_NAME",
        "sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME",
        "snapshotEncryptionKey":  {
         "kmsKeyName": "projects/KMS_PROJECT_ID/locations/KEY_REGION/keyRings/KEY_RING/cryptoKeys/SNAPSHOT_KEY"
        },
        "snapshotType": "SNAPSHOT_TYPE"
    }
    
  • Pour remplacer les paramètres d'instantané et créer un instantané dans un emplacement de stockage personnalisé, vous pouvez aussi envoyer une requête POST à la méthode snapshots.insert et incluez la propriété storageLocations dans votre requête :

    POST https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT_ID/global/snapshots
    {
        "name": "SNAPSHOT_NAME",
        "sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME",
        "snapshotEncryptionKey":  {
         "kmsKeyName": "projects/KMS_PROJECT_ID/locations/KEY_REGION/keyRings/KEY_RING/cryptoKeys/SNAPSHOT_KEY"
        },
        "snapshotType": "SNAPSHOT_TYPE",
        "storageLocations": [
            "STORAGE_LOCATION"
        ],
    }
    

Remplacez les éléments suivants :

  • DESTINATION_PROJECT_ID : ID du projet dans lequel vous souhaitez créer l'instantané.
  • SNAPSHOT_NAME : nom de l'instantané.
  • SOURCE_PROJECT_ID : ID de projet du disque source.
  • SOURCE_ZONE : zone du disque source.
  • SOURCE_DISK_NAME : nom du volume de disque à partir duquel vous souhaitez créer un instantané.
  • KMS_PROJECT_ID : projet contenant la clé de chiffrement stockée dans Cloud Key Management Service.
  • KEY_REGION : région où se trouve la clé Cloud KMS.
  • KEY_RING : nom du trousseau de clés contenant la clé Cloud KMS.
  • SNAPSHOT_KEY : nom de la clé Cloud KMS que vous avez utilisée pour chiffrer le disque source.
  • SNAPSHOT_TYPE : type d'instantané, STANDARD ou ARCHIVE. Si aucun type d'instantané n'est spécifié, un instantané STANDARD est créé.
  • STORAGE_LOCATION : Facultatif : emplacement multirégional Cloud Storage ou la région Cloud Storage dans laquelle vous souhaitez stocker l'instantané. Vous ne pouvez spécifier qu'un seul emplacement de stockage.

    N'utilisez le paramètre storageLocations que si vous souhaitez ignorer l'emplacement de stockage par défaut prédéfini ou personnalisé configuré dans vos paramètres d'instantanés.

Chiffrer une image importée avec une clé CMEK

Vous pouvez chiffrer une nouvelle image lorsque vous importez une image personnalisée dans Compute Engine. Pour pouvoir importer une image, vous devez créer et compresser un fichier image de disque, puis importer ce fichier compressé dans Cloud Storage.

Console

  1. Dans la console Google Cloud, accédez à la page Images.

    Accéder à la page "Images"

  2. Cliquez sur Create image (Créer une image).
  3. Sous Disque source, sélectionnez le disque dont vous souhaitez créer une image.
  4. Pour le champ Chiffrement, sélectionnez Clé gérée par le client.
  5. Dans le menu déroulant, sélectionnez la clé Cloud KMS à utiliser pour chiffrer cette image.
  6. Poursuivez le processus de création de l'image.

gcloud

Pour importer et chiffrer une image, utilisez la commande gcloud compute images create. Pour le chiffrement géré par le client, spécifiez la clé Cloud KMS de l'image.

gcloud compute images create IMAGE_NAME \
    --source-disk=SOURCE_DISK  \
    --kms-key projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY

Remplacez les éléments suivants :

  • IMAGE_NAME : nom de l'image que vous créez.
  • SOURCE_DISK : le nom du disque pour lequel créer un instantané.
  • KMS_PROJECT_ID : projet contenant la clé Cloud KMS.
  • REGION : région dans laquelle se trouve la clé Cloud KMS.
  • KEY_RING : trousseau de clés contenant la clé Cloud KMS
  • KEY : nom de la clé à utiliser pour chiffrer le nouveau disque

REST

Pour chiffrer une image importée, envoyez une requête POST à la méthode images.insert. Spécifiez l'URI du fichier compressé, ajoutez la propriété imageEncryptionKey à la requête de création d'image, puis spécifiez la clé permettant de chiffrer l'image dans la propriété kmsKeyName.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images

{
 "rawDisk": {
  "source": "http://storage.googleapis.com/example-image/example-image.tar.gz"
  },
 "name": "IMAGE_NAME",
 "sourceType": "RAW",
 "imageEncryptionKey": {
   "kmsKeyName": "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY"
   }
}

Remplacez les éléments suivants :

  • PROJECT_ID : projet dans lequel créer l'image chiffrée.
  • IMAGE_NAME : nom de l'image que vous créez.
  • KMS_PROJECT_ID : projet contenant la clé Cloud KMS.
  • REGION : région dans laquelle se trouve la clé Cloud KMS.
  • KEY_RING : trousseau de clés contenant la clé Cloud KMS
  • KEY : nom de la clé que vous avez utilisée pour chiffrer le disque source.

Créer un disque persistant à partir d'un instantané chiffré avec une clé CMEK

Pour créer un disque persistant autonome à l'aide d'un instantané chiffré, procédez comme suit :

Console

  1. Dans la console Google Cloud, accédez à la page Disques.

    Accéder à la page Disques

  2. Cliquez sur Créer un disque et saisissez les propriétés du nouveau disque.
  3. Sous Type de source, sélectionnez l'image ou l'instantané que vous souhaitez utiliser.
  4. Facultatif : Si vous souhaitez spécifier une nouvelle clé de chiffrement, dans le champ Chiffrement, spécifiez le type de clé de chiffrement à utiliser, puis fournissez les informations de clé de chiffrement.

    Si vous souhaitez supprimer la clé de chiffrement gérée ou fournie par le client, utilisez la valeur par défaut Clé de chiffrement gérée par Google pour le chiffrement.

  5. Poursuivez le processus de création du disque persistant.

gcloud

Exécutez la commande gcloud compute disks create pour créer un disque persistant autonome à partir d'un instantané chiffré.

gcloud compute disks create DISK_NAME \
    --source-snapshot SNAPSHOT_NAME \
    --kms-key projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY

Remplacez les éléments suivants :

  • DISK_NAME : le nom du nouveau disque
  • SNAPSHOT_NAME : nom de l'instantané chiffré

    Pour utiliser une image au lieu d'un instantané, remplacez --source-snapshot SNAPSHOT_NAME par --image IMAGE_NAME.

  • KMS_PROJECT_ID : projet contenant la clé Cloud KMS (facultatif).

  • REGION (facultatif) : région dans laquelle se trouve la clé Cloud KMS

  • KEY_RING : (facultatif) trousseau de clés contenant la clé Cloud KMS

  • KEY : nom de la clé Cloud KMS à utiliser pour chiffrer le nouveau disque.

    Pour chiffrer le nouveau disque, vous pouvez effectuer l'une des opérations suivantes :

    • Pour spécifier une nouvelle clé de chiffrement gérée par le client, utilisez l'option --kms-key.
    • Pour utiliser le chiffrement par défaut géré par Google, n'incluez pas l'option --kms-key.

REST

Envoyez une requête POST à la méthode compute.disks.insert pour créer un disque persistant autonome à partir d'un instantané chiffré. Utilisez la propriété sourceSnapshot pour spécifier l'instantané.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks

{
  "name": "DISK_NAME",
  "sourceSnapshot": "projects/SNAPSHOT_PROJECT_ID/global/snapshots/SNAPSHOT_NAME",
  "diskEncryptionKey": {
     "kmsKeyName": "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY"
  }
}

Remplacez les éléments suivants :

  • PROJECT_ID : projet dans lequel créer le disque
  • ZONE : zone dans laquelle créer le disque
  • DISK_NAME : le nom du nouveau disque
  • SNAPSHOT_PROJECT_ID : projet contenant l'instantané.
  • SNAPSHOT_NAME : nom de l'instantané chiffré

    Pour utiliser une image au lieu d'un instantané, remplacez sourceSnapshot par sourceImage.

  • KMS_PROJECT_ID : projet contenant la clé Cloud KMS (facultatif).

  • REGION (facultatif) : région dans laquelle se trouve la clé Cloud KMS

  • KEY_RING : (facultatif) trousseau de clés contenant la clé Cloud KMS

  • KEY : nom de la clé Cloud KMS à utiliser pour chiffrer le nouveau disque.

    Si vous incluez diskEncryptionKey, le disque est chiffré avec la clé Cloud KMS spécifiée. Si vous n'incluez pas diskEncryptionKey, le disque est chiffré à l'aide du chiffrement géré par Google.

Associer un disque de démarrage chiffré avec une clé CMEK à une nouvelle VM

Console

  1. Accédez à la page Créer une instance dans Google Cloud Console.

    Accéder à la page Créer une instance

  2. Spécifiez les détails de la VM, puis, dans la section Disque de démarrage, cliquez sur Modifier. Ensuite, procédez comme suit :

    1. Cliquez sur Disques existants.
    2. Dans la liste Disque, sélectionnez un disque existant à associer à la VM.
    3. Cliquez sur Select (Sélectionner).
  3. Poursuivez le processus de création de la VM.

gcloud

Pour associer un disque chiffré lorsque vous créez une VM, utilisez la commande gcloud compute instances create. Utilisez l'option --disk pour spécifier le disque de démarrage chiffré, comme illustré dans l'exemple suivant :

gcloud compute instances create VM_NAME \
  ...
  --disk name=DISK_NAME,boot=yes

Remplacez les éléments suivants :

  • VM_NAME : nom de la VM que vous créez.
  • DISK_NAME : le nom du disque chiffré.

REST

Envoyez une requête POST à la méthode compute.instances.insert. Utilisez la propriété disks pour spécifier le disque de démarrage chiffré, comme illustré dans l'exemple suivant :

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  ...
  "disks": [
    {
      "deviceName": "DISK_ALIAS",
      "source": "projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME"
    }
  ]
}

Remplacez les éléments suivants :

  • PROJECT_ID : projet dans lequel créer la nouvelle VM.
  • ZONE : zone dans laquelle créer la nouvelle VM
  • DISK_ALIAS : nom d'appareil unique à utiliser comme alias de disque dans le répertoire /dev/disk/by-id/google-* de la VM qui exécute un système d'exploitation Linux. Ce nom peut être utilisé pour faire référence au disque depuis l'instance au cours des processus de montage ou de redimensionnement, par exemple. Si vous ne spécifiez pas de nom d'appareil, la VM choisit un nom d'appareil par défaut à appliquer à ce disque, au format persistent-disk-x, où x est un numéro attribué par Compute Engine. Ce champ ne s'applique qu'aux volumes de disque persistant.
  • DISK_NAME : le nom du disque chiffré.

Supprimer la clé de chiffrement Cloud KMS d'un disque persistant

Vous pouvez déchiffrer le contenu d'un disque chiffré et créer un disque qui utilise le chiffrement Compute Engine par défaut. Par défaut, Google Cloud chiffre toutes les données au repos.

  1. Créez un instantané du disque chiffré.
  2. Utilisez le nouvel instantané chiffré pour créer un disque persistant.

Le nouveau disque persistant utilisera le chiffrement Google Cloud par défaut pour protéger son contenu. Tous les instantanés que vous créerez à partir de ce disque devront également utiliser le chiffrement par défaut.

Effectuer une rotation de votre clé de chiffrement Cloud KMS pour un disque

Alternez la clé utilisée pour chiffrer le disque en créant un nouveau disque qui utilise une nouvelle version de clé Cloud KMS. La rotation des clés est une bonne pratique à suivre pour respecter les pratiques de sécurité standardisées. Pour effectuer une rotation de vos clés, procédez comme suit :

  1. Effectuez une rotation de votre clé Cloud KMS.
  2. Créez un instantané du disque chiffré.
  3. Utilisez le nouvel instantané pour créer un disque avec la clé ayant subi la rotation à l'étape précédente.
  4. Remplacez le disque associé à votre VM qui utilise l'ancienne clé de chiffrement.

Lorsque vous créez le disque, il utilise la nouvelle version de clé pour le chiffrement. Tous les instantanés que vous créez à partir de ce disque utilisent la dernière version de clé primaire.

Lors de la rotation d'une clé, les données chiffrées avec les versions de clé précédentes ne sont pas automatiquement rechiffrées. Pour en savoir plus, consultez la page Rechiffrer des données. La rotation d'une clé n'entraîne ni la désactivation, ni la destruction automatique d'une version de clé existante.

Impact de la désactivation ou de la suppression des clés CMEK

La désactivation ou la suppression d'une clé de chiffrement a les effets suivants sur les ressources qu'elle protège :

  • Les VM auxquelles sont associés des disques ne peuvent pas démarrer. Si vous avez activé l'option d'arrêt de VM sur révocation de clés, les VM auxquelles sont associés des disques protégés par la clé sont arrêtées.
  • Les disques ne peuvent pas être associés à des VM et ne permettent pas de créer des instantanés.
  • Les instantanés ne peuvent pas être utilisés pour créer un disque.
  • Les images ne peuvent pas être utilisées pour créer un disque.

Si vous désactivez la clé, vous pouvez inverser les effets ci-dessus en la réactivant. Si vous supprimez la clé, les effets ci-dessus seront irréversibles.

Configurer l'arrêt de la VM sur révocation de la clé Cloud KMS

Vous pouvez configurer votre VM pour qu'elle se ferme automatiquement lorsque vous révoquez la clé Cloud KMS qui protège un disque persistant associé à la VM. Vous pouvez révoquer une clé en la désactivant ou en la supprimant. Lorsque ce paramètre est activé, la VM s'arrête dans les sept heures suivant la révocation de la clé.

Si vous réactivez la clé, vous pouvez redémarrer la VM avec le disque associé que la clé protège. La VM ne redémarre pas automatiquement après l'activation de la clé.

Console

Pour configurer une VM afin qu'elle s'arrête lorsqu'une clé Cloud KMS est révoquée, procédez comme suit :

  1. Commencez à créer une VM qui inclut un disque protégé par une clé Cloud KMS.
  2. Ouvrez le menu Mise en réseau, disques, sécurité, gestion, location unique.
  3. Développez la section Gestion.
  4. Sous Règle de révocation de clé de chiffrement gérée par le client (CMEK), sélectionnez Arrêter.

gcloud

Exécutez la commande gcloud compute instances create pour créer une VM et incluez --key-revocation-action-type=stop.

gcloud compute instances create VM_NAME \
  --image IMAGE \
  --key-revocation-action-type=stop

REST

Utilisez la méthode instances.insert pour créer une VM et définissez la propriété "keyRevocationActionType" sur "STOP". L'exemple suivant crée la VM à partir d'une image publique.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
  "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE",
  "name": "VM_NAME",
  "disks": [
    {
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      },
      "boot": true
    }
  ],
  "keyRevocationActionType": "STOP"
}

Vous pouvez également configurer un modèle d'instance pour créer des VM qui s'arrêtent sur révocation de clé à l'aide de gcloud CLI ou de REST.

Console

Vous pouvez utiliser un modèle d'instance pour créer des VM qui s'arrêtent lorsqu'une clé Cloud KMS est révoquée.

  1. Commencez à créer un modèle d'instance incluant un disque protégé par une clé Cloud KMS.
  2. Ouvrez le menu Mise en réseau, disques, sécurité, gestion, location unique.
  3. Développez la section Gestion.
  4. Sous Règle de révocation de clé de chiffrement gérée par le client (CMEK), sélectionnez Éteindre.

gcloud

Créez un modèle d'instance à l'aide de la commande gcloud compute instance-templates create et ajoutez --key-revocation-action-type=stop.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
  --key-revocation-action-type=stop

REST

Envoyez une requête POST à la méthode instanceTemplates.insert. Dans le corps de la requête, vous devez définir explicitement tous les champs de configuration requis. Si vous souhaitez que les VM créées à partir de ce modèle s'arrêtent lors de la révocation de la clé, spécifiez "keyRevocationActionType":"STOP". Par exemple, un modèle d'instance qui ne comporte que les champs obligatoires requis et va créer des VM qui s'arrêtent lors de la révocation de la clé se présente comme suit :

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceTemplates

{
  "name": "example-template",
  "properties": {
  "machineType": "e2-standard-4",
  "networkInterfaces": [
    {
      "network": "global/networks/default",
      "accessConfigs": [
        {
          "name": "external-IP",
          "type": "ONE_TO_ONE_NAT"
        }
      ]
    }
  ],
  "disks":
  [
    {
      "type": "PERSISTENT",
      "boot": true,
      "mode": "READ_WRITE",
      "initializeParams":
      {
        "sourceImage": "projects/debian-cloud/global/images/family/debian-11"
      }
    }
  ],
  "keyRevocationActionType": "STOP"
  }
}

Après avoir créé une VM qui est configurée pour s'arrêter sur révocation de Cloud KMS, créez et associez un disque persistant chiffré avec une clé Cloud KMS.