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 die Bytestring der serialisierten genehmigten Anfrage gültig ist. Um die Validierung der Inhalte der Genehmigung abzuschließen, müssen Sie die Nachricht deserialisieren und die deserialisierte Nachricht mit den Inhalten der genehmigten Anfrage vergleichen.

Hinweis

Damit das Access Approval-Dienstkonto für Ihre Ressource die erforderlichen Berechtigungen zum Überprüfen von Signaturen genehmigter Anfragen hat, bitten Sie Ihren Administrator, dem Cloud KMS CryptoKey Signer/Verifier (roles/cloudkms.signerVerifier) IAM-Rolle für den Schlüssel, den Schlüsselring oder das Schlüsselprojekt zu gewähren.

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Ihr Administrator kann dem Access Approval-Dienstkonto für Ihre Ressource die erforderlichen Berechtigungen möglicherweise auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erteilen.

Mit einem signierte Anfrage validieren Google-owned and managed key

  1. Rufen Sie in der Google Cloud Konsole die Access Approval Seite auf.

    Zu Access Approval

  2. Suchen Sie die genehmigte Access Approval-Anfrage, die Sie validieren möchten, und wählen Sie sie aus. Die Seite Anfragedetails wird geöffnet.

  3. Klicken Sie unter Von Google verwalteter öffentlicher Schlüssel auf content_copy Kopieren.

  4. Öffnen Sie die 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.

  5. Klicken Sie in der Google Cloud Konsole auf der Seite Anfragedetails unter Signatur auf content_copy Kopieren.

  6. Öffnen Sie die 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 Signatur.

  7. Decodieren Sie die Signatur mit dem Befehl base64 und speichern Sie das Ergebnis als decoded_signature:

    base64 ./signature.txt -d > ./decoded_signature
    
  8. Klicken Sie in der Google Cloud Konsole auf der Seite Anfragedetails unter Serialisierte Genehmigungsanfrage auf content_copy Kopieren.

  9. Öffnen Sie die 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 Serialisierte Genehmigungsanfrage.

  10. 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
    
  11. Verwenden Sie openssl, um die Signatur zu überprü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. Dies bestätigt, dass die serialisierte Genehmigungsanfrage gültig ist.

Mit einem vom Kunden bereitgestellten Schlüssel signierte Anfrage validieren

  1. Rufen Sie in der Google Cloud Konsole die Access Approval Seite auf.

    Zu Access Approval

  2. Suchen Sie die genehmigte Access Approval-Anfrage, die Sie validieren möchten, und wählen Sie sie aus. Die Seite Anfragedetails wird geöffnet.

  3. Klicken Sie in der Google Cloud Konsole auf der Seite Anfragedetails unter Signatur auf content_copy Kopieren.

  4. Öffnen Sie die 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 Signatur.

  5. Decodieren Sie die Signatur und speichern Sie das Ergebnis als decoded_signature:

    base64 ./signature.txt -d > ./decoded_signature
    
  6. Klicken Sie in der Google Cloud Konsole auf der Seite Anfragedetails unter Serialisierte Genehmigungsanfrage auf content_copy Kopieren.

  7. Öffnen Sie die 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 Serialisierte Genehmigungsanfrage.

  8. 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
    
  9. Notieren Sie sich unter Vom Kunden verwalteter Schlüssel die Ressourcen-ID des Schlüssels.

  10. Rufen Sie den öffentlichen Schlüssel ab für den Schlüssel, den Sie im vorherigen Schritt identifiziert haben. Speichern Sie den heruntergeladenen öffentlichen Schlüssel im PEM-Format als ./public_key.

  11. Verwenden Sie openssl, um die Signatur zu überprü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. Dies bestätigt, dass die serialisierte Genehmigungsanfrage gültig ist.