In diesem Thema wird beschrieben, wie Sie ein Secret erstellen, eine Secret-Version hinzufügen und auf eine Secret-Version zugreifen. Weitere Informationen zum Verwalten von Secrets finden Sie unter Secrets verwalten.
Hinweis
Konfigurieren Sie Secret Manager und Ihre lokale Umgebung einmal pro Projekt.
Secret erstellen
Ein Secret enthält eine oder mehrere Secret-Versionen sowie Metadaten wie Labels und Replikationsinformationen. Der eigentliche Inhalt eines Secrets wird in einer Secret-Version gespeichert.
Wenn Sie nicht sicher sind, welche Replikationsrichtlinie für Ihr Secret geeignet ist, finden Sie weitere Informationen unter Replikationsrichtlinie auswählen.
Zum Erstellen eines Secrets benötigen Sie die Rolle "Secret Manager-Administrator" (roles/secretmanager.admin
) für das Projekt, den Ordner oder die Organisation.
Web-UI
-
Rufen Sie in der Cloud Console die Seite Secret Manager auf:
-
Klicken Sie auf der Seite Secret Manager auf Secret erstellen.
-
Geben Sie auf der Seite Secret erstellen unter Name den Wert
my-secret
ein. -
(Optional) Geben Sie in das Feld Secret-Wert
abcd1234
ein, um beim Erstellen des ersten Secrets ebenfalls eine Secret-Version hinzuzufügen. -
Lassen Sie den Abschnitt Regionen unverändert.
-
Klicken Sie auf Secret erstellen.
Befehlszeile
Um Secret Manager in der Befehlszeile zu verwenden, installieren oder aktualisieren Sie zuerst das Cloud SDK Version 305.0.0 oder höher.
$ gcloud secrets create secret-id \
--replication-policy="automatic"
C#
Um diesen Code auszuführen, müssen Sie eine C#-Entwicklungsumgebung einrichten und das Secret Manager C# SDK installieren.
Go
Um diesen Code auszuführen, müssen Sie zuerst eine Go-Entwicklungsumgebung einrichten und das Secret Manager Go SDK installieren.
Java
Um diesen Code auszuführen, müssen Sie zuerst eine Java-Entwicklungsumgebung einrichten und das Secret Manager Java SDK installieren.
Node.js
Um diesen Code auszuführen, müssen Sie zuerst eine Node.js-Entwicklungsumgebung einrichten und das Cloud KMS Node.js SDK installieren.
PHP
Um diesen Code auszuführen, müssen Sie zuerst die Informationen zur Verwendung von PHP in Google Cloud und zum Installieren des Secret Manager PHP SDK lesen.
Python
Um diesen Code auszuführen, müssen Sie zuerst eine Python-Entwicklungsumgebung einrichten und das Secret Manager Python SDK installieren.
Ruby
Um diesen Code auszuführen, müssen Sie zuerst eine Ruby-Entwicklungsumgebung einrichten und das Secret Manager Ruby SDK installieren.
API
In diesen Beispielen wird curl verwendet, um die Verwendung mit der API zu demonstrieren.
$ curl "https://secretmanager.googleapis.com/v1/projects/project-id/secrets?secretId=secret-id" \
--request "POST" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
--header "x-goog-user-project: project-id" \
--data "{\"replication\": {\"automatic\": {}}}"
Secret-Version hinzufügen
Eine Secret-Version enthält den eigentlichen Inhalt eines Secrets. Eine Secret-Version kann aktiviert, deaktiviert oder gelöscht werden. Erstellen Sie eine neue Version, um den Inhalt eines Secrets zu ändern.
Zum Hinzufügen einer Secret-Version ist die Rolle des Secret Manager-Administrators (roles/secretmanager.admin
) für das Secret, das Projekt, den Ordner oder die Organisation.
Rollen können in einer Secret-Version nicht zugewiesen werden.
Web-UI
-
Rufen Sie in der Cloud Console die Seite Secret Manager auf:
-
Klicken Sie imSecret Manager Seite, klicken Sie Mehr anzeigen
und wählen Sie Neue Version hinzufügen, um die Option zu aktivieren. -
Geben Sie im Dialogfeld Neue Version hinzufügen in das Feld Secret-Wert den Wert
abcd1234
ein. -
Klicken Sie auf die Schaltfläche Neue Version hinzufügen.
Befehlszeile
Um Secret Manager in der Befehlszeile zu verwenden, installieren oder aktualisieren Sie zuerst das Cloud SDK Version 305.0.0 oder höher.
Fügen Sie eine Secret-Version aus dem Inhalt einer Datei auf der Festplatte hinzu:
$ gcloud secrets versions add secret-id --data-file="/path/to/file.txt"
Sie können eine Secret-Version auch direkt in der Befehlszeile hinzufügen. Dies wird jedoch nicht empfohlen, da der Klartext in Ihrem Shell-Verlauf erscheint:
$ echo -n "this is my super secret data" | \
gcloud secrets versions add secret-id --data-file=-
Sie können optional eine Version aus dem Dateiinhalt hinzufügen, wenn Sie ein Secret erstellen:
$ gcloud secrets create secret-id --data-file="/path/to/file.txt"
C#
Um diesen Code auszuführen, müssen Sie eine C#-Entwicklungsumgebung einrichten und das Secret Manager C# SDK installieren.
Go
Um diesen Code auszuführen, müssen Sie zuerst eine Go-Entwicklungsumgebung einrichten und das Secret Manager Go SDK installieren.
Java
Um diesen Code auszuführen, müssen Sie zuerst eine Java-Entwicklungsumgebung einrichten und das Secret Manager Java SDK installieren.
Node.js
Um diesen Code auszuführen, müssen Sie zuerst eine Node.js-Entwicklungsumgebung einrichten und das Cloud KMS Node.js SDK installieren.
PHP
Um diesen Code auszuführen, müssen Sie zuerst die Informationen zur Verwendung von PHP in Google Cloud und zum Installieren des Secret Manager PHP SDK lesen.
Python
Um diesen Code auszuführen, müssen Sie zuerst eine Python-Entwicklungsumgebung einrichten und das Secret Manager Python SDK installieren.
Ruby
Um diesen Code auszuführen, müssen Sie zuerst eine Ruby-Entwicklungsumgebung einrichten und das Secret Manager Ruby SDK installieren.
API
In diesen Beispielen wird curl verwendet, um die Verwendung mit der API zu demonstrieren.
Codieren Sie die Secret-Daten und speichern Sie sie als Shell-Variable.
$ SECRET_DATA=$(echo "seCr3t" | base64)
Rufen Sie die API mit "curl" auf.
$ curl "https://secretmanager.googleapis.com/v1/projects/project-id/secrets/secret-id:addVersion" \
--request "POST" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
--header "x-goog-user-project: project-id" \
--data "{\"payload\": {\"data\": \"${SECRET_DATA}\"}}"
Auf eine Secret-Version zugreifen
Beim Zugriff auf eine Secret-Version werden die Secret-Inhalte sowie zusätzliche Metadaten zur Secret-Version zurückgegeben. Wenn Sie auf eine Secret-Version zugreifen, geben Sie deren version-id an. Sie können auch auf die neueste Version eines Secrets zugreifen, indem Sie "latest"
als Version angeben.
Für den Zugriff auf eine Secret-Version ist die Rolle des Secret Manager-Secrets (roles/secretmanager.secretAccessor
) für das Secret, das Projekt, den Ordner oder die Organisation erforderlich. IAM-Rollen können in einer Secret-Version nicht zugewiesen werden.
Hinweis zur Ressourcenkonsistenz
Das Hinzufügen einer Secret-Version und das sofortige Zugreifen auf diese Secret-Version ist im Secret Manager ein strikt konsistenter Vorgang. Andere Vorgänge im Secret Manager sind letztendlich konsistent. Vorgänge mit Eventual Consistency werden in der Regel innerhalb von Minuten ausgeführt, können aber ein paar Stunden dauern.
Die Propagierung von IAM-Berechtigungen ist letztendlich konsistent. Das bedeutet, dass die Gewährung oder Aufhebung des Zugriffs auf Secrets möglicherweise nicht sofort wirksam wird. Weitere Informationen finden Sie in der IAM-Dokumentation.
Web-UI
-
Rufen Sie in der Cloud Console die Seite Secret Manager auf:
-
Klicken Sie auf der Seite Secret Manager auf den Namen eines Secrets.
-
Suchen Sie auf der Seite Secret-Details in der Tabelle Versionen nach einer Secret-Version, auf die zugegriffen werden kann.
-
Klicken Sie in der Spalte Aktionen auf Mehr anzeigen
. -
Klicken Sie im Menü auf Secret-Wert anzeigen.
-
Sie sehen ein Dialogfeld mit dem Wert der Secret-Version. Klicken Sie abschließend auf Fertig.
Befehlszeile
Um Secret Manager in der Befehlszeile zu verwenden, installieren oder aktualisieren Sie zuerst das Cloud SDK Version 305.0.0 oder höher.
Rufen Sie eine Secret-Version auf:
$ gcloud secrets versions access version-id --secret="secret-id"
So greifen Sie auf eine Secret-Secret-Version zu:
$ gcloud secrets versions access version-id --secret="secret-id" --format='get(payload.data)' | tr '_-' '/+' | base64 -d
C#
Um diesen Code auszuführen, müssen Sie eine C#-Entwicklungsumgebung einrichten und das Secret Manager C# SDK installieren.
Go
Um diesen Code auszuführen, müssen Sie zuerst eine Go-Entwicklungsumgebung einrichten und das Secret Manager Go SDK installieren.
Java
Um diesen Code auszuführen, müssen Sie zuerst eine Java-Entwicklungsumgebung einrichten und das Secret Manager Java SDK installieren.
Node.js
Um diesen Code auszuführen, müssen Sie zuerst eine Node.js-Entwicklungsumgebung einrichten und das Cloud KMS Node.js SDK installieren.
PHP
Um diesen Code auszuführen, müssen Sie zuerst die Informationen zur Verwendung von PHP in Google Cloud und zum Installieren des Secret Manager PHP SDK lesen.
Python
Um diesen Code auszuführen, müssen Sie zuerst eine Python-Entwicklungsumgebung einrichten und das Secret Manager Python SDK installieren.
Ruby
Um diesen Code auszuführen, müssen Sie zuerst eine Ruby-Entwicklungsumgebung einrichten und das Secret Manager Ruby SDK installieren.
API
In diesen Beispielen wird curl verwendet, um die Verwendung mit der API zu demonstrieren.
$ curl "https://secretmanager.googleapis.com/v1/projects/project-id/secrets/secret-id/versions/version-id:access" \
--request "GET" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
--header "x-goog-user-project: project-id"
Die Antwort payload.data
ist der base64-codierte Inhalt der Secret-Version. Hier sehen Sie ein Beispiel für das Extrahieren des Secrets mit dem jq
-Tool:
$ curl "https://secretmanager.googleapis.com/v1/projects/project-id/secrets/secret-id/versions/version-id:access" \
--request "GET" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
--header "x-goog-user-project: project-id" \
| jq -r ".payload.data" | base64 --decode
Nächste Schritte
- Weitere Informationen zur Verwaltung von Secrets und Secret-Versionen
- Zugriff auf Ressourcen verwalten