Signatur einer genehmigten Anfrage validieren
Jede genehmigte Zugriffsanfrage wird mit einem asymmetrischen kryptografischen Schlüssel signiert, um die Genehmigung zu bestätigen. Genehmigte Anfragen können mit einem Google-owned and managed key oder einem vom Kunden bereitgestellten Cloud KMS-Schlüssel signiert werden.
Wenn Sie eine Signatur validieren, können Sie sicher sein, dass der Bytestring der serialisierten genehmigten Anfrage gültig ist. Um die Validierung der Inhalte der Genehmigung abzuschließen, müssen Sie die Nachricht deserialisieren und mit den Inhalten der genehmigten Anfrage vergleichen.
Hinweise
Damit das Access Approval-Dienstkonto für Ihre Ressource die erforderlichen Berechtigungen zum Überprüfen genehmigter Anforderungssignaturen hat, bitten Sie Ihren Administrator, dem Access Approval-Dienstkonto für Ihre Ressource die
Cloud KMS CryptoKey-Signierer/Prüfer (roles/cloudkms.signerVerifier
) IAM-Rolle für den Schlüssel, den Schlüsselbund oder das Schlüsselprojekt zu gewähren.
Ihr Administrator kann dem Dienstkonto für die Zugriffsgenehmigung für Ihre Ressource möglicherweise auch die erforderlichen Berechtigungen über benutzerdefinierte Rollen oder andere vordefinierte Rollen erteilen.
Anfrage validieren, die mit einem Google-owned and managed keysigniert wurde
Rufen Sie in der Google Cloud Console die Seite Zugriffsgenehmigung auf.
Suchen Sie die genehmigte Access Approval-Anfrage, die Sie validieren möchten, und wählen Sie sie aus. Die Seite Details zur Anfrage wird geöffnet.
Klicken Sie unter Von Google verwalteter öffentlicher Schlüssel auf content_copy Kopieren.
Öffnen Sie Cloud Shell und speichern Sie den öffentlichen Schlüssel als neue Datei mit dem Namen
public_key
:echo GOOGLE_MANAGED_PUBLIC_KEY > ./public_key
Ersetzen Sie
GOOGLE_MANAGED_PUBLIC_KEY
durch den Inhalt des Felds Von Google verwalteter öffentlicher Schlüssel.Klicken Sie in der Google Cloud Console auf der Seite Anfragedetails unter Signatur auf content_copy Kopieren.
Öffnen Sie Cloud Shell und speichern Sie die Signatur als neue Datei mit dem Namen
signature.txt
:echo SIGNATURE > ./signature.txt
Ersetzen Sie
SIGNATURE
durch den Inhalt des Felds Signature (Signatur).Decodieren Sie die Signatur mit dem Befehl
base64
und speichern Sie das Ergebnis alsdecoded_signature
:base64 ./signature.txt -d > ./decoded_signature
Klicken Sie in der Google Cloud Console auf der Seite Antragsdetails unter Serialisierte Genehmigungsanfrage auf content_copy Kopieren.
Öffnen Sie Cloud Shell und speichern Sie die serialisierte Genehmigungsanfrage als neue Datei mit dem Namen
serialized_approval_request.txt
:echo SERIALIZED_APPROVAL_REQUEST > ./serialized_approval_request.txt
Ersetzen Sie
SERIALIZED_APPROVAL_REQUEST
durch den Inhalt des Felds Serialized Approval Request.Decodieren Sie die serialisierte Genehmigungsanfrage und speichern Sie das Ergebnis als
decoded_serialized_approval_request
:base64 ./serialized_approval_request.txt -d > ./decoded_serialized_approval_request
Verwenden Sie
openssl
, um die Signatur zu prüfen:openssl dgst \ -sha256 \ -verify ./public_key \ -signature ./decoded_signature \ ./decoded_serialized_approval_request
Wenn die Signatur gültig ist, sollte die Ausgabe
Verified OK
sein. Das bestätigt, dass die serialisierte Genehmigungsanfrage gültig ist.
Anfrage validieren, die mit einem vom Kunden bereitgestellten Schlüssel signiert wurde
Rufen Sie in der Google Cloud Console die Seite Zugriffsgenehmigung auf.
Suchen Sie die genehmigte Access Approval-Anfrage, die Sie validieren möchten, und wählen Sie sie aus. Die Seite Details zur Anfrage wird geöffnet.
Klicken Sie in der Google Cloud Console auf der Seite Anfragedetails unter Signatur auf content_copy Kopieren.
Öffnen Sie Cloud Shell und speichern Sie die Signatur als neue Datei mit dem Namen
signature.txt
:echo SIGNATURE > ./signature.txt
Ersetzen Sie
SIGNATURE
durch den Inhalt des Felds Signature (Signatur).Decodieren Sie die Signatur und speichern Sie das Ergebnis als
decoded_signature
:base64 ./signature.txt -d > ./decoded_signature
Klicken Sie in der Google Cloud Console auf der Seite Antragsdetails unter Serialisierte Genehmigungsanfrage auf content_copy Kopieren.
Öffnen Sie Cloud Shell und speichern Sie die serialisierte Genehmigungsanfrage als neue Datei mit dem Namen
serialized_approval_request.txt
:echo SERIALIZED_APPROVAL_REQUEST > ./serialized_approval_request.txt
Ersetzen Sie
SERIALIZED_APPROVAL_REQUEST
durch den Inhalt des Felds Serialized Approval Request.Decodieren Sie die serialisierte Genehmigungsanfrage und speichern Sie das Ergebnis als
decoded_serialized_approval_request
:base64 ./serialized_approval_request.txt -d > ./decoded_serialized_approval_request
Notieren Sie sich unter Vom Kunden verwalteter Schlüssel die Ressourcen-ID des Schlüssels.
Rufen Sie den öffentlichen Schlüssel für den Schlüssel ab, den Sie im vorherigen Schritt identifiziert haben. Speichern Sie den heruntergeladenen öffentlichen Schlüssel im PEM-Format als
./public_key
.Verwenden Sie
openssl
, um die Signatur zu prüfen:openssl dgst \ -sha256 \ -verify ./public_key \ -signature ./decoded_signature \ ./decoded_serialized_approval_request
Wenn die Signatur gültig ist, sollte die Ausgabe
Verified OK
sein. Das bestätigt, dass die serialisierte Genehmigungsanfrage gültig ist.