Datenintegrität

Auf dieser Seite wird beschrieben, wie Sie Prüfsummen verwenden, um die Integrität der Daten Ihres Secrets beim Hinzufügen und Zugreifen auf Secret-Versionen zu wahren und zu überprüfen.

Eine Prüfsumme ist wie ein eindeutiger Fingerabdruck für Ihre Daten. Es ist ein kurzer Code, der aus den Secret-Daten mit dem CRC32C-Algorithmus generiert wird. Wenn sich auch nur ein einzelnes Bit in Ihren Secret-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:

  1. Wenn Sie eine Secret-Version hinzufügen:

    • Secret Manager berechnet die CRC32C-Prüfsumme Ihrer Secret-Daten.

    • Diese Prüfsumme wird zusammen mit den Secret-Daten gespeichert.

  2. Wenn Sie auf eine Secret-Version zugreifen:

    • Secret Manager gibt die Secret-Daten zusammen mit der Prüfsumme zurück.

    • Mit dieser Prüfsumme können Sie überprüfen, ob die empfangenen Daten genau mit den in Secret Manager gespeicherten Daten übereinstimmen.

Damit die Prüfsumme mit der SecretPayload Struktur kompatibel ist, muss sie mit dem CRC32C-Algorithmus berechnet und als Dezimalzahl 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 Secret-Daten in einer Datendatei gespeichert sind, berechnen Sie die Prüfsumme, mit gcloud storage hash. Die Prüfsumme muss in das Dezimalformat konvertiert werden. Sie wird im SecretPayload-Protokoll als int64 codiert.

$ gcloud storage hash "/path/to/file.txt" --hex

Codieren Sie die Secret-Daten und speichern Sie sie als Shell-Variable.

$ SECRET_DATA=$(echo "seCr3t" | base64)

Wenn Secret-Daten in der Befehlszeile übergeben werden, berechnen Sie die Prüfsumme so:

$ gcloud storage hash --hex cat <(echo ${SECRET_DATA})

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" \
    --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 der 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 Secret-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