Auf dieser Seite wird beschrieben, wie Sie mithilfe von Prüfsummen die Integrität der Daten Ihres Secrets beibehalten und überprüfen, wenn Sie Versionen von Secrets hinzufügen und auf sie zugreifen.
Sie können sich eine Prüfsumme als einen eindeutigen Fingerabdruck für Ihre Daten vorstellen. Es ist ein kurzer Code, der aus den geheimen Daten mit dem CRC32C-Algorithmus generiert wird. Wenn sich auch nur ein Bit in Ihren geheimen Daten ändert, ändert sich auch die Prüfsumme. So kann Secret Manager versehentliche Änderungen oder Beschädigungen erkennen.
Secret Manager verwendet Prüfsummen auf folgende Weise:
-
Wenn Sie eine Secret-Version hinzufügen, geschieht Folgendes:
-
Secret Manager berechnet die CRC32C-Prüfsumme Ihrer geheimen Daten.
-
Diese Prüfsumme wird zusammen mit den geheimen Daten gespeichert.
-
-
Wenn Sie auf eine Secret-Version zugreifen, geschieht Folgendes:
-
Secret Manager gibt die Secret-Daten zusammen mit der Prüfsumme zurück.
-
Anhand dieser Prüfsumme können Sie prüfen, ob die empfangenen Daten genau mit den in Secret Manager gespeicherten Daten übereinstimmen.
-
Damit die Prüfsumme mit der Struktur SecretPayload kompatibel ist, muss sie mit dem CRC32C-Algorithmus berechnet und als dezimale Ganzzahl codiert werden. Die SecretVersion-Antwort enthält ein Feld, das angibt, ob der Server diese Prüfsumme erfolgreich empfangen und validiert hat.
Das folgende Beispiel zeigt, wie Prüfsummen in Secret Manager funktionieren:
API
In diesen Beispielen wird curl verwendet, um die Verwendung mit der API zu demonstrieren. Sie können Zugriffstokens mit gcloud auth print-access-token generieren. In Compute Engine oder GKE müssen Sie sich mit dem Bereich cloud-platform authentifizieren.
Wenn vertrauliche Daten in einer Datendatei gespeichert sind, berechnen Sie die Prüfsumme mit gcloud storage hash. Die Prüfsumme muss in das Dezimalformat umgewandelt werden. Sie ist im SecretPayload-Proto als int64 codiert.
$ gcloud storage hash "/path/to/file.txt" --hex
Wenn geheime Daten in der Befehlszeile übergeben werden, berechnen Sie die Prüfsumme so:
$ gcloud storage hash --hex cat <(echo ${SECRET_DATA})
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.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/secret-id:addVersion" \
--request "POST" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
--data "{\"payload\": {\"data\": \"${SECRET_DATA}\", \"data_crc32c\": $CHECKSUM}}"
Wenn auf die Secret-Version zugegriffen wird, enthält die zurückgegebene SecretPayload die Daten zusammen mit ihrer Prüfsumme. Hier ist eine Beispielantwort:
{ "name": "projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID", "payload": { "data": "YQo=", "dataCrc32c": "163439259" } }
Wenn Sie in der Konsole eine Secret-Version hinzufügen, wird die Prüfsumme automatisch berechnet, wenn Sie einen Wert für das Secret eingeben.
Für geheime Versionen, die mit vom Kunden verwalteten Verschlüsselungsschlüsseln (CMEK) verschlüsselt und vor dem 16. Juli 2021 erstellt wurden, werden keine Prüfsummen gespeichert.
Nächste Schritte
- Benachrichtigungen für ein regionales Geheimnis einrichten
- Regionale Secrets mit Cloud Asset Inventory analysieren