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 {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "your-project-id";
    String locationId = "us-east1";
    String keyRingId = "my-key-ring";
    String keyId = "my-key";
    String keyVersionId = "123";
    deleteKeyVersion(projectId, locationId, keyRingId, keyId, keyVersionId);
  }

  // deleteKeyVersion deletes a key version. This action is permanent and cannot be undone. Once the
  // key version is deleted, it will no longer exist.
  public void deleteKeyVersion(
      String projectId, String locationId, String keyRingId, String keyId, String keyVersionId)
      throws IOException {
    // Initialize client that will be used to send requests. This client only
    // needs to be created once, and can be reused for multiple requests. After
    // completing all of your requests, call the "close" method on the client to
    // safely clean up any remaining background resources.
    try (KeyManagementServiceClient client = KeyManagementServiceClient.create()) {
      // Build the key version name from the project, location, key ring, key,
      // and key version.
      CryptoKeyVersionName keyVersionName =
          CryptoKeyVersionName.of(projectId, locationId, keyRingId, keyId, keyVersionId);

      // Delete the key version.
      // Warning: This operation is permanent and cannot be undone.
      // Wait for the operation to complete.
      client.deleteCryptoKeyVersionAsync(keyVersionName).get();
      System.out.printf("Deleted key version: %s%n", keyVersionName.toString());
    } catch (Exception e) {
      System.err.printf("Failed to delete key version: %s%n", e.getMessage());
    }
  }
}

Python

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.

from google.cloud import kms


def delete_key_version(
    project_id: str, location_id: str, key_ring_id: str, key_id: str, version_id: str
) -> None:
    """
    Delete the given key version. This action is permanent and cannot be undone.
    Once the key version is deleted, it will no longer exist.

    Args:
        project_id (str): Google Cloud project ID (e.g. 'my-project').
        location_id (str): Cloud KMS location (e.g. 'us-east1').
        key_ring_id (str): ID of the Cloud KMS key ring (e.g. 'my-key-ring').
        key_id (str): ID of the key to use (e.g. 'my-key').
        version_id (str): ID of the key version to delete (e.g. '1').

    Returns:
        None

    """

    # Create the client.
    client = kms.KeyManagementServiceClient()

    # Build the key version name.
    key_version_name = client.crypto_key_version_path(
        project_id, location_id, key_ring_id, key_id, version_id
    )

    # Call the API.
    # Note: delete_crypto_key_version returns a long-running operation.
    # Warning: This operation is permanent and cannot be undone.
    operation = client.delete_crypto_key_version(request={"name": key_version_name})

    # Wait for the operation to complete.
    operation.result()

    print(f"Deleted key version: {key_version_name}")

API

  1. Rufen Sie zum Löschen einer Schlüsselversion die Methode cryptoKeyVersions.delete auf. Diese Methode gibt einen Vorgang mit langer Ausführungszeit zurück, den Sie abfragen können, um zu bestätigen, dass die Schlüsselversion gelöscht wurde.

    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"
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die ID des Projekts, das den Schlüsselbund enthält.
    • 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.
    • 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.

    Die Ausgabe des Befehls gibt eine Operation zurück. Sie benötigen die name des Vorgangs für den nächsten Schritt.

  2. Um zu bestätigen, dass die Schlüsselversion gelöscht wurde, können Sie die Methode operations.get aufrufen:

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

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die ID des Projekts, das den Schlüsselbund enthält.
    • LOCATION: der Cloud KMS-Speicherort des Schlüsselbunds.
    • OPERATION_NAME: Der Name des Vorgangs, der von der vorherigen Methode zurückgegeben wurde.

    Wenn die Ausgabe dieser Methode zeigt, dass done gleich true ist, ist der Vorgang abgeschlossen. Wenn kein error angegeben ist, wurde die Schlüsselversion endgültig gelöscht.

Schlüssel löschen

Sie können einen Schlüssel löschen, wenn er die folgenden Bedingungen erfüllt:

  • Der Schlüssel enthält keine Schlüsselversionen, die noch nicht gelöscht wurden.
  • Für den Schlüssel ist keine automatische Schlüsselrotation geplant.
  • Der Schlüssel wurde nicht von Cloud KMS Autokey erstellt.

