Eliminar un secreto regional

En esta página se describe cómo eliminar un secreto y todas sus versiones.

Para eliminar solo una versión de un secreto, consulta Eliminar una versión de un secreto regional.

Roles obligatorios

Para obtener los permisos que necesitas para eliminar un secreto, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Administrador de Secret Manager (roles/secretmanager.admin) en el secreto, el proyecto, la carpeta o la organización. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.

Eliminar un secreto

Para eliminar un secreto, siga uno de estos métodos:

Consola

  1. En la Google Cloud consola, ve a la página Secret Manager.

    Ir a Secret Manager

  2. En la página Secret Manager, haz clic en la pestaña Secretos regionales.

  3. Selecciona el secreto que quieras eliminar.

  4. Haz clic en Acciones y, a continuación, en Eliminar.

  5. En el cuadro de diálogo de confirmación que aparece, introduce el nombre del secreto y, a continuación, haz clic en Eliminar secreto.

gcloud

Asegúrate de haber configurado Secret Manager para usar un endpoint regional para gestionar los secretos regionales.

Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:

  • SECRET_ID: el ID del secreto
  • LOCATION: la Google Cloud ubicación del secreto

Ejecuta el siguiente comando:

Linux, macOS o Cloud Shell

gcloud secrets delete SECRET_ID \
    --location=LOCATION

Windows (PowerShell)

gcloud secrets delete SECRET_ID `
    --location=LOCATION

Windows (cmd.exe)

gcloud secrets delete SECRET_ID ^
    --location=LOCATION

La respuesta devuelve el secreto.

REST

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • LOCATION: la Google Cloud ubicación del secreto
  • PROJECT_ID: el ID del proyecto Google Cloud
  • SECRET_ID: el ID del secreto

Método HTTP y URL:

DELETE https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID

Cuerpo JSON de la solicitud:

{}

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID"

PowerShell

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID" | Select-Object -Expand Content

Deberías recibir una respuesta JSON similar a la siguiente:

{}

Go

Para ejecutar este código, primero debes configurar un entorno de desarrollo de Go e instalar el SDK de Go de Secret Manager. En Compute Engine o GKE, debes autenticarte con el ámbito cloud-platform.

import (
	"context"
	"fmt"

	secretmanager "cloud.google.com/go/secretmanager/apiv1"
	"cloud.google.com/go/secretmanager/apiv1/secretmanagerpb"
	"google.golang.org/api/option"
)

// deleteSecret deletes the secret with the given name and all of its versions.
func DeleteRegionalSecret(projectId, locationId, secretId string) error {
	// name := "projects/my-project/locations/my-location/secrets/my-secret"

	// Create the client.
	ctx := context.Background()
	//Endpoint to send the request to regional server
	endpoint := fmt.Sprintf("secretmanager.%s.rep.googleapis.com:443", locationId)
	client, err := secretmanager.NewClient(ctx, option.WithEndpoint(endpoint))

	if err != nil {
		return fmt.Errorf("failed to create regional secretmanager client: %w", err)
	}
	defer client.Close()

	name := fmt.Sprintf("projects/%s/locations/%s/secrets/%s", projectId, locationId, secretId)
	// Build the request.
	req := &secretmanagerpb.DeleteSecretRequest{
		Name: name,
	}

	// Call the API.
	if err := client.DeleteSecret(ctx, req); err != nil {
		return fmt.Errorf("failed to delete regional secret: %w", err)
	}
	return nil
}

Java

Para ejecutar este código, primero debes configurar un entorno de desarrollo de Java e instalar el SDK de Java de Secret Manager. En Compute Engine o GKE, debes autenticarte con el ámbito cloud-platform.

import com.google.cloud.secretmanager.v1.SecretManagerServiceClient;
import com.google.cloud.secretmanager.v1.SecretManagerServiceSettings;
import com.google.cloud.secretmanager.v1.SecretName;
import java.io.IOException;

public class DeleteRegionalSecret {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.

    // Your GCP project ID.
    String projectId = "your-project-id";
    // Location of the secret.
    String locationId = "your-location-id";
    // Resource ID of the secret to delete.
    String secretId = "your-secret-id";
    deleteRegionalSecret(projectId, locationId, secretId);
  }

  // Delete an existing secret with the given name.
  public static void deleteRegionalSecret(
      String projectId, String locationId, String secretId) throws IOException {

    // Endpoint to call the regional secret manager sever
    String apiEndpoint = String.format("secretmanager.%s.rep.googleapis.com:443", locationId);
    SecretManagerServiceSettings secretManagerServiceSettings =
        SecretManagerServiceSettings.newBuilder().setEndpoint(apiEndpoint).build();

    // Initialize the client that will be used to send requests. This client only needs to be
    // created once, and can be reused for multiple requests.
    try (SecretManagerServiceClient client = 
        SecretManagerServiceClient.create(secretManagerServiceSettings)) {
      // Build the secret name.
      SecretName secretName = 
          SecretName.ofProjectLocationSecretName(projectId, locationId, secretId);

      // Delete the secret.
      client.deleteSecret(secretName);
      System.out.printf("Deleted regional secret %s\n", secretId);
    }
  }
}

Node.js

Para ejecutar este código, primero debes configurar un entorno de desarrollo de Node.js e instalar el SDK de Node.js de Secret Manager. En Compute Engine o GKE, debes autenticarte con el ámbito cloud-platform.

/**
 * TODO(developer): Uncomment these variables before running the sample.
 */
// const projectId = 'my-project';
// const locationId = 'my-location';
// const secretId = 'my-secret';

const name = `projects/${projectId}/locations/${locationId}/secrets/${secretId}`;

// Imports the Secret Manager library
const {SecretManagerServiceClient} = require('@google-cloud/secret-manager');

// Adding the endpoint to call the regional secret manager sever
const options = {};
options.apiEndpoint = `secretmanager.${locationId}.rep.googleapis.com`;

// Instantiates a client
const client = new SecretManagerServiceClient(options);

async function deleteRegionalSecret() {
  await client.deleteSecret({
    name: name,
  });

  console.log(`Deleted regional secret ${name}`);
}

deleteRegionalSecret();

Python

Para ejecutar este código, primero debes configurar un entorno de desarrollo de Python e instalar el SDK de Python de Secret Manager. En Compute Engine o GKE, debes autenticarte con el ámbito cloud-platform.

# Import the Secret Manager client library.
from google.cloud import secretmanager_v1


def delete_regional_secret(project_id: str, location_id: str, secret_id: str) -> None:
    """
    Deletes the secret with the given name and all of its versions.
    """

    # Endpoint to call the regional secret manager sever
    api_endpoint = f"secretmanager.{location_id}.rep.googleapis.com"

    # Create the Secret Manager client.
    client = secretmanager_v1.SecretManagerServiceClient(
        client_options={"api_endpoint": api_endpoint},
    )

    # Build the resource name of the secret.
    name = f"projects/{project_id}/locations/{location_id}/secrets/{secret_id}"

    # Delete the secret.
    client.delete_secret(request={"name": name})

Siguientes pasos