Supprimer des ressources Cloud KMS

Ce document explique comment supprimer définitivement des clés et des versions de clé Cloud Key Management Service. Cette opération est irréversible.

Dans Cloud KMS, la destruction et la suppression sont deux opérations différentes :

  • Destruction : désactive définitivement une version de clé, y compris en détruisant de manière irréversible le matériel de clé sous-jacent après la période de destruction spécifiée. Une version de clé à l'état DESTROYED ne peut pas être utilisée pour les opérations de chiffrement et n'est plus facturée. Vous pouvez détruire une version de clé utilisée pour chiffrer des données afin de crypto-supprimer les données que vous souhaitez rendre définitivement irrécupérables. Les versions de clé détruites sont toujours incluses dans les listes de ressources Cloud KMS.

  • Suppression : supprime une clé ou une version de clé des listes de ressources Cloud KMS dans la console Google Cloud , Google Cloud CLI, l'API Cloud Key Management Service et les bibliothèques clientes. Pour les projets comportant de nombreuses clés ou versions de clé qui ne sont plus actives, la suppression simplifie les opérations de recherche et de liste. Les noms de CryptoKey supprimés ne peuvent pas être réutilisés. Vous pouvez afficher la liste des noms de CryptoKey supprimés qui ne peuvent pas être réutilisés à l'aide de la méthode retiredResources.list.

Avant de commencer

Pour obtenir les autorisations nécessaires pour supprimer et afficher les ressources Cloud KMS, demandez à votre administrateur de vous accorder le rôle IAM Administrateur Cloud KMS (roles/cloudkms.admin) sur la clé. Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Ce rôle prédéfini contient les autorisations requises pour supprimer et afficher les ressources Cloud KMS. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour supprimer et afficher les ressources Cloud KMS :

  • Pour supprimer une version de clé : cloudkms.cryptoKeyVersions.delete
  • Pour supprimer une clé : cloudkms.cryptoKeys.delete
  • Pour afficher les ressources supprimées :
    • cloudkms.retiredResources.get
    • cloudkms.retiredResources.list

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Supprimer une version de clé

Vous pouvez supprimer une version de clé si elle est à l'état DESTROYED, IMPORT_FAILED ou GENERATION_FAILED. Si la version de clé a été importée, elle ne peut être supprimée que si l'importation a échoué.

Pour supprimer définitivement une version de clé, procédez comme suit :

gcloud

Pour supprimer une version de clé, exécutez la commande suivante :

gcloud kms keys versions delete KEY_VERSION \
    --location=LOCATION \
    --keyring=KEY_RING \
    --key=KEY_NAME

Remplacez les éléments suivants :

  • KEY_VERSION : numéro de la version de clé que vous souhaitez supprimer définitivement. La version de clé indiquée doit être dans l'état DESTROYED, IMPORT_FAILED ou GENERATION_FAILED.
  • LOCATION : emplacement Cloud KMS du trousseau de clés.
  • KEY_RING : nom du trousseau de clés qui inclut la clé
  • KEY_NAME : nom de la clé contenant la version de clé que vous souhaitez supprimer définitivement.

REST

  1. Pour supprimer une version de clé, appelez la méthode cryptoKeyVersions.delete. Cette méthode renvoie une opération de longue durée que vous pouvez interroger pour confirmer que la version de clé a été supprimée.

    curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/KEY_VERSION" \
    --request "DELETE" \
    --header "authorization: Bearer TOKEN"
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet contenant le trousseau de clés.
    • LOCATION : emplacement Cloud KMS du trousseau de clés.
    • KEY_RING : nom du trousseau de clés qui inclut la clé
    • KEY_NAME : nom de la clé contenant la version de clé que vous souhaitez supprimer définitivement.
    • KEY_VERSION : numéro de la version de clé que vous souhaitez supprimer définitivement. La version de clé indiquée doit être dans l'état DESTROYED, IMPORT_FAILED ou GENERATION_FAILED.

    Le résultat de la commande renvoie un Operation. Vous aurez besoin du name de l'opération pour l'étape suivante.

  2. Pour confirmer que la version de clé a été supprimée, vous pouvez appeler la méthode operations.get :

    curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_NAME" \
        --request "GET" \
        --header "authorization: Bearer TOKEN"
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet contenant le trousseau de clés.
    • LOCATION : emplacement Cloud KMS du trousseau de clés.
    • OPERATION_NAME : nom de l'opération renvoyé par la méthode précédente.

    Lorsque le résultat de cette méthode indique que done est true, l'opération est terminée. Si aucun error n'est indiqué, cela signifie que la version de la clé a été définitivement supprimée.

