Valider la signature d'une demande approuvée
Chaque demande d'approbation d'accès approuvée est signée avec une clé de chiffrement asymétrique pour valider l'approbation. Les demandes approuvées peuvent être signées une clé gérée par Google 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 du 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 requête approuvée.
Avant de commencer
Pour vous assurer que le compte de service Access Approval associé à votre
dispose des autorisations nécessaires
les autorisations requises pour vérifier
les signatures de demandes approuvées,
demandez à votre administrateur d'accorder le compte de service Access Approval à votre
ressourcer
Rôle IAM Signataire/Validateur de CryptoKeys Cloud KMS (roles/cloudkms.signerVerifier
) sur la clé, le trousseau de clés ou le projet de clé.
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Il est également possible que votre administrateur puisse attribuer le compte de service Access Approval à votre compte ressource les autorisations requises à l'aide d'outils personnalisés rôles ou autres prédéfinis rôles.
Valider une requête signée à l'aide d'une clé gérée par Google
Dans la console Google Cloud, accédez à la page Approbation de l'accès.
Recherchez et sélectionnez la demande Access Approval 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 en tant que nouveau fichier nommé
public_key
:echo GOOGLE_MANAGED_PUBLIC_KEY > ./public_key
Remplacez
GOOGLE_MANAGED_PUBLIC_KEY
par le contenu de dans le champ Clé publique gérée par Google.Dans la console Google Cloud, sur la page Détails de la demande, sous Signature, cliquez sur content_copy Copier.
Ouvrez Cloud Shell, puis enregistrez la signature dans un nouveau fichier nommé
signature.txt
:echo SIGNATURE > ./signature.txt
Remplacez
SIGNATURE
par le contenu de Signature. .Décodez la signature à l'aide de la commande
base64
et enregistrez le résultat sous forme dedecoded_signature
:base64 ./signature.txt -d > ./decoded_signature
Dans la console Google Cloud, 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 en tant que Nouveau fichier nommé
serialized_approval_request.txt
:echo SERIALIZED_APPROVAL_REQUEST > ./serialized_approval_request.txt
Remplacez
SERIALIZED_APPROVAL_REQUEST
par le contenu du champ Serialized Approval Request (Requête d'approbation sérialisée).Décodez la demande d'approbation sérialisée et enregistrez le résultat sous
decoded_serialized_approval_request
:base64 ./serialized_approval_request.txt -d > ./decoded_serialized_approval_request
Utilisez
openssl
pour valider la signature:openssl dgst \ -sha256 \ -verify ./public_key \ -signature ./decoded_signature \ ./decoded_serialized_approval_request
Si la signature est valide, le résultat doit être
Verified OK
. Ce confirme que la demande d'approbation sérialisée est valide.
Valider une requête signée à l'aide d'une clé fournie par le client
Dans la console Google Cloud, accédez à la page Approbation de l'accès.
Recherchez et sélectionnez la demande Access Approval approuvée que vous souhaitez valider. La page Détails de la demande s'ouvre.
Dans la console Google Cloud, sur la page Détails de la requête, sous Signature, cliquez sur content_copy Copier.
Ouvrez Cloud Shell, puis enregistrez la signature dans un nouveau fichier nommé
signature.txt
:echo SIGNATURE > ./signature.txt
Remplacez
SIGNATURE
par le contenu de Signature. .Décodez la signature et enregistrez le résultat sous le nom
decoded_signature
:base64 ./signature.txt -d > ./decoded_signature
Dans la console Google Cloud, 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 en tant que Nouveau fichier nommé
serialized_approval_request.txt
:echo SERIALIZED_APPROVAL_REQUEST > ./serialized_approval_request.txt
Remplacez
SERIALIZED_APPROVAL_REQUEST
par le contenu du champ Serialized Approval Request (Requête d'approbation sérialisée).Décodez la demande d'approbation sérialisée et enregistrez le résultat sous
decoded_serialized_approval_request
:base64 ./serialized_approval_request.txt -d > ./decoded_serialized_approval_request
Sous 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 que vous avez identifiés à l'étape précédente. Enregistrez la clé publique téléchargée au format PEM sous le nom
./public_key
.Utilisez
openssl
pour valider la signature :openssl dgst \ -sha256 \ -verify ./public_key \ -signature ./decoded_signature \ ./decoded_serialized_approval_request
Si la signature est valide, le résultat doit être
Verified OK
. Cela confirme que la demande d'approbation sérialisée est valide.