Datenintegritätssicherung

In diesem Thema wird beschrieben, wie Sie Prüfsummen verwenden, um die Integrität der Daten Ihres Secrets beim Hinzufügen und accessing von Secret-Versionen zu erhalten und zu prüfen.

Wenn Sie eine Secret-Version hinzufügen, haben Sie die Möglichkeit, mit den Daten eine CRC32C-Prüfsumme zu übergeben, die dann von Secret Manager verifiziert wird, um die Datenintegrität zu gewährleisten.

Die Prüfsumme sollte im Dezimalformat codiert sein, damit sie mit der int64-Codierung in SecretPayload übereinstimmt. Die zurückgegebene SecretVersion gibt an, ob die Prüfsumme vom Server empfangen wurde.

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.

Berechnen Sie bei geheimen Daten, die in einer Datendatei gespeichert sind, die Prüfsumme mit gsutil hash. Die Prüfsumme muss in das Dezimalformat konvertiert werden. Sie ist im Protokoll SecretPayload als int64 codiert.

$ gsutil hash -c -h "/path/to/file.txt"

Wenn geheime Daten an die Befehlszeile übergeben werden, berechnen Sie die Prüfsumme so:

$ gsutil hash -c -h 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.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 ihrer Prüfsumme. Beispielantwort:

{
  "name": "projects/123/secrets/my_secret/versions/2",
  "payload": {
    "data": "YQo=",
    "dataCrc32c": "163439259"
  }
}

Wenn Sie in der Console eine Secret-Version hinzufügen , wird die Prüfsumme automatisch berechnet, wenn Sie einen Wert für das Secret eingeben.

Mit 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. Daher wird beim Zugriff keine Prüfsumme zurückgegeben.

Nächste Schritte