Auf dieser Seite wird gezeigt, wie Sie mit der Methode signBlob vonGoogle Cloud eine Signatur aus einem zu signierenden String oder einem Richtliniendokument erstellen. Signaturen werden in bestimmten Anfragen als Anmeldedaten verwendet, z. B. für signierte URLs. In dieser Anleitung werden RSA-Schlüssel zum Erstellen von Signaturen verwendet.
Hinweis
Enable the Service Account Credentials API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.Sie benötigen die Berechtigung
iam.serviceAccounts.signBlobfür das Dienstkonto, das Sie in dieser Anleitung verwenden. Die Berechtigungiam.serviceAccounts.signBlobist in der Rolleroles/iam.serviceAccountTokenCreatorenthalten.Das in dieser Anleitung verwendete Dienstkonto muss die Berechtigung zum Ausführen der Anfrage haben, die in der Signatur codiert ist. Wenn die Signatur beispielsweise zum Lesen von Objektdaten aus einem Bucket verwendet wird, muss das Dienstkonto zum Lesen der Objektdaten berechtigt sein.
Signatur erstellen
Installieren und initialisieren Sie die gcloud CLI, um ein Zugriffstoken für den
Authorization-Header zu generieren.Erstellen Sie eine JSON-Datei, die folgende Informationen enthält:
{ "payload": "REQUEST_INFORMATION" }
Dabei gilt:
REQUEST_INFORMATIONist ein zu signierender String oder ein Richtliniendokument. Für beides muss der Inhalt Base64-codiert sein.
Verwenden Sie
cURL, um die IAM API mit einersignBlob-Anfrage aufzurufen:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/SERVICE_ACCOUNT_EMAIL:signBlob"
Dabei gilt:
JSON_FILE_NAMEist der Name der Datei, die Sie in Schritt 2 erstellt haben.SERVICE_ACCOUNT_EMAIList die E-Mail-Adresse des Dienstkontos, das Sie zum Erstellen der Signatur verwenden möchten. Beispiel:example-service-account@my-pet-project.iam.gserviceaccount.com
Bei erfolgreicher Ausführung wird in der Antwort im Feld
signedBlobein Message Digest zurückgegeben, der Base64-codiert ist.Sorgen Sie zum Fertigstellen der Signatur dafür, dass der Message Digest Base64-decodiert ist und dann Hex-codiert wird.
Nächste Schritte
- Informieren Sie sich auf der Referenzseite zum Signieren von Blobs mit der Google Cloud CLI.
- Erstellen Sie manuell eine signierte URL mit der von Ihnen angelegten Signatur.
- Erstellen Sie eine signierte URL mit Tools von Google Cloud .
- Erfahren Sie mehr über Signaturen.