Auf dieser Seite wird beschrieben, wie Sie 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 mit der Google Cloud CLI oder der Secret Manager API auf eine Secret-Version zugreifen möchten, müssen Sie entweder die Versions-ID oder den Alias angeben, falls zugewiesen. Sie können auch auf die neueste Version eines Secrets zugreifen, indem Sie latest
als Versions-ID angeben.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Secret Manager Secret Accessor (roles/secretmanager.secretAccessor
) für ein Secret zu gewähren, um die Berechtigungen zu erhalten, die Sie für den Zugriff auf eine Secret-Version 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.
Auf eine Secret-Version zugreifen
Sie haben folgende Möglichkeiten, ein Secret zu bearbeiten:
Console
-
Rufen Sie in der Google Cloud Console die Seite Secret Manager auf.
-
Klicken Sie auf der Seite Secret Manager auf den Tab Regionale Secrets und dann auf ein Secret, um auf seine Versionen zuzugreifen.
-
Wählen Sie auf der Seite mit den Secret-Details auf dem Tab Versionen die Secret-Version aus, auf die Sie zugreifen möchten.
-
Klicken Sie auf das Menü
Aktionen, das mit der Secret-Version verknüpft ist, und dann auf Secret-Wert ansehen. -
Ein Dialogfeld mit dem Wert der Secret-Version wird angezeigt. Klicken Sie auf Fertig, um das Dialogfeld zu schließen.
gcloud
Auf eine Secret-Version zugreifen
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
- VERSION_ID: der Ressourcenname der Secret-Version
- SECRET_ID: die ID des Secrets oder die voll qualifizierte Kennzeichnung für das Secret
- LOCATION: den Speicherort des Geheimnisses in Google Cloud
Führen Sie folgenden Befehl aus:
Linux, macOS oder Cloud Shell
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --location=LOCATION
Windows (PowerShell)
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --location=LOCATION
Windows (cmd.exe)
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --location=LOCATION
Auf eine binäre Secret-Version zugreifen
Verwenden Sie das Flag „–out-file“, um Rohbytes in eine Datei zu schreiben:
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
- VERSION_ID: die ID der Secret-Version
- SECRET_ID: die ID des Secrets oder die voll qualifizierte Kennzeichnung für das Secret
- LOCATION: den Speicherort des Geheimnisses in Google Cloud
- PATH_TO_SECRET: Der vollständige Pfad (einschließlich Dateiname), unter dem Sie den abgerufenen Secret-Wert speichern möchten.
Führen Sie folgenden Befehl aus:
Linux, macOS oder Cloud Shell
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --location=LOCATION --out-file="PATH_TO_SECRET"
Windows (PowerShell)
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --location=LOCATION --out-file="PATH_TO_SECRET"
Windows (cmd.exe)
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --location=LOCATION --out-file="PATH_TO_SECRET"
Rohbytes abrufen
Damit Sie die Rohbyte erhalten, muss das Cloud SDK die Antwort als base64-codiert und decodieren:
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
- VERSION_ID: die ID der Secret-Version
- SECRET_ID: die ID des Secrets oder die voll qualifizierte Kennzeichnung für das Secret
- LOCATION: den Speicherort des Geheimnisses in Google Cloud
Führen Sie folgenden Befehl aus:
Linux, macOS oder Cloud Shell
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --location=LOCATION --format='get(payload.data)' | tr '_-' '/+' | base64 -d
Windows (PowerShell)
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --location=LOCATION --format='get(payload.data)' | tr '_-' '/+' | base64 -d
Windows (cmd.exe)
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --location=LOCATION --format='get(payload.data)' | tr '_-' '/+' | base64 -d
Die Antwort enthält die Secret-Version.
REST
Auf eine Secret-Version zugreifen
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION: den Speicherort des Geheimnisses in Google Cloud
- PROJECT_ID: die Google Cloud-Projekt-ID
- SECRET_ID: die ID des Secrets oder die voll qualifizierte Kennzeichnung für das Secret
- VERSION_ID: die ID der Secret-Version
HTTP-Methode und URL:
GET https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID:access
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 GET \
-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/versions/VERSION_ID:access"
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 GET `
-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/versions/VERSION_ID:access" | Select-Object -Expand Content
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID", "payload": { "data": "c2VDcjN0Cg==", "dataCrc32c": "3131222104" } }
Secret mit dem jq
-Tool extrahieren
Die Antwort payload.data
ist der base64-codierte Inhalt der Secret-Version.
Der folgende Befehl ist ein Beispiel für das Extrahieren des Secrets mit dem jq
-Tool.
$ curl "https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID:access" \
--request "GET" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
| jq -r ".payload.data" | base64 --decode
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.
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.
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.
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.
Ressourcenkonsistenz
Das Hinzufügen einer Secret-Version und das sofortige Zugreifen auf diese Secret-Version anhand der Versionsnummer 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 unter Zugriffsänderungsverteilung.
Nächste Schritte
- Einem regionalen Secret-Version einen Alias zuweisen
- Regionale Secret-Version deaktivieren
- Regionale Secret-Version löschen