Supprimer un secret régional

Cette page explique comment supprimer un secret et toutes ses versions.

Pour ne supprimer qu'une version de secret, consultez Détruire une version de secret régionale.

Rôles requis

Pour obtenir les autorisations nécessaires pour supprimer un secret, demandez à votre administrateur de vous accorder le rôle IAM Administrateur de Secret Manager (roles/secretmanager.admin) sur le secret, le projet, le dossier ou l'organisation. Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

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

Supprimer un secret

Pour supprimer un secret, utilisez l'une des méthodes suivantes:

Console

  1. Accédez à la page Secret Manager dans la console Google Cloud.

    Accéder à Secret Manager

  2. Sur la page Secret Manager, cliquez sur l'onglet Secrets régionaux.

  3. Sélectionnez le secret que vous souhaitez supprimer.

  4. Cliquez sur Actions, puis sur Supprimer.

  5. Dans la boîte de dialogue de confirmation qui s'ouvre, saisissez le nom du secret, puis cliquez sur Supprimer le secret.

gcloud

Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :

  • SECRET_ID: ID du secret ou identifiant complet du secret
  • LOCATION: emplacement Google Cloud du secret

Exécutez la commande suivante :

Linux, macOS ou 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 réponse renvoie le secret.

REST

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • LOCATION: emplacement Google Cloud du secret
  • PROJECT_ID : ID de projet Google Cloud
  • SECRET_ID: ID du secret ou identifiant complet du secret

Méthode HTTP et URL :

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

Corps JSON de la requête :

{}

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

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

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

$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

Vous devriez recevoir une réponse JSON de ce type :

{}

Go

Pour exécuter ce code, commencez par configurer un environnement de développement Go et installez le SDK Secret Manager pour Go. Sur Compute Engine ou GKE, vous devez vous authentifier avec le champ d'application 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

Pour exécuter ce code, commencez par configurer un environnement de développement Java et installez le SDK Secret Manager pour Java. Sur Compute Engine ou GKE, vous devez vous authentifier avec le champ d'application 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

Pour exécuter ce code, commencez par configurer un environnement de développement Node.js, puis installez le SDK Secret Manager pour Node.js. Sur Compute Engine ou GKE, vous devez vous authentifier avec le champ d'application 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

Pour exécuter ce code, commencez par configurer un environnement de développement Python et installez le SDK Secret Manager pour Python. Sur Compute Engine ou GKE, vous devez vous authentifier avec le champ d'application 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})

Étape suivante