Questo argomento descrive come utilizzare i checksum per mantenere e verificare l'integrità dei dati del secret quando aggiungi e accedi alle versioni dei secret.
Quando aggiungi una versione del segreto, hai la possibilità di passare un checksum CRC32C con i dati, che viene poi verificato da Secret Manager per garantire l'integrità dei dati.
Il checksum deve essere codificato in formato decimale, in modo che corrisponda alla codifica int64 in SecretPayload. La SecretVersion restituita indica se il checksum è stato ricevuto dal server.
API
Questi esempi utilizzano curl per dimostrare l'utilizzo dell'API. Puoi generare token di accesso con gcloud auth print-access-token. Su Compute Engine o GKE, devi autenticarti con l'ambito cloud-platform.
Con i dati segreti archiviati in un file di dati, calcola il checksum utilizzando gcloud storage hash. Il checksum deve essere convertito in formato decimale; viene codificato come int64 nel proto SecretPayload.
$ gcloud storage hash "/path/to/file.txt" --hex
Con i dati del segreto passati sulla riga di comando, calcola il checksum come segue:
$ gcloud storage hash --hex cat <(echo ${SECRET_DATA})
Codifica i dati segreti in base64 e salvali come variabile di shell.
$ SECRET_DATA=$(echo "seCr3t" | base64)
Richiama l'API utilizzando 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 viene eseguito l'accesso alla versione del secret, SecretPayload restituito contiene i dati insieme al relativo checksum. Risposta di esempio:
{
"name": "projects/123/secrets/my_secret/versions/2",
"payload": {
"data": "YQo=",
"dataCrc32c": "163439259"
}
}
Nella console , quando aggiungi una versione del secret, il checksum viene calcolato automaticamente quando inserisci un valore per il secret.
Le versioni dei secret criptate con chiavi di crittografia gestite dal cliente (CMEK) e create prima del 16 luglio 2021 non hanno checksum memorizzati, pertanto non viene restituito un checksum quando si accede.
Passaggi successivi
- Scopri come configurare le notifiche per un secret.
- Scopri come analizzare i secret con Cloud Asset Inventory.