Cette page vous explique comment rendre vos objets lisibles par tous sur l'Internet public. Pour savoir comment accéder aux données rendues publiques, consultez la page Accéder aux données publiques.
Lorsqu'un objet est partagé publiquement, tout utilisateur connaissant son URI peut y accéder tant qu'il est public.
Rôles requis
Pour obtenir les autorisations requises pour rendre des objets lisibles publiquement, demandez à votre administrateur de vous accorder les rôles suivants:
Pour rendre des objets individuels lisibles publiquement: administrateur des objets de l'espace de stockage (
roles/storage.objectAdmin
)- Si vous prévoyez d'utiliser la console Google Cloud, vous devrez disposer du rôle Administrateur de l'espace de stockage (
roles/storage.admin
) au lieu du rôle "Administrateur des objets de l'espace de stockage".
- Si vous prévoyez d'utiliser la console Google Cloud, vous devrez disposer du rôle Administrateur de l'espace de stockage (
Pour rendre tous les objets d'un bucket lisibles publiquement: administrateur de l'espace de stockage (
roles/storage.admin
) ou propriétaire des anciens buckets de l'espace de stockage (roles/storage.legacyBucketOwner
)
Ces rôles contiennent les autorisations requises pour rendre des objets publics. Pour afficher les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
storage.buckets.update
storage.objects.get
storage.objects.getIamPolicy
storage.objects.setIamPolicy
storage.objects.update
Les autorisations suivantes ne sont requises que pour effectuer les tâches décrites sur cette page à l'aide de la console Google Cloud:
storage.buckets.list
storage.objects.list
Vous pouvez également obtenir ces autorisations avec d'autres rôles prédéfinis ou rôles personnalisés.
Pour savoir comment attribuer des rôles aux buckets, consultez la section Utiliser IAM avec des buckets.
Rendre des objets individuels lisibles publiquement
Pour rendre des objets individuels lisibles par tous sur l'Internet public, accordez au compte principal allUsers
le rôle READER
:
Console
- Dans la console Google Cloud, accédez à la page Buckets Cloud Storage.
Cliquez sur le nom du bucket contenant l'objet que vous souhaitez rendre public, puis accédez à l'objet s'il se trouve dans un sous-répertoire.
Cliquez sur le nom de l'objet.
Cliquez sur Modifier l'accès.
Dans la fenêtre qui apparaît en superposition, cliquez sur le bouton add_box Ajouter une entrée.
Ajoutez une autorisation pour allUsers.
- Sélectionnez Public pour le champ Entité.
- Dans le champ Nom, sélectionnez allUsers (Tous les utilisateurs).
- Sélectionnez Lecteur pour le champ Accès.
Cliquez sur Enregistrer.
Une fois l'accès public accordé, Copier l'URL apparaît dans la colonne Accès public. Vous pouvez cliquer sur ce bouton pour obtenir l'URL publique de l'objet.
Pour savoir comment obtenir des informations détaillées sur les erreurs liées aux opérations Cloud Storage ayant échoué dans la console Google Cloud, consultez la section Dépannage.
Ligne de commande
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Dans votre environnement de développement, exécutez la commande
objects update
avec l'option--add-acl-grant
:gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME --add-acl-grant=entity=AllUsers,role=READER
Où :
BUCKET_NAME
correspond au nom du bucket contenant l'objet que vous souhaitez rendre public. Exemple :my-bucket
.OBJECT_NAME
correspond au nom de l'objet que vous souhaitez rendre public. Par exemple,pets/dog.png
.
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.
API REST
API JSON
Vous devez installer et initialiser gcloud CLI afin de générer un jeton d'accès pour l'en-tête
Authorization
.Vous pouvez également créer un jeton d'accès à l'aide d'OAuth 2.0 Playground et l'inclure dans l'en-tête
Authorization
.Créez un fichier JSON contenant les informations suivantes :
{ "entity": "allUsers", "role": "READER" }
Exécutez
cURL
pour appeler l'API JSON avec une requête de LCAInsert
:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME/acl"
Où :
JSON_FILE_NAME
correspond au chemin d'accès au fichier que vous avez créé à l'étape 2.BUCKET_NAME
correspond au nom du bucket contenant l'objet que vous souhaitez rendre public. Par exemple,my-bucket
.OBJECT_NAME
correspond au nom encodé au format URL de l'objet que vous souhaitez rendre public. Par exemple,pets/dog.png
, encodé au format URL :pets%2Fdog.png
.
API XML
Vous devez installer et initialiser gcloud CLI afin de générer un jeton d'accès pour l'en-tête
Authorization
.Vous pouvez également créer un jeton d'accès à l'aide d'OAuth 2.0 Playground et l'inclure dans l'en-tête
Authorization
.Créez un fichier XML contenant les informations suivantes :
<AccessControlList> <Entries> <Entry> <Scope type="AllUsers"/> <Permission>READ</Permission> </Entry> </Entries> </AccessControlList>
Exécutez
cURL
pour appeler l'API XML avec une requêteSet Object ACL
:curl -X PUT --data-binary @XML_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME?acl"
Où :
XML_FILE_NAME
correspond au chemin d'accès au fichier que vous avez créé à l'étape 2.BUCKET_NAME
correspond au nom du bucket contenant l'objet que vous souhaitez rendre public. Par exemple,my-bucket
.OBJECT_NAME
correspond au nom encodé au format URL de l'objet que vous souhaitez rendre public. Par exemple,pets/dog.png
, encodé au format URL :pets%2Fdog.png
.
Rendre tous les objets d'un bucket lisibles publiquement :
Pour rendre tous les objets d'un bucket lisibles par tous sur l'Internet public, attribuez au compte principal allUsers
le rôle "Lecteur des objets Storage" (roles/storage.objectViewer
) :
Console
- Dans la console Google Cloud, accédez à la page Buckets Cloud Storage.
Dans la liste des buckets, cliquez sur le nom de celui que vous souhaitez rendre public.
Sélectionnez l'onglet Autorisations en haut de la page.
Dans la section Autorisations, cliquez sur le bouton
Accorder l'accès.La boîte de dialogue Accorder l'accès s'affiche.
Dans le champ Nouveaux comptes principaux, saisissez
allUsers
.Dans la liste déroulante Sélectionner un rôle, saisissez Lecteur des objets Storage dans le champ de filtre, puis sélectionnez Lecteur des objets Storage dans les résultats filtrés.
Cliquez sur Enregistrer.
Cliquez sur Autoriser l'accès public.
Une fois l'accès public accordé, Copier l'URL apparaît pour chaque objet dans la colonne Accès public. Vous pouvez cliquer sur ce bouton pour obtenir l'URL publique de l'objet.
Pour savoir comment obtenir des informations détaillées sur les erreurs liées aux opérations Cloud Storage ayant échoué dans la console Google Cloud, consultez la section Dépannage.
Ligne de commande
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Dans votre environnement de développement, exécutez la commande
buckets add-iam-policy-binding
:gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member=allUsers --role=roles/storage.objectViewer
où
BUCKET_NAME
correspond au nom du bucket dont vous souhaitez rendre les objets publics. Par exemple,my-bucket
.
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.
Terraform
Vous pouvez utiliser une ressource Terraform pour rendre publics tous les objets d'un bucket.
API REST
API JSON
Vous devez installer et initialiser gcloud CLI afin de générer un jeton d'accès pour l'en-tête
Authorization
.Vous pouvez également créer un jeton d'accès à l'aide d'OAuth 2.0 Playground et l'inclure dans l'en-tête
Authorization
.Créez un fichier JSON contenant les informations suivantes :
{ "bindings":[ { "role": "roles/storage.objectViewer", "members":["allUsers"] } ] }
Exécutez
cURL
pour appeler l'API JSON avec une requête de bucketPUT
:curl -X PUT --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/iam"
Où :
JSON_FILE_NAME
correspond au chemin d'accès au fichier que vous avez créé à l'étape 2.BUCKET_NAME
est le nom du bucket dont vous souhaitez rendre les objets publics. Exemple :my-bucket
.
API XML
L'API XML ne permet pas de rendre tous les objets d'un bucket lisibles publiquement. Utilisez la console Google Cloud ou gcloud storage
.
Étapes suivantes
- Accédez aux données qui ont été rendues publiques.
- Apprenez-en plus sur les options de contrôle des accès pour vos buckets et vos objets.