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. L'oggetto restituito SecretVersion indica se il checksum è stato ricevuto dal server.
API
In questi esempi viene utilizzato curl per dimostrare l'utilizzo dell'API. Puoi generare token di accesso con gcloud auth stampa-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; è codificato come int64 nel protocollo SecretPayload.
$ gcloud storage hash "/path/to/file.txt" --hex
Con i dati secret trasmessi dalla riga di comando, calcola il checksum come segue:
$ gcloud storage hash --hex cat <(echo ${SECRET_DATA})
Codifica in Base64 i dati secret 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. Esempio di risposta:
{
"name": "projects/123/secrets/my_secret/versions/2",
"payload": {
"data": "YQo=",
"dataCrc32c": "163439259"
}
}
Quando aggiungi una versione del secret nella console, il checksum viene calcolato automaticamente quando inserisci un valore per il secret.
Versioni del secret criptate con chiavi di crittografia gestite dal cliente (CMEK) e creati prima del 16 luglio 2021 non hanno checksum archiviati, quindi non vengono restituiti al momento dell'accesso.
Passaggi successivi
- Scopri come configurare le notifiche per un secret.
- Scopri come analizzare i secret con Cloud Asset Inventory.