So löschen Sie einen Schlüssel 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 enthält, den Sie löschen möchten.

  3. Löschen Sie den Schlüssel an einem der folgenden Speicherorte:

    • Schlüssellistenseite: Suchen Sie in der Tabelle Schlüssel für den Schlüsselbund „KEY_RING nach dem Schlüssel, den Sie löschen möchten, klicken Sie auf  Schlüsselaktionen und dann auf Löschen.
    • Schlüsseldetails: Klicken Sie auf den Namen des Schlüssels, den Sie löschen möchten, um die Seite Schlüsseldetails zu öffnen. Klicken Sie oben auf der Seite auf Löschen.
  4. 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 einen Schlüssel zu löschen:

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

Ersetzen Sie Folgendes:

  • KEY_NAME: Der Name des Schlüssels, den Sie endgültig löschen möchten. Der Schlüssel darf keine Schlüsselversionen enthalten, die noch nicht gelöscht wurden, und darf kein Schlüssel sein, der von Autokey erstellt wurde.
  • LOCATION: der Cloud KMS-Speicherort des Schlüsselbunds.
  • KEY_RING: der Name des Schlüsselbunds, der den Schlüssel enthält

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

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

	// 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.DeleteCryptoKeyRequest{
		Name: name,
	}

	// Call the API.
	// Warning: This operation is permanent and cannot be undone.
	op, err := client.DeleteCryptoKey(ctx, req)
	if err != nil {
		return fmt.Errorf("failed to delete crypto key: %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 operation: %w", err)
	}

	fmt.Fprintf(w, "Deleted crypto key: %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.CryptoKeyName;
import com.google.cloud.kms.v1.DeleteCryptoKeyMetadata;
import com.google.cloud.kms.v1.KeyManagementServiceClient;
import java.io.IOException;
import java.util.concurrent.ExecutionException;

public class DeleteKey {

  public void deleteKey() throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "your-project-id";
    String locationId = "us-east1";
    String keyRingId = "my-key-ring";
    String keyId = "my-key";
    deleteKey(projectId, locationId, keyRingId, keyId);
  }

  // deleteKey deletes a crypto key. This action is permanent and cannot be undone. Once the key
  // is deleted, it will no longer exist.
  public void deleteKey(String projectId, String locationId, String keyRingId, String keyId)
      throws IOException {
    // Initialize client that will be used to send requests. This client only
    // needs to be created once, and can be reused for multiple requests. After
    // completing all of your requests, call the "close" method on the client to
    // safely clean up any remaining background resources.
    try (KeyManagementServiceClient client = KeyManagementServiceClient.create()) {
      // Build the key name from the project, location, key ring, and key.
      CryptoKeyName keyName = CryptoKeyName.of(projectId, locationId, keyRingId, keyId);

      // Delete the key.
      // Warning: This operation is permanent and cannot be undone.
      // Wait for the operation to complete.
      client.deleteCryptoKeyAsync(keyName).get();
      System.out.printf("Deleted key: %s%n", keyName.toString());
    } catch (Exception e) {
      System.err.printf("Failed to delete key: %s%n", e.getMessage());
    }
  }
}

Python

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.

from google.cloud import kms


def delete_key(
    project_id: str, location_id: str, key_ring_id: str, key_id: str
) -> None:
    """
    Delete the given key. This action is permanent and cannot be undone. Once the
    key is deleted, it will no longer exist.

    Args:
        project_id (str): Google Cloud project ID (e.g. 'my-project').
        location_id (str): Cloud KMS location (e.g. 'us-east1').
        key_ring_id (str): ID of the Cloud KMS key ring (e.g. 'my-key-ring').
        key_id (str): ID of the key to use (e.g. 'my-key').

    Returns:
        None

    """

    # Create the client.
    client = kms.KeyManagementServiceClient()

    # Build the key name.
    key_name = client.crypto_key_path(project_id, location_id, key_ring_id, key_id)

    # Call the API.
    # Note: delete_crypto_key returns a long-running operation.
    # Warning: This operation is permanent and cannot be undone.
    operation = client.delete_crypto_key(request={"name": key_name})

    # Wait for the operation to complete.
    operation.result()

    print(f"Deleted key: {key_name}")

