En este tema, se describe cómo usar sumas de verificación para mantener y verificar la integridad de los datos del Secret cuando agregando y acceder a versiones del Secret.
Cuando agregas una versión de secreto, tienes la opción de pasar una suma de verificación CRC32C con los datos, que Secret Manager verifica para garantizar la integridad de los datos.
La suma de comprobación debe estar codificada en formato decimal para que coincida con su codificación int64 en SecretPayload. El valor devuelto SecretVersion indica si el servidor recibió la suma de comprobación.
API
En estos ejemplos, se usa curl para demostrar el uso de la API. Puedes generar tokens de acceso con gcloud auth print-access-token. En Compute Engine o GKE, debes autenticarte con el permiso cloud-platform.
Con los datos secretos almacenados en un archivo de datos, calcula la suma de comprobación con gcloud storage hash. La suma de comprobación debe convertirse en formato decimal. se codifica como int64 en el protocolo de SecretPayload.
$ gcloud storage hash "/path/to/file.txt" --hex
Con los datos del Secret pasados en la línea de comandos, calcula la suma de verificación de la siguiente manera:
$ gcloud storage hash --hex cat <(echo ${SECRET_DATA})
Codifica los datos secretos en Base64 y guárdalos como una variable de shell.
$ SECRET_DATA=$(echo "seCr3t" | base64)
Invoca a la API mediante 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}}"
Cuando se accede a la versión del Secret, el SecretPayload contiene lo siguiente: los datos junto con su suma de comprobación. Respuesta de muestra:
{
"name": "projects/123/secrets/my_secret/versions/2",
"payload": {
"data": "YQo=",
"dataCrc32c": "163439259"
}
}
En la consola , cuando agregas una versión del secreto, la suma de comprobación se calcula automáticamente cuando ingresas un valor para el secreto.
Versiones de Secrets encriptadas con claves de encriptación administradas por el cliente (CMEK) y creadas antes del 16 de julio de 2021 no tienen sumas de comprobación almacenadas, por lo que y no se devuelven cuando se accede a ellas.
¿Qué sigue?
- Obtén más información para configurar notificaciones en un Secret.
- Obtén más información para analizar secretos con Cloud Asset Inventory.