Regionales Secret bearbeiten

Auf dieser Seite wird beschrieben, wie Sie die Metadaten eines Secrets bearbeiten. Sie können viele Eigenschaften eines Secrets aktualisieren, z. B. den Verschlüsselungstyp, die Rotationsrichtlinie, das Ablaufdatum, Labels und Ereignisbenachrichtigungen. Sie können auch Anmerkungen hinzufügen und Aliase für Secret-Versionen einrichten. Sie können den Secret-Namen oder -Wert nicht bearbeiten. Wenn Sie Ihrem Secret einen neuen Wert hinzufügen möchten, müssen Sie eine neue Secret-Version erstellen.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle „Secret Manager-Administrator “ (roles/secretmanager.admin) für das Secret oder Projekt zu erteilen, um die Berechtigungen zu erhalten, die Sie zum Aktualisieren der Metadaten eines Secrets benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Secret bearbeiten

Verwenden Sie eine der folgenden Methoden, um ein Secret zu bearbeiten:

Console

  1. Rufen Sie in der Cloud de Confiance Console die Secret Manager Seite auf.

    Zu Secret Manager

  2. Klicken Sie auf der Seite Secret Manager auf den Tab Regionale Secrets.

  3. Verwenden Sie eine der folgenden Optionen, um ein Secret zu bearbeiten:

    • Suchen Sie das Secret in der Liste und klicken Sie auf das Menü Aktionen für dieses Secret. Klicken Sie im Menü Aktionen auf Bearbeiten.

    • Klicken Sie auf den Secret-Namen, um zur Secret-Detailseite zu gelangen. Klicken Sie auf der Secret-Detailseite auf Secret bearbeiten.

  4. Aktualisieren Sie auf der Seite Secret bearbeiten die Eigenschaften des Secrets nach Bedarf und klicken Sie dann auf Secret aktualisieren.

gcloud

Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:

  • SECRET_ID: die ID des Secrets
  • LOCATION: der Cloud de Confiance by S3NS Standort des Secrets
  • KEY: der Labelschlüssel
  • VALUE: der entsprechende Wert des Labels

Führen Sie folgenden Befehl aus:

Linux, macOS oder Cloud Shell

gcloud secrets update SECRET_ID --location=LOCATION \
    --update-labels=KEY=VALUE

Windows (PowerShell)