API

  1. Rufen Sie zum Löschen eines Schlüssels die Methode cryptoKey.delete auf. Diese Methode gibt einen lange laufenden Vorgang zurück, den Sie abfragen können, um zu bestätigen, dass der Schlüssel gelöscht wurde.

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

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die ID des Projekts, das den Schlüsselbund enthält.
    • 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, den Sie endgültig löschen möchten. Der Schlüssel darf keine Schlüsselversionen enthalten, die noch nicht gelöscht wurden, und darf kein Schlüssel sein, der von Autokey erstellt wurde.

    Die Ausgabe des Befehls gibt eine Operation zurück. Sie benötigen die name des Vorgangs für den nächsten Schritt.

  2. Sie können prüfen, ob der Schlüssel gelöscht wurde, indem Sie die Methode operations.get aufrufen:

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

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die ID des Projekts, das den Schlüsselbund enthält.
    • LOCATION: der Cloud KMS-Speicherort des Schlüsselbunds.
    • OPERATION_NAME: der Name des Vorgangs, der von der vorherigen Methode zurückgegeben wurde.

    Wenn in der Ausgabe dieser Methode done als true angezeigt wird, ist der Vorgang abgeschlossen. Wenn kein error angegeben ist, wurde der Schlüssel dauerhaft gelöscht.

Namen der eingestellten Ressourcen ansehen

Die Namen von gelöschten Schlüsseln können im selbenGoogle Cloud -Projekt nicht wiederverwendet werden. So wird verhindert, dass zwei verschiedene Schlüssel denselben Ressourcen-Identifier haben. Namen gelöschter Schlüssel werden in retiredResources-Objekten gespeichert. Sie können retiredResources abfragen, um Namen aufzurufen, die nicht für neue Cloud KMS-Ressourcen wiederverwendet werden können.

So rufen Sie eine Liste aller eingestellten Ressourcen auf:

gcloud

Führen Sie dazu diesen Befehl aus:

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

Ersetzen Sie Folgendes:

  • LOCATION: Der Standort, an dem Sie eingestellte Ressourcen ansehen 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"
	kmspb "cloud.google.com/go/kms/apiv1/kmspb"
	"google.golang.org/api/iterator"
)

// listRetiredResources lists retired resources.
func listRetiredResources(w io.Writer, parent string) error {
	// parent := "projects/my-project/locations/us-east1"

	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.ListRetiredResourcesRequest{
		Parent: parent,
	}

	// Call the API.
	it := client.ListRetiredResources(ctx, req)

	// Iterate over the results.
	for {
		resp, err := it.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			return fmt.Errorf("failed to list retired resources: %w", err)
		}

		fmt.Fprintf(w, "Retired resource: %s\n", resp.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.KeyManagementServiceClient;
import com.google.cloud.kms.v1.LocationName;
import com.google.cloud.kms.v1.RetiredResource;
import java.io.IOException;

public class ListRetiredResources {

  public void listRetiredResources() throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "your-project-id";
    String locationId = "us-east1";
    listRetiredResources(projectId, locationId);
  }

  // List retired resources in a specific project and location.
  public void listRetiredResources(String projectId, String locationId)
      throws IOException {
    // Initialize client that will be used to send requests. This client only
    // needs to be created once, and can be reused for multiple requests. After
    // completing all of your requests, call the "close" method on the client to
    // safely clean up any remaining background resources.
    try (KeyManagementServiceClient client = KeyManagementServiceClient.create()) {
      // Build the location name from the project and location.
      LocationName locationName = LocationName.of(projectId, locationId);

      // List the retired resources.
      for (RetiredResource resource : client.listRetiredResources(locationName).iterateAll()) {
        System.out.printf("Retired resource: %s%n", resource.getName());
      }
    }
  }
}

Python

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.

from typing import List

from google.cloud import kms


def list_retired_resources(project_id: str, location_id: str) -> List[kms.RetiredResource]:
    """
    List the retired resources in a location.

    Args:
        project_id (str): Google Cloud project ID (e.g. 'my-project').
        location_id (str): Cloud KMS location (e.g. 'us-east1').

    Returns:
        list[kms.RetiredResource]: The list of retired resources.
    """

    # Create the client.
    client = kms.KeyManagementServiceClient()

    # Build the parent location name.
    parent = client.common_location_path(project_id, location_id)

    # Call the API.
    # The API paginates, but the Python client library handles that for us.
    resources_list = list(client.list_retired_resources(request={"parent": parent}))

    # Iterate over the resources and print them.
    for resource in resources_list:
        print(f"Retired resource: {resource.name}")

    return resources_list

API

Verwenden Sie die Methode retiredResources.list:

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

Ersetzen Sie Folgendes:

  • PROJECT_ID: die Kennung des Projekts, in dem Sie eingestellte Ressourcen ansehen möchten.
  • LOCATION: Der Standort, an dem Sie eingestellte Ressourcen ansehen möchten.

So rufen Sie Metadaten für eine einzelne eingestellte Ressource auf:

gcloud

Führen Sie dazu diesen Befehl aus:

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

Ersetzen Sie Folgendes:

  • RETIRED_RESOURCE: Der Name der Ressource, die Sie aufrufen möchten.
  • LOCATION: Der Standort, an dem Sie eine eingestellte Ressource ansehen 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"
	kmspb "cloud.google.com/go/kms/apiv1/kmspb"
)

