Valider la signature d'une demande approuvée
Chaque demande d'approbation d'accès approuvée est signée avec une clé cryptographique asymétrique pour valider l'approbation. Les demandes approuvées peuvent être signées avec une Google-owned and managed key ou une clé Cloud KMS fournie par le client.
Lorsque vous validez une signature, vous pouvez être sûr que la chaîne d'octets de la demande approuvée sérialisée est valide. Pour terminer la validation du contenu de l'approbation, vous devez désérialiser le message et le comparer au contenu de la demande approuvée.
Avant de commencer
Pour vous assurer que le compte de service Approbation d'accès de votre
ressource dispose des autorisations nécessaires pour vérifier les signatures des demandes approuvées,
demandez à votre administrateur d'accorder au
compte de service Approbation d'accès de votre ressource le rôle IAM Signataire/Vérificateur de CryptoKeys Cloud KMS (roles/cloudkms.signerVerifier) sur la clé, le trousseau de clés ou le projet de clé.
Votre administrateur peut également attribuer au compte de service Approbation d'accès de votre ressource les autorisations requises à l'aide de rôles personnalisés ou d'autres rôles prédéfinis.
Valider une demande signée à l'aide d'une Google-owned and managed key
Dans la Google Cloud console, accédez à la page Approbation d'accès.
Recherchez et sélectionnez la demande d'approbation d'accès approuvée que vous souhaitez valider. La page Détails de la demande s'ouvre.
Sous Clé publique gérée par Google, cliquez sur content_copy Copier.
Ouvrez Cloud Shell, puis enregistrez la clé publique dans un fichier nommé
public_key:echo GOOGLE_MANAGED_PUBLIC_KEY > ./public_keyRemplacez
GOOGLE_MANAGED_PUBLIC_KEYpar le contenu du champ Clé publique gérée par Google.Dans la Google Cloud console, sur la page Détails de la demande, sous Signature, cliquez sur content_copy Copier.
Ouvrez Cloud Shell, puis enregistrez la signature dans un fichier nommé
signature.txt:echo SIGNATURE > ./signature.txtRemplacez
SIGNATUREpar le contenu du champ Signature.Décodez la signature à l'aide de la commande
base64et enregistrez le résultat sous le nomdecoded_signature:base64 ./signature.txt -d > ./decoded_signatureDans la Google Cloud console, sur la page Détails de la demande, sous Demande d'approbation sérialisée, cliquez sur content_copy Copier.
Ouvrez Cloud Shell, puis enregistrez la demande d'approbation sérialisée dans un fichier nommé
serialized_approval_request.txt:echo SERIALIZED_APPROVAL_REQUEST > ./serialized_approval_request.txtRemplacez
SERIALIZED_APPROVAL_REQUESTpar le contenu du champ Demande d'approbation sérialisée.Décodez la demande d'approbation sérialisée et enregistrez le résultat sous le nom
decoded_serialized_approval_request:base64 ./serialized_approval_request.txt -d > ./decoded_serialized_approval_requestUtilisez
opensslpour vérifier la signature :openssl dgst \ -sha256 \ -verify ./public_key \ -signature ./decoded_signature \ ./decoded_serialized_approval_requestSi la signature est valide, le résultat doit être
Verified OK. Cela confirme que la demande d'approbation sérialisée est valide.
Valider une demande signée à l'aide d'une clé fournie par le client
Dans la Google Cloud console, accédez à la page Approbation d'accès.
Recherchez et sélectionnez la demande d'approbation d'accès approuvée que vous souhaitez valider. La page Détails de la demande s'ouvre.
Dans la Google Cloud console, sur la page Détails de la demande, sous Signature, cliquez sur content_copy Copier.
Ouvrez Cloud Shell, puis enregistrez la signature dans un fichier nommé
signature.txt:echo SIGNATURE > ./signature.txtRemplacez
SIGNATUREpar le contenu du champ Signature.Décodez la signature et enregistrez le résultat sous le nom
decoded_signature:base64 ./signature.txt -d > ./decoded_signatureDans la Google Cloud console, sur la page Détails de la demande, sous Demande d'approbation sérialisée, cliquez sur content_copy Copier.
Ouvrez Cloud Shell, puis enregistrez la demande d'approbation sérialisée dans un fichier nommé
serialized_approval_request.txt:echo SERIALIZED_APPROVAL_REQUEST > ./serialized_approval_request.txtRemplacez
SERIALIZED_APPROVAL_REQUESTpar le contenu du champ Demande d'approbation sérialisée.Décodez la demande d'approbation sérialisée et enregistrez le résultat sous le nom
decoded_serialized_approval_request:base64 ./serialized_approval_request.txt -d > ./decoded_serialized_approval_requestSous Clé gérée par le client, notez l'identifiant de ressource de la clé.
Récupérez la clé publique de la clé que vous avez identifiée à l'étape précédente. Enregistrez la clé publique téléchargée au format PEM sous le nom
./public_key.Utilisez
opensslpour vérifier la signature :openssl dgst \ -sha256 \ -verify ./public_key \ -signature ./decoded_signature \ ./decoded_serialized_approval_requestSi la signature est valide, le résultat doit être
Verified OK. Cela confirme que la demande d'approbation sérialisée est valide.