Le firme digitali vengono utilizzate per garantire l'integrità e l'autenticità dei dati. Questo documento spiega come utilizzare la CLI gdcloud per firmare i dati e verificare le firme utilizzando chiavi asimmetriche gestite dal sistema di gestione delle chiavi (KMS).
Questa pagina è rivolta ai membri del gruppo di operatori dell'applicazione, ad esempio i team DevOps, che eseguono operazioni di gestione delle chiavi all'interno di Google Distributed Cloud (GDC) con air gap. Per saperne di più, consulta la documentazione sui segmenti di pubblico per GDC con air gap.
Prima di iniziare
Per firmare e verificare i dati utilizzando le chiavi, richiedi le autorizzazioni necessarie, prepara l'ambiente e crea una chiave di firma se non ne hai già una.
Richiedi ruoli IAM
Contatta l'amministratore IAM dell'organizzazione per concederti il seguente ruolo nello spazio dei nomi del progetto:
- Sviluppatore KMS (
kms-developer): visualizza le chiavi ed esegue operazioni di crittografia come la crittografia, la decrittografia, la firma e la verifica dei dati all'interno di un progetto.
prepara l'ambiente
Installa e inizializza la CLI gdcloud, se non l'hai ancora fatto.
Esegui l'autenticazione in GDC utilizzando la CLI gdcloud. Questa procedura richiede il certificato dell'autorità di certificazione (CA) per la console della tua organizzazione:
Scarica il certificato CA:
echo -n | openssl s_client -showcerts -connect CONSOLE_URL:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > CA_CERT_PATHSostituisci quanto segue:
CONSOLE_URL: l'URL della console della tua organizzazione (ad esempioconsole.org-1.zone1.google.gdch.test)CA_CERT_PATH: il percorso completo in cui vuoi salvare il file del certificato CA (ad esempio/tmp/my-org-ca.crt)
Accedi utilizzando il certificato CA scaricato:
gdcloud auth login --login-config-cert=CA_CERT_PATH
Assicurati che esista una chiave di firma
Per firmare e verificare i dati, devi utilizzare una chiave di firma. La creazione e la verifica delle chiavi richiedono autorizzazioni IAM separate, come descritto in dettaglio nelle pagine collegate.
- Se devi creare una chiave di firma, segui le istruzioni riportate in Crea una chiave di firma.
- Per verificare l'esistenza di una chiave di firma, segui le istruzioni riportate in Verifica la creazione della chiave di firma.
Firma i dati
Per firmare i dati, utilizza il comando gdcloud kms keys asymmetric-sign. Questo comando crea una firma digitale di un file di input utilizzando una chiave di firma e salva la firma con codifica base64:
gdcloud kms keys asymmetric-sign \
namespaces/NAMESPACE/signingKeys/KEY_NAME \
--input-file=INPUT_PATH \
--signature-file=SIGNATURE_FILE
Sostituisci quanto segue:
- NAMESPACE: lo spazio dei nomi del progetto, ad esempio:
kms-test1 - KEY_NAME: il nome della chiave utilizzata per la firma, ad esempio:
key-1 - INPUT_PATH: il percorso del file di input che vuoi firmare
- SIGNATURE_FILE: il percorso del file di output in cui salvare la firma codificata in base64
Dopo aver eseguito il comando, vedrai un file di output specificato nel flag --signature-file che contiene la firma con codifica in base64.
Verifica dati
Dopo aver firmato i dati, verifica la firma digitale base64 utilizzando il comando gdcloud kms keys asymmetric-verify. Questo comando verifica se la firma digitale con codifica base64 che ricevi dopo aver eseguito il comando gdcloud kms keys asymmetric-sign è valida o meno:
gdcloud kms keys asymmetric-verify \
namespaces/NAMESPACE/signingKeys/KEY_NAME \
--input-file=INPUT_PATH \
--signature-file=SIGNATURE_FILE
Sostituisci quanto segue:
- NAMESPACE: lo spazio dei nomi del progetto, ad esempio:
kms-test1 - KEY_NAME: il nome della chiave utilizzata per la firma, ad esempio:
key-1 - INPUT_PATH: il percorso del file di input originale che è stato firmato
- SIGNATURE_FILE: il percorso del file contenente la firma codificata in base64 da verificare
Dopo aver eseguito il comando, se l'operazione ha esito positivo, viene visualizzato l'output Verification OK. In caso contrario, viene visualizzato l'output di errore Verification Failure.