Assurance de l'intégrité des données

Cette rubrique explique comment utiliser des sommes de contrôle pour maintenir et vérifier l'intégrité des données de votre secret lors de l'ajout et de l'accès aux versions de secret.

Lorsque vous ajoutez une version de secret, vous avez la possibilité de transmettre une somme de contrôle CRC32C avec les données, qui est ensuite vérifiée par Secret Manager pour assurer l'intégrité des données.

La somme de contrôle doit être encodée au format décimal, pour correspondre à son encodage int64 dans SecretPayload. La valeur renvoyée SecretVersion indique si le serveur a reçu la somme de contrôle.

API

Ces exemples utilisent curl pour illustrer l'utilisation de l'API. Vous pouvez générer des jetons d'accès avec gcloud auth print-access-token. Sur Compute Engine ou GKE, vous devez vous authentifier avec le champ d'application cloud-platform.

Avec les données secrètes stockées dans un fichier de données, calculez la somme de contrôle, à l'aide de la commande gcloud storage hash. La somme de contrôle doit être convertie au format décimal. il est encodé en tant que int64 dans SecretPayload proto.

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

Avec les données secrètes transmises sur la ligne de commande, calculez la somme de contrôle comme suit :

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

Encodez en base64 les données du secret et enregistrez-les comme variable d'interface système.

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

Appelez l'API à l'aide de curl.

$ 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}}"

Lorsque vous accédez à la version du secret, la SecretPayload renvoyée contient les données ainsi que leur somme de contrôle. Exemple de réponse :

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

Dans la console, lorsque vous ajoutez une version de secret, la somme de contrôle est calculée automatiquement lorsque vous saisissez une valeur pour le secret.

Les versions de secrets chiffrées avec des clés de chiffrement gérées par le client (CMEK) et créées avant le 16 juillet 2021 ne stockent pas de somme de contrôle. Par conséquent, aucune somme de contrôle n'est renvoyée lorsqu'elles sont consultées.

Étape suivante