Auf dieser Seite wird beschrieben, wie Sie auf eine Secret-Version zugreifen. Durch den Zugriff auf eine Secret-Version wird das Secret zurückgegeben
und zusätzliche Metadaten zur Secret-Version. So greifen Sie mit der Methode
Google Cloud CLI oder Secret Manager API verwenden, müssen Sie entweder deren Versions-ID oder
dessen alias, 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 zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum 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 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 Google Cloud-Speicherort des Geheimnisses
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är-Secret-Version zugreifen
Um Rohbyte in eine Datei zu schreiben, verwenden Sie das Flag --out-file:
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
- VERSION_ID: die ID der Secret-Version
- SECRET_ID: die ID des Secrets oder eine voll qualifizierte Kennung für das Secret
- LOCATION: der Google Cloud-Speicherort des Secrets
- 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
Um die Rohbyte abzurufen, lassen Sie das Cloud SDK die Antwort als base64-codiert ausgeben 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: der Google Cloud-Speicherort des Secrets
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: der Google Cloud-Speicherort des Secrets
- PROJECT_ID: die Google Cloud-Projekt-ID
- SECRET_ID: die ID des Secrets oder eine voll qualifizierte Kennung 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 konvergieren normalerweise innerhalb weniger Minuten, können jedoch ein paar Stunden.
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