gcloud secrets update SECRET_ID --location=LOCATION `
    --update-labels=KEY=VALUE

Windows (cmd.exe)

gcloud secrets update SECRET_ID --location=LOCATION ^
    --update-labels=KEY=VALUE

Die Antwort enthält das aktualisierte Secret.

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • LOCATION: der Cloud de Confiance by S3NS Standort des Secrets
  • PROJECT_ID: die Cloud de Confiance by S3NS Projekt-ID
  • SECRET_ID: die ID des Secrets
  • KEY: der Labelschlüssel
  • VALUE: der entsprechende Wert des Labels

HTTP-Methode und URL:

PATCH https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID?updateMask=labels

JSON-Text der Anfrage:

{'labels': {'KEY': 'VAL'}}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X PATCH \
-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?updateMask=labels"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

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

Invoke-WebRequest `
-Method PATCH `
-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?updateMask=labels" | Select-Object -Expand Content

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID",
  "createTime": "2024-09-02T07:14:00.281541Z",
  "labels": {
    "key": "value"
  },
  "etag": "\"16211dc7d040b1\""
}

Go

Legen Sie vor dem Ausführen von Codebeispielen die GOOGLE_CLOUD_UNIVERSE_DOMAIN Umgebung variable auf s3nsapis.fr fest.

Um diesen Code auszuführen, müssen Sie zuerst eine Go-Entwicklungsumgebung einrichten und das Secret Manager Go SDK installieren. In Compute Engine oder GKE müssen Sie sich mit dem Bereich cloud-platform authentifizieren.

import (
	"context"
	"fmt"
	"io"

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

// updateSecret updates the metadata about an existing secret.
func UpdateRegionalSecret(w io.Writer, 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.UpdateSecretRequest{
		Secret: &secretmanagerpb.Secret{
			Name: name,
			Labels: map[string]string{
				"secretmanager": "rocks",
			},
		},
		UpdateMask: &field_mask.FieldMask{
			Paths: []string{"labels"},
		},
	}

	// Call the API.
	result, err := client.UpdateSecret(ctx, req)
	if err != nil {
		return fmt.Errorf("failed to update regional secret: %w", err)
	}
	fmt.Fprintf(w, "Updated regional secret: %s\n", result.Name)
	return nil
}

Java

Legen Sie vor dem Ausführen von Codebeispielen die GOOGLE_CLOUD_UNIVERSE_DOMAIN Umgebung variable auf s3nsapis.fr fest.

Um diesen Code auszuführen, müssen Sie zuerst eine Java-Entwicklungsumgebung einrichten und das Secret Manager Java SDK installieren. In Compute Engine oder GKE müssen Sie sich mit dem Bereich cloud-platform authentifizieren.

import com.google.cloud.secretmanager.v1.Secret;
import com.google.cloud.secretmanager.v1.SecretManagerServiceClient;
import com.google.cloud.secretmanager.v1.SecretManagerServiceSettings;
import com.google.cloud.secretmanager.v1.SecretName;
import com.google.protobuf.FieldMask;
import com.google.protobuf.util.FieldMaskUtil;
import java.io.IOException;

public class UpdateRegionalSecret {

  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 update.
    String secretId = "your-secret-id";
    updateRegionalSecret(projectId, locationId, secretId);
  }

  // Update an existing secret.
  public static Secret updateRegionalSecret(
      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 name.
      SecretName secretName = 
          SecretName.ofProjectLocationSecretName(projectId, locationId, secretId);

      // Build the updated secret.
      Secret secret =
          Secret.newBuilder()
              .setName(secretName.toString())
              .putLabels("secretmanager", "rocks")
              .build();

      // Build the field mask.
      FieldMask fieldMask = FieldMaskUtil.fromString("labels");

      // Update the secret.
      Secret updatedSecret = client.updateSecret(secret, fieldMask);
      System.out.printf("Updated regional secret %s\n", updatedSecret.getName());

      return updatedSecret;
    }
  }
}

Node.js

Legen Sie vor dem Ausführen von Codebeispielen die GOOGLE_CLOUD_UNIVERSE_DOMAIN Umgebung variable auf s3nsapis.fr fest.

Um diesen Code auszuführen, müssen Sie zuerst eine Node.js-Entwicklungsumgebung einrichten und das Secret Manager Node.js SDK installieren. In Compute Engine oder GKE müssen Sie sich mit dem Bereich cloud-platform authentifizieren.

/**
 * 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 updateRegionalSecret() {
  const [secret] = await client.updateSecret({
    secret: {
      name: name,
      labels: {
        secretmanager: 'rocks',
      },
    },
    updateMask: {
      paths: ['labels'],
    },
  });

  console.info(`Updated secret ${secret.name}`);
}

updateRegionalSecret();

Python

Legen Sie vor dem Ausführen von Codebeispielen die GOOGLE_CLOUD_UNIVERSE_DOMAIN Umgebung variable auf s3nsapis.fr fest.

Um diesen Code auszuführen, müssen Sie zuerst eine Python-Entwicklungsumgebung einrichten und das Secret Manager Python SDK installieren. In Compute Engine oder GKE müssen Sie sich mit dem Bereich cloud-platform authentifizieren.

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


def update_regional_secret(
    project_id: str, location_id: str, secret_id: str
) -> secretmanager_v1.UpdateSecretRequest:
    """
    Updates the metadata about an existing secret.
    """

    # 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}"

    # Update the secret.
    secret = {"name": name, "labels": {"secretmanager": "rocks"}}
    update_mask = {"paths": ["labels"]}
    response = client.update_secret(
        request={"secret": secret, "update_mask": update_mask}
    )

    # Print the new secret name.
    print(f"Updated secret: {response.name}")

    return response

Berechtigungen und Labels für mehrere Secrets bearbeiten

Sie können Berechtigungen und Labels für mehrere Secrets über die Cloud de Confiance Console bearbeiten.

  1. Rufen Sie in der Cloud de Confiance Console die Secret Manager Seite auf.

    Zu Secret Manager

  2. Klicken Sie auf der Seite Secret Manager auf den Tab Regionale Secrets und wählen Sie dann die Secrets aus, für die Sie die Berechtigungen und Labels bearbeiten möchten.

  3. Wenn das Infofeld geschlossen ist, klicken Sie auf Infofeld ansehen , um es einzublenden.

  4. Die für alle Secrets konfigurierten Berechtigungen und Labels werden im Infofeld auf den entsprechenden Tabs angezeigt. Rufen Sie die einzelnen Tabs auf und aktualisieren Sie die Werte nach Bedarf.

  5. Klicken Sie zum Schluss auf Speichern.

Nächste Schritte