Datenintegrität

In diesem Thema wird beschrieben, wie Sie mithilfe von Prüfsummen die Integrität der Daten Ihres Secrets beibehalten und überprüfen, wenn Sie Secret-Versionen hinzufügen und auf sie zugreifen.

Wenn Sie eine Secret-Version hinzufügen, können Sie einen CRC32C-Fehler übergeben. Prüfsumme mit den Daten. Diese wird dann von Secret Manager um die Datenintegrität zu gewährleisten.

Die Prüfsumme muss 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 mit den in einer Datendatei gespeicherten geheimen Daten 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

Berechnen Sie die Prüfsumme mit den an die Befehlszeile übergebenen geheimen Daten 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.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, geschieht Folgendes: Die Prüfsumme wird automatisch berechnet, wenn Sie einen Wert für das Secret eingeben.

Für Secret-Versionen, die vor dem 16. Juli 2021 mit vom Kunden verwalteten Verschlüsselungsschlüsseln (CMEK) verschlüsselt wurden, sind keine Prüfsummen gespeichert. Beim Zugriff wird daher keine Prüfsumme zurückgegeben.

Nächste Schritte