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 eine CRC32C-Prüfsumme mit den Daten übergeben, die dann von Secret Manager überprüft wird, 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.

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.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 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 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