Secret-Daten sind nicht veränderbar und die meisten Vorgänge werden auf Secret-Versionen ausgeführt. Eine Secret-Version enthält die eigentlichen Secret-Daten sowie state und Metadaten zum Secret. Auf dieser Seite wird beschrieben, wie Sie eine Secret-Version hinzufügen.
Weitere Informationen zur Versionierung finden Sie in diesem Video.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für ein Secret zuzuweisen, um die Berechtigungen zum Hinzufügen einer Secret-Version zu erhalten:
-
Ergänzer von Secret Manager-Secret-Versionen (
roles/secretmanager.secretVersionAdder
) -
Verwalter von Secret Manager-Secret-Versionen (
roles/secretmanager.secretVersionManager
)
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.
IAM-Rollen können in einer Secret-Version nicht zugewiesen werden.
Secret-Version hinzufügen
Sie haben folgende Möglichkeiten, eine geheime Version hinzuzufügen:
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 suchen Sie nach dem Secret, dem Sie die neue Version hinzufügen möchten.
-
Klicken Sie auf das Menü
Aktionen, das mit diesem Secret verknüpft ist, und dann auf Neue Version hinzufügen. Das Dialogfeld Neue Version hinzufügen wird angezeigt. -
Geben Sie im Feld Secret-Wert einen Wert für das Secret ein, z. B.
abcd1234
. Alternativ können Sie eine Datei mit dem geheimen Wert hochladen. -
Klicken Sie auf Neue Version hinzufügen.
gcloud
Secret-Version aus dem Inhalt einer Datei auf der Festplatte hinzufügen
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: den Speicherort des Geheimnisses in Google Cloud
- FILE_PATH: Der vollständige Pfad (einschließlich Dateiname) zur Datei mit den Versionsdetails
Führen Sie folgenden Befehl aus:
Linux, macOS oder Cloud Shell
gcloud secrets versions add SECRET_ID --location=LOCATION --data-file="FILE_PATH"
Windows (PowerShell)
gcloud secrets versions add SECRET_ID --location=LOCATION --data-file="FILE_PATH"
Windows (cmd.exe)
gcloud secrets versions add SECRET_ID --location=LOCATION --data-file="FILE_PATH"
Die Antwort enthält die neu erstellte Secret-Version.
Secret-Version direkt in der Befehlszeile hinzufügen
Sie können eine Secret-Version auch direkt in der Befehlszeile hinzufügen. Dies wird jedoch nicht empfohlen, da sie in der Liste der Prozesse als Klartext erscheint und von anderen Systemnutzern abgefangen werden kann. Der Befehl mit dem Klartext wird auch in Ihrem Shell-Verlauf angezeigt.
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
- SECRET_DATA: die Daten, die Sie in der geheimen Version speichern möchten
- 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
echo -n "SECRET_DATA" | \ gcloud secrets versions add SECRET_ID --location=LOCATION --data-file=-
Windows (PowerShell)
echo -n "SECRET_DATA" | ` gcloud secrets versions add SECRET_ID --location=LOCATION --data-file=-
Windows (cmd.exe)
echo -n "SECRET_DATA" | ^ gcloud secrets versions add SECRET_ID --location=LOCATION --data-file=-
Die Antwort enthält die neu erstellte Secret-Version.
Optional: Fügen Sie beim Erstellen eines Secrets eine Version aus dem Inhalt einer Datei hinzu.
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: den Speicherort des Geheimnisses in Google Cloud
- FILE_PATH: Der vollständige Pfad (einschließlich Dateiname) zur Datei mit den Versionsdetails
Führen Sie folgenden Befehl aus:
Linux, macOS oder Cloud Shell
gcloud secrets create SECRET_ID --location=LOCATION --data-file="FILE_PATH"
Windows (PowerShell)
gcloud secrets create SECRET_ID --location=LOCATION --data-file="FILE_PATH"
Windows (cmd.exe)
gcloud secrets create SECRET_ID --location=LOCATION --data-file="FILE_PATH"
Die Antwort enthält die neu erstellte Secret-Version.
REST
Codieren Sie die Secret-Daten und speichern Sie sie als Shell-Variable.
$ SECRET_DATA=$(echo "seCr3t" | base64)
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
HTTP-Methode und URL:
POST https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID:addVersion
JSON-Text der Anfrage:
{"payload": {"data": "${SECRET_DATA}"}}
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/SECRET_ID:addVersion"
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/SECRET_ID:addVersion" | Select-Object -Expand Content
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/1", "createTime": "2024-03-25T08:24:13.153705Z", "state": "ENABLED", "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.
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.
Secret-Versionsstatus
Eine Secret-Version kann jederzeit einen der folgenden Status haben:
-
Aktiviert: In diesem Status kann auf die Secret-Version zugegriffen und sie beschrieben werden. Dies ist der Standardstatus für eine neue Secret-Version.
-
Deaktiviert: In diesem Status kann nicht auf die Secret-Version zugegriffen werden, der Inhalt des Secrets ist jedoch noch vorhanden. Die Secret-Version kann wieder aktiviert werden, um den Zugriff wiederherzustellen.
-
Vernichtet: In diesem Status wird der Inhalt der Secret-Version verworfen. Die Secret-Version kann nicht auf einen anderen Status geändert werden.
Ihnen werden sowohl aktivierte als auch deaktivierte Secret-Versionen in Rechnung gestellt. Für Secret-Versionen, die gelöscht wurden, werden Ihnen keine Kosten in Rechnung gestellt.
Nächste Schritte
- Auf eine regionale Secret-Version zugreifen
- Einem regionalen Secret-Version einen Alias zuweisen
- Regionale Secret-Versionen auflisten und Versionsdetails ansehen