Regionales Secret erstellen

Auf dieser Seite wird beschrieben, wie Sie ein regionales Secret erstellen. Ein Secret enthält eine oder mehrere Secret-Versionen sowie Metadaten wie Labels und Anmerkungen. Der eigentliche Inhalt eines Secrets wird in einer Secret-Version gespeichert.

Hinweise

  1. Aktivieren Sie die Secret Manager API.

  2. Secret Manager für die Verwendung eines regionalen Endpunkts konfigurieren

  3. Richten Sie die Authentifizierung ein.

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

      In the Google Cloud console, activate Cloud Shell.

      Activate Cloud Shell

      At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

      REST

      Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      Weitere Informationen finden Sie in der Dokumentation zur Google Cloud -Authentifizierung unter Für die Verwendung von REST authentifizieren.

      Erforderliche Rollen

      Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Secret Manager Admin (roles/secretmanager.admin) für das Projekt, den Ordner oder die Organisation zu erteilen, um die Berechtigungen zu erhalten, die Sie zum Erstellen 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.

      Regionales Secret erstellen

      Sie können Secrets mit der Google Cloud -Konsole, der Google Cloud CLI, der Secret Manager API oder den Secret Manager-Clientbibliotheken erstellen.

      Console

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

        Zu Secret Manager

      2. Klicken Sie auf der Seite Secret Manager auf den Tab Regionale Secrets und dann auf Regionales Secret erstellen.

      3. Geben Sie auf der Seite Regionales Secret erstellen im Feld Name einen Namen für das Secret ein. Ein geheimer Name kann Groß- und Kleinbuchstaben, Ziffern, Bindestriche und Unterstriche enthalten. Ein Name darf maximal 255 Zeichen lang sein.

      4. Geben Sie einen Wert für den geheimen Schlüssel ein (z. B. abcd1234). Der Wert kann in einem beliebigen Format vorliegen, darf aber nicht größer als 64 KiB sein. Sie können auch eine Textdatei mit dem Secret-Wert über die Option Datei hochladen hochladen. Durch diese Aktion wird die Secret-Version automatisch erstellt.

      5. Wählen Sie in der Liste Region den Speicherort für Ihr regionales Secret aus.

      6. Klicken Sie auf Secret erstellen.

      gcloud

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

      • SECRET_ID: die ID des Secrets oder die voll qualifizierte Kennzeichnung für das Secret
      • LOCATION: der Google Cloud Standort des Secrets

      Führen Sie folgenden Befehl aus:

      Linux, macOS oder Cloud Shell

      gcloud secrets create SECRET_ID \
          --location=LOCATION

      Windows (PowerShell)

      gcloud secrets create SECRET_ID `
          --location=LOCATION

      Windows (cmd.exe)

      gcloud secrets create SECRET_ID ^
          --location=LOCATION

      REST

      Ersetzen Sie diese Werte in den folgenden Anfragedaten:

      • LOCATION: der Google Cloud Standort des Secrets
      • PROJECT_ID: die Google Cloud Projekt-ID
      • SECRET_ID: die ID des Secrets oder die voll qualifizierte Kennzeichnung für das Secret

      HTTP-Methode und URL:

      POST https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?secretId=SECRET_ID

      JSON-Text der Anfrage:

      {}
      

      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 POST \
      -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?secretId=SECRET_ID"

      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 POST `
      -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?secretId=SECRET_ID" | Select-Object -Expand Content

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

      {
        "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID",
        "createTime": "2024-03-25T08:24:13.153705Z",
        "etag": "\"161477e6071da9\""
      }
      

      Go

      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"
      )
      
      // createSecret creates a new secret with the given name. A secret is a logical
      // wrapper around a collection of secret versions. Secret versions hold the
      // actual secret material.
      func CreateRegionalSecret(w io.Writer, projectId, locationId, id string) error {
      	// parent := "projects/my-project/locations/my-location"
      	// id := "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 secretmanager client: %w", err)
      	}
      	defer client.Close()
      
      	parent := fmt.Sprintf("projects/%s/locations/%s", projectId, locationId)
      
      	// Build the request.
      	req := &secretmanagerpb.CreateSecretRequest{
      		Parent:   parent,
      		SecretId: id,
      	}
      
      	// Call the API.
      	result, err := client.CreateSecret(ctx, req)
      	if err != nil {
      		return fmt.Errorf("failed to create regional secret: %w", err)
      	}
      	fmt.Fprintf(w, "Created regional secret: %s\n", result.Name)
      	return nil
      }
      

      Java

      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.LocationName;
      import com.google.cloud.secretmanager.v1.Secret;
      import com.google.cloud.secretmanager.v1.SecretManagerServiceClient;
      import com.google.cloud.secretmanager.v1.SecretManagerServiceSettings;
      import java.io.IOException;
      
      public class CreateRegionalSecret {
      
        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 create.
          String secretId = "your-secret-id";
          createRegionalSecret(projectId, locationId, secretId);
        }
      
        // Create a new regional secret 
        public static Secret createRegionalSecret(
            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 parent name from the project.
            LocationName location = LocationName.of(projectId, locationId);
      
            // Build the regional secret to create.
            Secret secret =
                Secret.newBuilder().build();
      
            // Create the regional secret.
            Secret createdSecret = client.createSecret(location.toString(), secretId, secret);
            System.out.printf("Created regional secret %s\n", createdSecret.getName());
      
            return createdSecret;
          }
        }
      }

      Node.js

      Um diesen Code auszuführen, müssen Sie zuerst eine Node.js-Entwicklungsumgebung einrichten und das Cloud KMS 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 = 'locationId';
      // const secretId = 'my-secret';
      const parent = `projects/${projectId}/locations/${locationId}`;
      
      // Imports the Secret Manager libray
      
      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 createRegionalSecret() {
        const [secret] = await client.createSecret({
          parent: parent,
          secretId: secretId,
        });
      
        console.log(`Created regional secret ${secret.name}`);
      }
      
      createRegionalSecret();

      Python

      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.

      from google.cloud import secretmanager_v1
      
      
      def create_regional_secret(
          project_id: str,
          location_id: str,
          secret_id: str,
          ttl: Optional[str] = None,
      ) -> secretmanager_v1.Secret:
          """
          Creates a new regional secret with the given name.
          """
      
          # 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 parent project.
          parent = f"projects/{project_id}/locations/{location_id}"
      
          # Create the secret.
          response = client.create_secret(
              request={
                  "parent": parent,
                  "secret_id": secret_id,
                  "secret": {"ttl": ttl},
              }
          )
      
          # Print the new secret name.
          print(f"Created secret: {response.name}")
      
          return response
      
      

      Secret-Version hinzufügen

      Secret Manager erstellt automatisch Versionen von Secret-Daten. Schlüsselvorgänge wie Zugriff, Löschen, Deaktivieren und Aktivieren werden auf bestimmte Secret-Versionen angewendet. Mit Secret Manager können Sie Secrets bestimmten Versionen wie 42 oder dynamischen Aliasen wie latest zuordnen. Weitere Informationen finden Sie unter Secret-Version hinzufügen.

      Auf eine Secret-Version zugreifen

      Informationen zum Zugriff auf die Secret-Daten einer bestimmten Secret-Version für eine erfolgreiche Authentifizierung finden Sie unter Auf eine regionale Secret-Version zugreifen.

      Nächste Schritte