Garantía de la integridad de datos

En este tema, se describe cómo usar sumas de verificación para mantener y verificar la integridad de los datos de tu secreto cuando agregas versiones de secretos y accessing a ellas.

Cuando agregas una versión del secreto, tienes la opción de pasar una suma de verificación CRC32C con los datos, que luego se verifica con Secret Manager para garantizar la integridad de los datos.

La suma de verificación debe codificarse en formato decimal para que coincida con su codificación int64 en SecretPayload. La SecretVersion que se muestra indica si el servidor recibió la suma de verificació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 verificación con gsutil hash. La suma de verificación debe convertirse a formato decimal; se codifica como int64 en el protocolo SecretPayload.

$ gsutil hash -c -h "/path/to/file.txt"

Con los datos del Secret pasado en la línea de comandos, calcula la suma de verificación de la siguiente manera:

$ gsutil hash -c -h 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 secreto, la SecretPayload que se muestra contiene los datos junto con su suma de verificació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 verificación se calcula automáticamente cuando ingresas un valor para el secreto.

Las versiones de secretos encriptadas con claves de encriptación administradas por el cliente (CMEK) y creadas antes del 16 de julio de 2021 no tienen sumas de verificación almacenadas, por lo que no se muestra una cuando se accede a ellas.

¿Qué sigue?