Cette page explique comment utiliser la méthodeGoogle Cloud signBlob pour créer une signature à partir d'une chaîne à signer ou d'un document de stratégie. Les signatures sont utilisées comme identifiants dans certaines requêtes, telles que les URL signées. Ce guide utilise des clés RSA pour créer des signatures.
Avant de commencer
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.Vous devez disposer de l'autorisation
iam.serviceAccounts.signBlobpour le compte de service que vous utilisez dans ce guide. L'autorisationiam.serviceAccounts.signBlobest incluse dans le rôleroles/iam.serviceAccountTokenCreator.Le compte de service que vous utilisez dans ce guide doit être autorisé à exécuter la requête encodée dans la signature. Par exemple, si la signature est utilisée pour lire des données d'objet à partir d'un bucket, le compte de service doit être autorisé à lire les données d'objet.
Créer une signature
Vous devez installer et initialiser gcloud CLIafin de générer un jeton d'accès pour l'en-tête
Authorization.Créez un fichier JSON contenant les informations suivantes :
{ "payload": "REQUEST_INFORMATION" }
Où :
REQUEST_INFORMATIONest une chaîne à signer ou un document de stratégie. Pour les deux, le contenu doit être encodé en base64.
Exécutez
cURLpour appeler l'API IAM avec une requêtesignBlob: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"
Où :
JSON_FILE_NAMEcorrespond au nom du fichier que vous avez créé à l'étape 2.SERVICE_ACCOUNT_EMAILcorrespond à l'adresse e-mail du compte de service que vous souhaitez utiliser pour créer la signature. Exemple :example-service-account@my-pet-project.iam.gserviceaccount.com.
Si la requête aboutit, un condensé de message est renvoyé dans le champ
signedBlobde la réponse, qui est encodé en base64.Pour terminer la signature, assurez-vous que le condensé du message est décodé en base64, puis encodez-le en hexadécimal.
Étapes suivantes
- Consultez la page de référence pour la signature d'objets blob avec Google Cloud CLI.
- Créez une URL signée manuellement à l'aide de la signature que vous avez créée.
- Créez une URL signée avec les outils Google Cloud .
- Apprenez-en plus sur les signatures.