Garantia da integridade dos dados

Neste tópico, descrevemos como usar somas de verificação para manter e verificar a integridade dos dados do secret ao adicionar e accessing versões do secret.

Ao adicionar uma versão do secret, você tem a opção de passar uma soma de verificação CRC32C com os dados, que são então verificados pelo Secret Manager para garantir a integridade dos dados.

A soma de verificação precisa ser codificada no formato decimal, para corresponder à codificação int64 em SecretPayload. A SecretVersion retornada indica se a soma de verificação foi recebida pelo servidor.

API

Esses exemplos usam curl para demonstrar o uso da API. É possível gerar tokens de acesso com o gcloud auth print-access-token. No Compute Engine ou no GKE, você precisa fazer a autenticação com o escopo do cloud-platform.

Com dados secretos armazenados em um arquivo de dados, calcule a soma de verificação usando o hash gsutil. A soma de verificação precisa ser convertida para o formato decimal. Ela é codificada como int64 no proto do SecretPayload.

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

Com os dados do secret transmitidos na linha de comando, calcule a soma de verificação da seguinte maneira:

$ gsutil hash -c -h cat <(echo ${SECRET_DATA})

Codifique os dados do secret em Base64 e salve-os como uma variável do shell.

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

Invoque a API usando 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}}"

Quando a versão do secret é acessada, o SecretPayload retornado contém os dados com a soma de verificação. Exemplo de resposta:

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

No console , quando você adiciona uma versão do secret, a soma de verificação é calculada automaticamente quando você insere um valor para o secret.

As versões de secrets criptografadas com chaves de criptografia gerenciadas pelo cliente (CMEK) e criadas antes de 16 de julho de 2021 não têm somas de verificação armazenadas. Portanto, uma soma de verificação não é retornada quando elas são acessadas.

A seguir