Borra recursos de Cloud KMS

En este documento, se muestra cómo borrar de forma permanente las claves y las versiones de claves de Cloud Key Management Service. Esta operación es irreversible.

En Cloud KMS, la destrucción y el borrado son operaciones diferentes:

  • Destrucción: Inhabilita una versión de clave de forma permanente, lo que incluye la destrucción irreversible del material de clave subyacente después del período de destrucción especificado. Una versión de clave en estado DESTROYED no se puede usar para operaciones criptográficas y ya no se factura. Puedes destruir una versión de clave que se usó para encriptar datos y destruir criptográficamente los datos que quieras que sean irrecuperables de forma permanente. Las versiones de claves destruidas aún se incluyen en las listas de recursos de Cloud KMS.

  • Borrado: Quita una clave o una versión de clave de las listas de recursos de Cloud KMS en la consola de Google Cloud , Google Cloud CLI, la API de Cloud Key Management Service y las bibliotecas cliente. En el caso de los proyectos con muchas claves o versiones de claves que ya no están activas, la eliminación optimiza las operaciones de búsqueda y de lista. Los nombres de CryptoKey borrados no se pueden volver a usar. Puedes ver una lista de los nombres de CryptoKey borrados que no se pueden volver a usar con el método retiredResources.list.

Antes de comenzar

Para obtener los permisos que necesitas para borrar y ver recursos de Cloud KMS, pídele a tu administrador que te otorgue el rol de IAM de administrador de Cloud KMS (roles/cloudkms.admin) en la clave. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene los permisos necesarios para borrar y ver recursos de Cloud KMS. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para borrar y ver recursos de Cloud KMS:

  • Para borrar una versión de clave, haz lo siguiente: cloudkms.cryptoKeyVersions.delete
  • Para borrar una llave, haz lo siguiente: cloudkms.cryptoKeys.delete
  • Para ver los recursos borrados, haz lo siguiente:
    • cloudkms.retiredResources.get
    • cloudkms.retiredResources.list

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

Borra una versión de clave

Puedes borrar una versión de clave si se encuentra en el estado DESTROYED, IMPORT_FAILED o GENERATION_FAILED. Si se importó la versión de clave, solo se puede borrar si falló la importación.

Para borrar de forma permanente una versión de clave, sigue estos pasos:

Console

  1. En la consola de Google Cloud , ve a la página Administración de claves.

    Ir a Key Management

  2. Haz clic en el nombre del llavero de claves que contiene la clave y la versión de clave que deseas borrar.

  3. Haz clic en la clave que contiene la versión de clave que deseas borrar.

  4. En la tabla Versiones, busca la versión de clave que deseas borrar y, luego, haz clic en Más acciones.

  5. En el menú Más acciones, haz clic en Borrar.

  6. En el mensaje de confirmación, ingresa el nombre de la clave y, luego, haz clic en Borrar.

gcloud

Para borrar una versión de clave, ejecuta el siguiente comando:

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

Reemplaza lo siguiente:

  • KEY_VERSION: Es el número de la versión de la clave que deseas borrar de forma permanente. La versión de clave indicada debe estar en el estado DESTROYED, IMPORT_FAILED o GENERATION_FAILED.
  • LOCATION: la ubicación de Cloud KMS del llavero de claves.
  • KEY_RING: el nombre del llavero de claves que incluye la clave
  • KEY_NAME: Es el nombre de la clave que contiene la versión de la clave que deseas borrar de forma permanente.

Go

Si deseas obtener información para instalar y usar la biblioteca cliente de Cloud KMS, consulta las bibliotecas cliente de Cloud KMS.

Para autenticarte en Cloud KMS, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

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

Si deseas obtener información para instalar y usar la biblioteca cliente de Cloud KMS, consulta las bibliotecas cliente de Cloud KMS.

Para autenticarte en Cloud KMS, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

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

Si deseas obtener información para instalar y usar la biblioteca cliente de Cloud KMS, consulta las bibliotecas cliente de Cloud KMS.

Para autenticarte en Cloud KMS, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

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. Para borrar una versión de clave, llama al método cryptoKeyVersions.delete. Este método devuelve una operación de larga duración que puedes sondear para confirmar que se borró la versión de la clave.

    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"
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID del proyecto que contiene el llavero de claves.
    • LOCATION: la ubicación de Cloud KMS del llavero de claves.
    • KEY_RING: el nombre del llavero de claves que incluye la clave
    • KEY_NAME: Es el nombre de la clave que contiene la versión de la clave que deseas borrar de forma permanente.
    • KEY_VERSION: Es el número de la versión de la clave que deseas borrar de forma permanente. La versión de clave indicada debe estar en el estado DESTROYED, IMPORT_FAILED o GENERATION_FAILED.

    El resultado del comando devuelve un Operation. Necesitarás el name de la operación para el siguiente paso.

  2. Para confirmar que se borró la versión de clave, puedes llamar al método operations.get:

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

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID del proyecto que contiene el llavero de claves.
    • LOCATION: la ubicación de Cloud KMS del llavero de claves.
    • OPERATION_NAME: Es el nombre de la operación que devolvió el método anterior.

    Cuando el resultado de este método muestre que done es true, la operación habrá finalizado. Si no se indica ningún error, significa que la versión de la clave se borró de forma permanente.

Borra una clave

Puedes borrar una clave si cumple con las siguientes condiciones:

  • La clave no contiene versiones de claves que aún no se hayan borrado.
  • La clave no tiene programada la rotación automática de claves.
  • La clave no fue creada por Autokey de Cloud KMS.

Para borrar una clave de forma permanente, sigue estos pasos:

