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 SecretVersion renvoyée indique si la somme de contrôle a été reçue par le serveur.
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 des données secrètes stockées dans un fichier de données, calculez la somme de contrôle à l'aide de la fonction de hachage gcloud Storage. Le somme de contrôle doit être convertie au format décimal. Elle est encodée en tant que int64 dans le protocole SecretPayload.
$ 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
- Découvrez comment configurer des notifications sur un secret.
- Découvrez comment analyser les secrets avec Cloud Asset Inventory.