Supprimer une clé

Vous pouvez supprimer une clé si elle remplit les conditions suivantes :

  • La clé ne contient aucune version qui n'a pas encore été supprimée.
  • Aucune rotation automatique des clés n'est planifiée pour la clé.
  • La clé n'a pas été créée par Cloud KMS Autokey.

Pour supprimer définitivement une clé, procédez comme suit :

gcloud

Pour supprimer une clé, exécutez la commande suivante :

gcloud kms keys delete KEY_NAME \
    --location=LOCATION \
    --keyring=KEY_RING

Remplacez les éléments suivants :

  • KEY_NAME : nom de la clé que vous souhaitez supprimer définitivement. La clé ne doit pas contenir de versions de clé qui n'ont pas encore été supprimées et ne doit pas être une clé créée par Autokey.
  • LOCATION : emplacement Cloud KMS du trousseau de clés.
  • KEY_RING : nom du trousseau de clés qui inclut la clé

REST

  1. Pour supprimer une clé, appelez la méthode cryptoKey.delete. Cette méthode renvoie une opération de longue durée que vous pouvez interroger pour confirmer que la clé a été supprimée.

    curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME" \
    --request "DELETE" \
    --header "authorization: Bearer TOKEN"
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet contenant le trousseau de clés.
    • LOCATION : emplacement Cloud KMS du trousseau de clés.
    • KEY_RING : nom du trousseau de clés qui inclut la clé
    • KEY_NAME : nom de la clé que vous souhaitez supprimer définitivement. La clé ne doit pas contenir de versions de clé qui n'ont pas encore été supprimées et ne doit pas être une clé créée par Autokey.

    Le résultat de la commande renvoie un Operation. Vous aurez besoin du name de l'opération pour l'étape suivante.

  2. Pour confirmer que la clé a été supprimée, vous pouvez appeler la méthode operations.get :

    curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_NAME" \
        --request "GET" \
        --header "authorization: Bearer TOKEN"
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet contenant le trousseau de clés.
    • LOCATION : emplacement Cloud KMS du trousseau de clés.
    • OPERATION_NAME : nom de l'opération renvoyé par la méthode précédente.

    Lorsque le résultat de cette méthode indique que done est true, l'opération est terminée. Si aucun error n'est indiqué, cela signifie que la clé a été définitivement supprimée.

Afficher les noms des ressources abandonnées

Les noms des clés supprimées ne peuvent pas être réutilisés dans le même projetGoogle Cloud . Cela empêche deux clés différentes d'avoir le même identifiant de ressource. Les noms des clés supprimées sont stockés dans des objets retiredResources. Vous pouvez interroger retiredResources pour afficher les noms qui ne peuvent pas être réutilisés pour les nouvelles ressources Cloud KMS.

Pour afficher la liste de toutes les ressources abandonnées, procédez comme suit :

gcloud

Exécutez la commande ci-dessous.

gcloud kms retired-resources list \
    --location=LOCATION

Remplacez les éléments suivants :

  • LOCATION : l'emplacement où vous souhaitez afficher les ressources abandonnées.

REST

Utilisez la méthode retiredResources.list :

curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/retiredResources/" \
    --request "GET" \
    --header "authorization: Bearer TOKEN"

Remplacez les éléments suivants :

  • PROJECT_ID : identifiant du projet dans lequel vous souhaitez afficher les ressources abandonnées.
  • LOCATION : l'emplacement où vous souhaitez afficher les ressources abandonnées.

Pour afficher les métadonnées d'une ressource individuelle obsolète, procédez comme suit :

gcloud

Exécutez la commande ci-dessous.

gcloud kms retired-resources describe RETIRED_RESOURCE \
    --location=LOCATION

Remplacez les éléments suivants :

  • RETIRED_RESOURCE : nom de la ressource que vous souhaitez afficher.
  • LOCATION : emplacement où vous souhaitez afficher une ressource abandonnée.

REST

Utilisez la méthode retiredResources.get :

curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/retiredResources/RETIRED_RESOURCE" \
    --request "GET" \
    --header "authorization: Bearer TOKEN"

Remplacez les éléments suivants :

  • PROJECT_ID : identifiant du projet dans lequel vous souhaitez afficher une ressource obsolète.
  • LOCATION : emplacement où vous souhaitez afficher une ressource abandonnée.
  • RETIRED_RESOURCE : nom de la ressource que vous souhaitez afficher.

Le résultat de cette méthode inclut le resourceType, le deleteTime et l'identifiant complet de la ressource supprimée.

Étapes suivantes