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 Google-owned and managed key 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 l'account di servizio Access Approval per la tua
risorsa disponga delle autorizzazioni necessarie per verificare le firme delle richieste approvate,
chiedi all'amministratore di concedere all'account di servizio Access Approval per la tua
risorsa il
ruolo IAM Firmante/verificatore della chiave CryptoKey Cloud KMS (roles/cloudkms.signerVerifier
) per la chiave, il mazzo di chiavi o il progetto di chiavi.
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
L'amministratore potrebbe anche essere in grado di assegnare all'account di servizio Approvazione accesso per la tua risorsa le autorizzazioni richieste tramite ruoli personalizzati o altri ruoli predefiniti.
Convalida una richiesta firmata utilizzando un Google-owned and managed key
Nella console Google Cloud, vai alla pagina Approvazione accesso.
Individua e seleziona la richiesta di approvazione dell'accesso approvata che vuoi convalidare. Viene visualizzata la pagina Dettagli richiesta.
In Chiave pubblica gestita da Google, fai clic su content_copy Copia.
Apri Cloud Shell e salva la chiave pubblica come nuovo file denominato
public_key
:echo GOOGLE_MANAGED_PUBLIC_KEY > ./public_key
Sostituisci
GOOGLE_MANAGED_PUBLIC_KEY
con i contenuti del campo Chiave pubblica gestita da Google.Nella console Google Cloud, nella pagina Dettagli richiesta, fai clic su content_copy Copia in Firma.
Apri Cloud Shell e salva la firma come nuovo file denominato
signature.txt
:echo SIGNATURE > ./signature.txt
Sostituisci
SIGNATURE
con i contenuti del campo Firma.Decodifica la firma utilizzando il comando
base64
e salva il risultato comedecoded_signature
:base64 ./signature.txt -d > ./decoded_signature
Nella console Google Cloud, nella pagina Dettagli richiesta, fai clic su content_copy Copia in Richiesta di approvazione serializzata.
Apri Cloud Shell e salva la richiesta di approvazione serializzata come nuovo file denominato
serialized_approval_request.txt
:echo SERIALIZED_APPROVAL_REQUEST > ./serialized_approval_request.txt
Sostituisci
SERIALIZED_APPROVAL_REQUEST
con 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_request
Usa
openssl
per verificare la firma:openssl dgst \ -sha256 \ -verify ./public_key \ -signature ./decoded_signature \ ./decoded_serialized_approval_request
Se la firma è valida, l'output dovrebbe essere
Verified OK
. Conferma che la richiesta di approvazione serializzata è valida.
Convalida una richiesta firmata utilizzando una chiave fornita dal cliente
Nella console Google Cloud, vai alla pagina Approvazione accesso.
Individua e seleziona la richiesta di approvazione dell'accesso approvata che vuoi convalidare. Viene visualizzata la pagina Dettagli richiesta.
Nella console Google Cloud, nella pagina Dettagli richiesta, fai clic su content_copy Copia in Firma.
Apri Cloud Shell e salva la firma come nuovo file denominato
signature.txt
:echo SIGNATURE > ./signature.txt
Sostituisci
SIGNATURE
con i contenuti del campo Firma.Decodifica la firma e salva il risultato come
decoded_signature
:base64 ./signature.txt -d > ./decoded_signature
Nella console Google Cloud, nella pagina Dettagli richiesta, fai clic su content_copy Copia in Richiesta di approvazione serializzata.
Apri Cloud Shell e salva la richiesta di approvazione serializzata come nuovo file denominato
serialized_approval_request.txt
:echo SERIALIZED_APPROVAL_REQUEST > ./serialized_approval_request.txt
Sostituisci
SERIALIZED_APPROVAL_REQUEST
con 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_request
In Chiave gestita dal cliente, prendi nota dell'identificatore della risorsa della chiave.
Recupero della chiave pubblica per la chiave identificata nel passaggio precedente. Salva la chiave pubblica scaricata nel formato PEM come
./public_key
.Usa
openssl
per verificare la firma:openssl dgst \ -sha256 \ -verify ./public_key \ -signature ./decoded_signature \ ./decoded_serialized_approval_request
Se la firma è valida, l'output dovrebbe essere
Verified OK
. Conferma che la richiesta di approvazione serializzata è valida.