Console

  1. En la consola de Google Cloud , ve a la página Administración de claves.

    Ir a Key Management

  2. Haz clic en el nombre del llavero de claves que contiene la clave que deseas borrar.

  3. Borra la clave en cualquiera de las siguientes ubicaciones:

    • Página de la lista de claves: En la tabla Claves para el llavero de claves "KEY_RING", busca la clave que deseas borrar, haz clic en Acciones de la clave y, luego, en Borrar.
    • Página Detalles de la clave: Haz clic en el nombre de la clave que deseas borrar para abrir su página Detalles de la clave. En la parte superior de la página, haz clic en Borrar.
  4. En el mensaje de confirmación, ingresa el nombre de la clave y, luego, haz clic en Borrar.

gcloud

Para borrar una clave, ejecuta el siguiente comando:

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

Reemplaza lo siguiente:

  • KEY_NAME: Es el nombre de la clave que deseas borrar de forma permanente. La clave no debe contener ninguna versión de clave que aún no se haya borrado y no debe ser una clave creada por Autokey.
  • LOCATION: la ubicación de Cloud KMS del llavero de claves.
  • KEY_RING: el nombre del llavero de claves que incluye la clave

Go

Si deseas obtener información para instalar y usar la biblioteca cliente de Cloud KMS, consulta las bibliotecas cliente de Cloud KMS.

Para autenticarte en Cloud KMS, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

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

Si deseas obtener información para instalar y usar la biblioteca cliente de Cloud KMS, consulta las bibliotecas cliente de Cloud KMS.

Para autenticarte en Cloud KMS, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

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

Si deseas obtener información para instalar y usar la biblioteca cliente de Cloud KMS, consulta las bibliotecas cliente de Cloud KMS.

Para autenticarte en Cloud KMS, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

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. Para borrar una clave, llama al método cryptoKey.delete. Este método devuelve una operación de larga duración que puedes sondear para confirmar que se borró la clave.

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

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID del proyecto que contiene el llavero de claves.
    • LOCATION: la ubicación de Cloud KMS del llavero de claves.
    • KEY_RING: el nombre del llavero de claves que incluye la clave
    • KEY_NAME: Es el nombre de la clave que deseas borrar de forma permanente. La clave no debe contener ninguna versión de clave que aún no se haya borrado y no debe ser una clave creada por Autokey.

    El resultado del comando devuelve un Operation. Necesitarás el name de la operación para el siguiente paso.

  2. Para confirmar que se borró la clave, puedes llamar al método operations.get:

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

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID del proyecto que contiene el llavero de claves.
    • LOCATION: la ubicación de Cloud KMS del llavero de claves.
    • OPERATION_NAME: Es el nombre de la operación que devolvió el método anterior.

    Cuando el resultado de este método muestre que done es true, la operación habrá finalizado. Si no se indica ningún error, significa que la clave se borró de forma permanente.

Cómo ver los nombres de los recursos retirados

Los nombres de las claves que se borraron no se pueden volver a usar en el mismo proyecto deGoogle Cloud . Esto evita que dos claves diferentes tengan el mismo identificador de recurso. Los nombres de las claves borradas se almacenan en objetos retiredResources. Puedes consultar retiredResources para ver los nombres que no se pueden reutilizar para los recursos nuevos de Cloud KMS.

Para ver una lista de todos los recursos retirados, sigue estos pasos:

gcloud

Ejecuta el comando siguiente:

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

Reemplaza lo siguiente:

  • LOCATION: Es la ubicación en la que deseas ver los recursos retirados.

Go

Si deseas obtener información para instalar y usar la biblioteca cliente de Cloud KMS, consulta las bibliotecas cliente de Cloud KMS.

Para autenticarte en Cloud KMS, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

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

Si deseas obtener información para instalar y usar la biblioteca cliente de Cloud KMS, consulta las bibliotecas cliente de Cloud KMS.

Para autenticarte en Cloud KMS, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

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

Si deseas obtener información para instalar y usar la biblioteca cliente de Cloud KMS, consulta las bibliotecas cliente de Cloud KMS.

Para autenticarte en Cloud KMS, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

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

Usa el método retiredResources.list.

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

Reemplaza lo siguiente:

  • PROJECT_ID: Es el identificador del proyecto en el que deseas ver los recursos retirados.
  • LOCATION: Es la ubicación en la que deseas ver los recursos retirados.

Para ver los metadatos de un recurso retirado individual, sigue estos pasos:

gcloud

Ejecuta el comando siguiente:

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

Reemplaza lo siguiente:

  • RETIRED_RESOURCE: Es el nombre del recurso que deseas ver.
  • LOCATION: Es la ubicación en la que deseas ver un recurso retirado.

Go

Si deseas obtener información para instalar y usar la biblioteca cliente de Cloud KMS, consulta las bibliotecas cliente de Cloud KMS.

Para autenticarte en Cloud KMS, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

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

Si deseas obtener información para instalar y usar la biblioteca cliente de Cloud KMS, consulta las bibliotecas cliente de Cloud KMS.

Para autenticarte en Cloud KMS, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

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

Si deseas obtener información para instalar y usar la biblioteca cliente de Cloud KMS, consulta las bibliotecas cliente de Cloud KMS.

Para autenticarte en Cloud KMS, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

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

Usa el método retiredResources.get:

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

Reemplaza lo siguiente:

  • PROJECT_ID: Es el identificador del proyecto en el que deseas ver un recurso retirado.
  • LOCATION: Es la ubicación en la que deseas ver un recurso retirado.
  • RETIRED_RESOURCE: Es el nombre del recurso que deseas ver.

El resultado del método incluye el resourceType, el deleteTime y el identificador completo del recurso borrado.

¿Qué sigue?