Cloud KMS-Ressourcen löschen

In diesem Dokument wird beschrieben, wie Sie Cloud Key Management Service-Schlüssel und ‑Schlüsselversionen dauerhaft löschen. Dieser Vorgang kann nicht rückgängig gemacht werden.

In Cloud KMS sind das Löschen und das Vernichten unterschiedliche Vorgänge:

  • Löschen: Deaktiviert eine Schlüsselversion dauerhaft und löscht das zugrunde liegende Schlüsselmaterial nach dem angegebenen Löschzeitraum unwiderruflich. Eine Schlüsselversion im Status DESTROYED kann nicht für kryptografische Vorgänge verwendet werden und wird nicht mehr abgerechnet. Sie können eine Schlüsselversion, die zum Verschlüsseln von Daten verwendet wurde, löschen, um Daten kryptografisch zu vernichten, die dauerhaft nicht wiederhergestellt werden sollen. Gelöschte Schlüsselversionen sind weiterhin in Listen von Cloud KMS-Ressourcen enthalten.

  • Löschen: Entfernt einen Schlüssel oder eine Schlüsselversion aus Listen von Cloud KMS-Ressourcen in der Google Cloud Console, der Google Cloud CLI, der Cloud Key Management Service API und den Clientbibliotheken. Bei Projekten mit vielen Schlüsseln oder Schlüsselversionen, die nicht mehr aktiv sind, wird durch das Löschen die Suche und die Listenbearbeitung optimiert. Gelöschte CryptoKey-Namen können nicht wiederverwendet werden. Mit der Methode retiredResources.list können Sie eine Liste der gelöschten CryptoKey-Namen aufrufen, die nicht wiederverwendet werden können.

Hinweis

Um die Berechtigungen zu erhalten, die Sie zum Löschen und Aufrufen von Cloud KMS-Ressourcen benötigen, bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Cloud KMS-Administrator (roles/cloudkms.admin) für den Schlüssel zuzuweisen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierte Rolle enthält die Berechtigungen, die zum Löschen und Aufrufen von Cloud KMS-Ressourcen erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen, um die notwendigen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind zum Löschen und Aufrufen von Cloud KMS-Ressourcen erforderlich:

  • So löschen Sie eine Schlüsselversion: cloudkms.cryptoKeyVersions.delete
  • So löschen Sie einen Schlüssel: cloudkms.cryptoKeys.delete
  • So rufen Sie gelöschte Ressourcen auf:
    • cloudkms.retiredResources.get
    • cloudkms.retiredResources.list

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Schlüsselversion löschen

Sie können eine Schlüsselversion löschen, wenn sie sich im Status DESTROYED, IMPORT_FAILED oder GENERATION_FAILED befindet. Wenn die Schlüsselversion importiert wurde, kann sie nur gelöscht werden, wenn der Import fehlgeschlagen ist.

So löschen Sie eine Schlüsselversion endgültig:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Schlüsselverwaltung auf.

    Key Management aufrufen

  2. Klicken Sie auf den Namen des Schlüsselbunds, der den Schlüssel und die Schlüsselversion enthält, die Sie löschen möchten.

  3. Klicken Sie auf den Schlüssel, der die Schlüsselversion enthält, die Sie löschen möchten.

  4. Suchen Sie in der Tabelle Versionen die Schlüsselversion, die Sie löschen möchten, und klicken Sie dann auf  Weitere Aktionen.

  5. Klicken Sie im Menü Weitere Aktionen auf Löschen.

  6. Geben Sie in der Bestätigungsaufforderung den Schlüsselnamen ein und klicken Sie auf Löschen.

gcloud

Führen Sie den folgenden Befehl aus, um eine Schlüsselversion zu löschen:

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

Ersetzen Sie Folgendes:

  • KEY_VERSION: Die Nummer der Schlüsselversion, die Sie endgültig löschen möchten. Die angegebene Schlüsselversion muss den Status DESTROYED, IMPORT_FAILED oder GENERATION_FAILED haben.
  • LOCATION: der Cloud KMS-Speicherort des Schlüsselbunds.
  • KEY_RING: der Name des Schlüsselbunds, der den Schlüssel enthält
  • KEY_NAME: Der Name des Schlüssels, der die Schlüsselversion enthält, die Sie endgültig löschen möchten.

Go

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud KMS finden Sie unter Cloud KMS-Clientbibliotheken.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud KMS zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

import (
	"context"
	"fmt"
	"io"

	kms "cloud.google.com/go/kms/apiv1"
	"cloud.google.com/go/kms/apiv1/kmspb"
)

// deleteCryptoKeyVersion deletes a crypto key version. This action is permanent and cannot be undone. Once the key version is deleted, it will no longer exist.
func deleteCryptoKeyVersion(w io.Writer, name string) error {
	// name := "projects/my-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key/cryptoKeyVersions/1"

	// Create the client.
	ctx := context.Background()
	client, err := kms.NewKeyManagementClient(ctx)
	if err != nil {
		return fmt.Errorf("failed to create kms client: %w", err)
	}
	defer client.Close()

	// Build the request.
	req := &kmspb.DeleteCryptoKeyVersionRequest{
		Name: name,
	}

	// Call the API.
	// Warning: This operation is permanent and cannot be undone.
	op, err := client.DeleteCryptoKeyVersion(ctx, req)
	if err != nil {
		return fmt.Errorf("failed to delete crypto key version: %w", err)
	}

	// Wait for the operation to complete.
	if err := op.Wait(ctx); err != nil {
		return fmt.Errorf("failed to wait for delete crypto key version operation: %w", err)
	}

	fmt.Fprintf(w, "Deleted crypto key version: %s\n", req.Name)
	return nil
}

Java

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud KMS finden Sie unter Cloud KMS-Clientbibliotheken.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud KMS zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

import com.google.cloud.kms.v1.CryptoKeyVersionName;
import com.google.cloud.kms.v1.KeyManagementServiceClient;
import java.io.IOException;

public class DeleteKeyVersion {

  public void deleteKeyVersion() throws IOException {