La signature V4 est un processus permettant de générer des signatures pour l'authentification dans les requêtes de l'API XML Cloud Storage. Cette page explique comment utiliser Google Cloud CLI et les bibliothèques clientes Cloud Storage pour créer des URL signées. Les URL signées offrent un accès en lecture ou en écriture limité dans le temps à une ressource Cloud Storage spécifique. Si vous souhaitez créer votre propre programme pour créer des URL signées, consultez la page Signature V4 avec votre propre programme.
Créer une URL signée pour télécharger un objet
Pour créer une URL signée permettant d'obtenir un objet à partir d'un bucket, procédez comme suit :
Ligne de commande
gcloud
Générez une nouvelle clé privée ou utilisez une clé privée existante pour un compte de service. La clé doit être au format JSON.
Pour en savoir plus sur les clés privées et les comptes de service, consultez la page Comptes de service.
Exécutez la commande
gcloud storage sign-url
. Par exemple, la commande suivante crée une URL signée permettant aux utilisateurs de télécharger un objet pendant 10 minutes :gcloud storage sign-url gs://BUCKET_NAME/OBJECT_NAME --private-key-file=KEY_FILE --duration=10m
Où :
BUCKET_NAME
correspond au nom du bucket où se trouve l'objet. Par exemple,example-bucket
.OBJECT_NAME
correspond au nom de l'objet à télécharger. Par exemple,cat.jpeg
.KEY_FILE
est le chemin d'accès au fichier contenant la clé privée de votre compte de service. Exemple :Desktop/private-key.json
.
En cas de réussite, la réponse doit se présenter comme suit :
--- expiration: '2023-07-14 23:19:35' http_verb: GET resource: gs://example-bucket/cat.jpeg signed_url: https://storage.googleapis.com/example-bucket/cat.jpeg? x-goog-signature=11ae9c61ca84dd0bec319f7d52a38029e5873caa2eeced0568 ef96076258cfc1a925a9683cc907d210036b61af9e06a13bf4a15b15fab3916669b e2f4c9f66ea6be822bec5858af519a6da705415b5768721197be213103fa09b8a18 8a143be77a24351517ff208a2c62cfebb78040daf1f953907080bd98f9462739d11 1355b1d9bcf54705b862f37392c031fde0d52add1a4d3bbb98a22e8b7023f6a1623 2e0a2dd56e524d410624d28663e557fafaf4ba0a04290a1066f894713857b429258 d14f056066c7622baf114c124e645688e19b4df3c4a7925f580693c93fa9c1dae7f dff0edff7259c72f3f0eadc5a9f9f556c83c9c8dc02ee3af8d20ab634bad&x-goog -algorithm=GOOG4-RSA-SHA256&x-goog-credential=example%40example-pro ject.iam.gserviceaccount.com%2F20230714%2Fus%2Fstorage%2Fgoog4_requ est&x-goog-date=20230714T221935Z&x-goog-expires=600&x-goog-signedhe aders=host
Toute personne disposant de cette URL peut accéder à la ressource associée (dans le cas présent,
cat.jpeg
) pendant la période indiquée (ici, 10 minutes).
gsutil
Générez une nouvelle clé privée ou utilisez une clé privée existante pour un compte de service. La clé doit être au format JSON.
Pour en savoir plus sur les clés privées et les comptes de service, consultez la page Comptes de service.
Utilisez la commande
gsutil signurl
, en transmettant le chemin d'accès à la clé privée de l'étape précédente, ainsi que le nom du bucket ou de l'objet.Par exemple, si vous utilisez une clé stockée dans le dossier
Desktop
, la commande suivante génère une URL signée permettant aux utilisateurs d'afficher l'objetcat.jpeg
pendant 10 minutes.gsutil signurl -d 10m Desktop/private-key.json gs://example-bucket/cat.jpeg
En cas de réussite, la réponse doit se présenter comme suit :
URL HTTP Method Expiration Signed URL gs://example-bucket/cat.jpeg GET 2018-10-26 15:19:52 https://storage.googleapis. com/example-bucket/cat.jpeg?x-goog-signature=2d2a6f5055eb004b8690b9479883292ae74 50cdc15f17d7f99bc49b916f9e7429106ed7e5858ae6b4ab0bbbdb1a8ccc364dad3a0da2caebd308 87a70c5b2569d089ceb8afbde3eed4dff5116f0db5483998c175980991fe899fbd2cd8cb813b0016 5e8d56e0a8aa7b3d7a12ee1baa8400611040f05b50a1a8eab5ba223fe5375747748de950ec7a4dc5 0f8382a6ffd49941c42498d7daa703d9a414d4475154d0e7edaa92d4f2507d92c1f7e811a7cab64d f68b5df4857589259d8d0bdb5dc752bdf07bd162d98ff2924f2e4a26fa6b3cede73ad5333c47d146 a21c2ab2d97115986a12c28ff37346d6c2ca83e5618ec8ad95632710b489b75c35697d781c38e& x-goog-algorithm=GOOG4-RSA-SHA256&x-goog-credential=example%40example-project. iam.gserviceaccount.com%2F20181026%2Fus%2Fstorage%2Fgoog4_request&x-goog-date= 20201026T211942Z&x-goog-expires=3600&x-goog-signedheaders=host
L'URL signée est la chaîne commençant par
https://storage.googleapis.com
. Il est probable qu'elle s'étende sur plusieurs lignes. Toute personne disposant de cette URL peut accéder à la ressource associée (dans le cas présent,cat.jpeg
) pendant la période indiquée (ici, 10 minutes).
Bibliothèques clientes
C++
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C++.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
C#
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C#.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Go
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Go.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Java.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Node.js.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
PHP
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage PHP.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Python.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Ruby
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Ruby.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Créer une URL signée pour importer un objet
Pour créer une URL signée permettant d'importer un objet dans un bucket, procédez comme suit :
Ligne de commande
gcloud
Générez une nouvelle clé privée ou utilisez une clé privée existante pour un compte de service. La clé peut être au format JSON ou PKCS12.
Pour en savoir plus sur les clés privées et les comptes de service, consultez la page Comptes de service.
Exécutez la commande
gcloud storage sign-url
. Par exemple, la commande suivante crée une URL signée permettant aux utilisateurs d'importer un fichier pendant une heure :gcloud storage sign-url gs://BUCKET_NAME/OBJECT_NAME --private-key-file=KEY_FILE --http-verb=PUT --duration=1h --headers=Content-Type=CONTENT_TYPE
BUCKET_NAME
est le nom du bucket dans lequel l'objet est importé. Exemple :example-bucket
.OBJECT_NAME
est le nom à attribuer à l'objet importé. Par exemple,cat.png
.KEY_FILE
est le chemin d'accès au fichier contenant la clé privée de votre compte de service. Exemple :Desktop/private-key.json
.CONTENT_TYPE
est le type de contenu de l'objet importé. Par exemple,image/png
.
En cas de réussite, la réponse doit se présenter comme suit :
--- expiration: '2023-07-14 23:35:47' http_verb: PUT resource: gs://example-bucket/cat.png signed_url: https://storage.googleapis.com/example-bucket/cat.png? x-goog-signature=2f670a686102963e0574f3c1a3b4d29ee4aa406c1528d42d2 30195d17fef73834b254314de7d7990afd48538a84b66f20010e7ecd90a900490e 6119b7e56a912f71c8d64285c40e86f31b8fec51cf8c7a61ded81de3cedac9c1ca b92474b7371740fdac20b2d8d092b15396f79443bbde954a4174ed11aef6c2cf5f a4d72a84ff60fd6003ed0a505b0e40b6207ddbaec2a15778f715c3ec7537a1b14f b6661b2abaa5736f1670a412ca7e2555c830591f0595c01ff95af7f2206abe2e27 41948c16d4bd4c7cbb25f41277ece59236c06e00ca6c63ae2eb3efc22c216bb24c e1b8b3801d07fd3a7ed3f2df3db6e59c6fc3cc76a002335dd936efd0237cf584e3 6&x-goog-algorithm=GOOG4-RSA-SHA256&x-goog-credential=example%40ex ample-project.iam.gserviceaccount.com%2F20230714%2Fus%2Fstorage%2F goog4_request&x-goog-date=20230714T223547Z&x-goog-expires=3600&x-g oog-signedheaders=Content-Type%3Bhost
Toute personne peut utiliser cette URL pour importer une ressource (ici,
cat.png
) dans le bucket Cloud Storage spécifié pour la période indiquée (ici, 1 heure).
gsutil
Générez une nouvelle clé privée ou utilisez une clé privée existante pour un compte de service. La clé peut être au format JSON ou PKCS12.
Pour en savoir plus sur les clés privées et les comptes de service, consultez la page Comptes de service.
Exécutez la commande
gsutil signurl
. Par exemple, la commande suivante crée une URL signée permettant aux utilisateurs d'importer un fichier image pendant une heure :gsutil signurl -m PUT -d 1h -c CONTENT_TYPE KEY_FILE gs://BUCKET_NAME/OBJECT_NAME
Où :
CONTENT_TYPE
est le type de contenu de l'objet. Par exemple,image/png
.KEY_FILE
est le chemin d'accès au fichier contenant la clé privée de votre compte de service. Exemple :Desktop/private-key.json
.BUCKET_NAME
est le nom du bucket dans lequel l'objet est importé. Par exemple,example-bucket
.OBJECT_NAME
est le nom à attribuer à l'objet importé. Exemple :cat.png
En cas de réussite, la réponse doit se présenter comme suit :
URL HTTP Method Expiration Signed URL gs://example-bucket/cat.png PUT 2021-01-09 00:28:11 https://storage.googleapis. com/example-bucket/cat.png?x-goog-signature=2d2a6f5055eb004b8690b9479883292ae74 50cdc15f17d7f99bc49b916f9e7429106ed7e5858ae6b4ab0bbbdb1a8ccc364dad3a0da2caebd308 87a70c5b2569d089ceb8afbde3eed4dff5086f0db5483998c175980991fe899fbd2cd8cb813b0016 5e8d56e0a8aa7b3d7215ee1baa8400611040f05b50a1a8eab5ba223fe1375747748de950ec7i6dc5 0f8382a6ffd4994ac42498d7daa703d9a414d4475154d0e7edaa92d4f2507d92c1f7e8efa7cab64d f68b5df48575b9259d8d0bdb5dc752bdf07bd162d98ff2924f2p4a26fa6b3cede73ad5333c47d146 a21c2ab2d97b15986a12c68ff3734696c2ca83e56b8ec8ad95632710b488b75c35697d781c38e& x-goog-algorithm=GOOG4-RSA-SHA256&x-goog-credential=example%40example-project. iam.gserviceaccount.com%2F20181026%2Fus%2Fstorage%2Fgoog4_request&x-goog-date= 20201026T211942Z&x-goog-expires=3600&x-goog-signedheaders=host
L'URL signée est la chaîne commençant par https://storage.googleapis.com
. Il est probable qu'elle s'étende sur plusieurs lignes.
Toute personne peut utiliser cette URL pour importer une ressource (ici, cat.png
) dans le bucket Cloud Storage spécifié (ici, example-bucket
) pour la période indiquée (ici, 1 heure).
Bibliothèques clientes
C++
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C++.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
C#
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C#.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Go
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Go.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Java.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Node.js.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
PHP
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage PHP.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Python.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Ruby
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Ruby.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Étapes suivantes
- Découvrez comment signer des URL avec votre propre programme.
- Apprenez-en plus sur les URL signées
- Découvrez comment importer un objet avec l'API XML.
- Informez-vous sur l'importation d'objets.