Este tópico descreve como usar somas de verificação para manter e verificar a integridade dos dados do secret quando adicionando e como acessar versões de secrets.
Ao adicionar uma versão do secret, você tem a opção de transmitir uma soma de verificação CRC32C com os dados, que sã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. O valor SecretVersion retornado 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 confidenciais armazenados em um arquivo de dados, calcule a soma de verificação usando gcloud storage hash. O checksum precisa ser convertido para o formato decimal. Ele é codificado como int64 no proto SecretPayload.
$ gcloud storage hash "/path/to/file.txt" --hex
Com os dados secretos transmitidos na linha de comando, calcule a checksum da seguinte maneira:
$ gcloud storage hash --hex 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"
}
}
Quando você adicionar uma versão do secret no console, faça o seguinte: a soma de verificação é calculada automaticamente quando você insere um valor para o secret.
Versões de secrets criptografadas com chaves de criptografia gerenciadas pelo cliente (CMEK) e criados antes de 16 de julho de 2021 não têm somas de verificação armazenadas. Por isso, retornados quando são acessados.
A seguir
- Saiba como configurar notificações em um secret.
- Saiba como analisar secrets com o Inventário de recursos do Cloud.