// getRetiredResource gets a retired resource.
func getRetiredResource(w io.Writer, name string) error {
	// name := "projects/my-project/locations/us-east1/retiredResources/my-retired-resource"

	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.GetRetiredResourceRequest{
		Name: name,
	}

	// Call the API.
	result, err := client.GetRetiredResource(ctx, req)
	if err != nil {
		return fmt.Errorf("failed to get retired resource: %w", err)
	}

	fmt.Fprintf(w, "Got retired resource: %s\n", result.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.KeyManagementServiceClient;
import com.google.cloud.kms.v1.RetiredResource;
import com.google.cloud.kms.v1.RetiredResourceName;
import java.io.IOException;

public class GetRetiredResource {

  public void getRetiredResource() throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "your-project-id";
    String locationId = "us-east1";
    String retiredResourceId = "my-retired-resource-id";
    getRetiredResource(projectId, locationId, retiredResourceId);
  }

  // Get the retired resource.
  public void getRetiredResource(
      String projectId, String locationId, String retiredResourceId)
      throws IOException {
    // Initialize client that will be used to send requests. This client only
    // needs to be created once, and can be reused for multiple requests. After
    // completing all of your requests, call the "close" method on the client to
    // safely clean up any remaining background resources.
    try (KeyManagementServiceClient client = KeyManagementServiceClient.create()) {
      // Build the retired resource name from the project, location, and retired resource id.
      RetiredResourceName name = RetiredResourceName.of(projectId, locationId, retiredResourceId);

      // Get the retired resource.
      RetiredResource response = client.getRetiredResource(name);
      System.out.printf("Retired resource: %s%n", response.getName());
    }
  }
}

Python

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.

from google.cloud import kms


def get_retired_resource(
    project_id: str, location_id: str, retired_resource_id: str
) -> kms.RetiredResource:
    """
    Get the details of a retired resource.

    Args:
        project_id (str): Google Cloud project ID (e.g. 'my-project').
        location_id (str): Cloud KMS location (e.g. 'us-east1').
        resource_id (str): ID of the retired resource to get.

    Returns:
        kms.RetiredResource: The requested retired resource.

    """

    # Create the client.
    client = kms.KeyManagementServiceClient()

    # Build the retired resource name.
    # Note: Retired resources are tied to a Location, not a KeyRing.
    # The name is like projects/{project}/locations/{location}/retiredResources/{id}
    name = client.retired_resource_path(project_id, location_id, retired_resource_id)

    # Call the API.
    response = client.get_retired_resource(request={"name": name})

    print(f"Got retired resource: {response.name}")
    return response

API

Verwenden Sie die Methode retiredResources.get:

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

Ersetzen Sie Folgendes:

  • PROJECT_ID: die Kennung des Projekts, in dem Sie eine eingestellte Ressource ansehen möchten.
  • LOCATION: Der Standort, an dem Sie eine eingestellte Ressource ansehen möchten.
  • RETIRED_RESOURCE: Der Name der Ressource, die Sie aufrufen möchten.

Die Ausgabe der Methode enthält die resourceType, die deleteTime und den vollständigen Ressourcen-Identifier der gelöschten Ressource.

Nächste Schritte