Convalidare la firma di una richiesta approvata
Ogni richiesta di approvazione di accesso approvata è firmata con una chiave di crittografia asimmetrica per convalidare l'approvazione. Le richieste approvate possono essere firmate con una chiave di proprietà di Google e gestita da Google basata su Google Cloud Google-owned and managed key o con una chiave Cloud KMS fornita dal cliente.
Quando convalidi una firma, puoi essere certo che la stringa di byte della richiesta approvata serializzata sia valida. Per completare la convalida dei contenuti dell'approvazione, devi deserializzare il messaggio e confrontarlo con i contenuti della richiesta approvata.
Prima di iniziare
Per assicurarti che il account di servizio di approvazione di accesso per la tua
risorsa disponga delle
autorizzazioni necessarie per verificare le firme delle richieste approvate,
chiedi all'amministratore di concedere il
ruolo IAM Cloud KMS CryptoKey Signer/Verifier (roles/cloudkms.signerVerifier) al account di servizio account di approvazione di accesso per la tua
risorsa sulla chiave, sul keyring o sul progetto della chiave.
L'amministratore potrebbe anche assegnare al account di servizio di approvazione di accesso per la tua risorsa le autorizzazioni richieste tramite ruoli personalizzati o altri ruoli predefiniti.
Convalidare una richiesta firmata utilizzando una chiave di proprietà di Google e gestita da Google basata su Google Cloud Google-owned and managed key
Nella Google Cloud console, vai alla pagina Approvazione di accesso.
Individua e seleziona la richiesta di approvazione di accesso approvata che vuoi convalidare. Si apre la pagina Dettagli richiesta.
In Chiave pubblica gestita da Google, fai clic su content_copy Copia.
Apri Cloud Shell, quindi salva la chiave pubblica come nuovo file denominato
public_key:echo GOOGLE_MANAGED_PUBLIC_KEY > ./public_keySostituisci
GOOGLE_MANAGED_PUBLIC_KEYcon i contenuti del campo Chiave pubblica gestita da Google.Nella Google Cloud console, nella pagina Dettagli richiesta, in Firma, fai clic su content_copy Copia.
Apri Cloud Shell, quindi salva la firma come nuovo file denominato
signature.txt:echo SIGNATURE > ./signature.txtSostituisci
SIGNATUREcon i contenuti del campo Firma.Decodifica la firma utilizzando il comando
base64e salva il risultato comedecoded_signature:base64 ./signature.txt -d > ./decoded_signatureNella Google Cloud console, nella pagina Dettagli richiesta, in Richiesta di approvazione serializzata, fai clic su content_copy Copia.
Apri Cloud Shell, quindi salva la richiesta di approvazione serializzata come nuovo file denominato
serialized_approval_request.txt:echo SERIALIZED_APPROVAL_REQUEST > ./serialized_approval_request.txtSostituisci
SERIALIZED_APPROVAL_REQUESTcon i contenuti del campo Richiesta di approvazione serializzata.Decodifica la richiesta di approvazione serializzata e salva il risultato come
decoded_serialized_approval_request:base64 ./serialized_approval_request.txt -d > ./decoded_serialized_approval_requestUtilizza
opensslper verificare la firma:openssl dgst \ -sha256 \ -verify ./public_key \ -signature ./decoded_signature \ ./decoded_serialized_approval_requestSe la firma è valida, l'output dovrebbe essere
Verified OK. Questo conferma che la richiesta di approvazione serializzata è valida.
Convalidare una richiesta firmata utilizzando una chiave fornita dal cliente
Nella Google Cloud console, vai alla pagina Approvazione di accesso.
Individua e seleziona la richiesta di approvazione di accesso approvata che vuoi convalidare. Si apre la pagina Dettagli richiesta.
Nella Google Cloud console, nella pagina Dettagli richiesta, in Firma, fai clic su content_copy Copia.
Apri Cloud Shell, quindi salva la firma come nuovo file denominato
signature.txt:echo SIGNATURE > ./signature.txtSostituisci
SIGNATUREcon i contenuti del campo Firma.Decodifica la firma e salva il risultato come
decoded_signature:base64 ./signature.txt -d > ./decoded_signatureNella Google Cloud console, nella pagina Dettagli richiesta, in Richiesta di approvazione serializzata, fai clic su content_copy Copia.
Apri Cloud Shell, quindi salva la richiesta di approvazione serializzata come nuovo file denominato
serialized_approval_request.txt:echo SERIALIZED_APPROVAL_REQUEST > ./serialized_approval_request.txtSostituisci
SERIALIZED_APPROVAL_REQUESTcon i contenuti del campo Richiesta di approvazione serializzata.Decodifica la richiesta di approvazione serializzata e salva il risultato come
decoded_serialized_approval_request:base64 ./serialized_approval_request.txt -d > ./decoded_serialized_approval_requestIn Chiave gestita dal cliente, prendi nota dell'identificatore di risorsa di la chiave.
Recupera la chiave pubblica per la chiave che hai identificato nel passaggio precedente. Salva la chiave pubblica scaricata in formato PEM come
./public_key.Utilizza
opensslper verificare la firma:openssl dgst \ -sha256 \ -verify ./public_key \ -signature ./decoded_signature \ ./decoded_serialized_approval_requestSe la firma è valida, l'output dovrebbe essere
Verified OK. Questo conferma che la richiesta di approvazione serializzata è valida.