Questa pagina mostra come rendere leggibili i tuoi oggetti da parte di chiunque su internet. Per scoprire come accedere ai dati che sono stati resi pubblici, consulta la pagina Accedere ai dati pubblici.
Quando un oggetto viene condiviso pubblicamente, qualsiasi utente che conosca l'URI dell'oggetto può accedervi finché l'oggetto è pubblico.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per rendere gli oggetti leggibili pubblicamente, chiedi all'amministratore di concederti i seguenti ruoli per il bucket che contiene i dati che vuoi rendere pubblici:
Per rendere pubblicamente leggibili tutti gli oggetti di un bucket: Amministratore archiviazione (
roles/storage.admin
)Per rendere pubblicamente leggibili i singoli oggetti: Storage Object Admin (
roles/storage.objectAdmin
)- Se prevedi di utilizzare la console Google Cloud, devi disporre del ruolo Amministratore di archiviazione (
roles/storage.admin
) anziché del ruolo Amministratore di oggetti archiviazione.
- Se prevedi di utilizzare la console Google Cloud, devi disporre del ruolo Amministratore di archiviazione (
Questi ruoli contengono le autorizzazioni necessarie per rendere pubblici gli oggetti. Per visualizzare le autorizzazioni esattamente richieste, espandi la sezione Autorizzazioni richieste:
Autorizzazioni obbligatorie
storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
storage.buckets.update
storage.objects.get
storage.objects.getIamPolicy
storage.objects.setIamPolicy
storage.objects.update
Le seguenti autorizzazioni sono necessarie solo per utilizzare la console Google Cloud per eseguire le attività in questa pagina:
storage.buckets.list
storage.objects.list
Potresti anche ottenere queste autorizzazioni con altri ruoli predefiniti o personalizzati.
Per istruzioni su come concedere i ruoli ai bucket, consulta Utilizzare IAM con i bucket.
Rendere pubblicamente leggibili tutti gli oggetti in un bucket
Per rendere leggibili tutti gli oggetti in un bucket da parte di chiunque su internet,
concedi al principale allUsers
il ruolo Visualizzatore oggetti Storage
(roles/storage.objectViewer
):
Console
- Nella console Google Cloud, vai alla pagina Bucket in Cloud Storage.
Nell'elenco dei bucket, fai clic sul nome del bucket da rendere pubblico.
Seleziona la scheda Autorizzazioni nella parte superiore della pagina.
Nella sezione Autorizzazioni, fai clic sul pulsante
Concedi accesso.Viene visualizzata la finestra di dialogo Concedi l'accesso.
Nel campo Nuove entità, inserisci
allUsers
.Nel menu a discesa Seleziona un ruolo, inserisci
Storage Object Viewer
nella casella di filtro e seleziona Visualizzatore oggetti Storage dai risultati filtrati.Fai clic su Salva.
Fai clic su Consenti accesso pubblico.
Una volta concesso l'accesso pubblico, viene visualizzato Copia URL per ogni oggetto nella colonna Accesso pubblico. Puoi fare clic su questo pulsante per ottenere l'URL pubblico per l'oggetto.
Per scoprire come ottenere informazioni dettagliate sugli errori relativi alle operazioni di Cloud Storage non riuscite nella console Google Cloud, consulta la sezione Risoluzione dei problemi.
Riga di comando
-
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.
Nell'ambiente di sviluppo, esegui il comando
buckets add-iam-policy-binding
:gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member=allUsers --role=roles/storage.objectViewer
Dove
BUCKET_NAME
è il nome del bucket cuyos oggetti vuoi rendere pubblici. Ad esempio,my-bucket
.
Librerie client
C++
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C++.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
C#
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C#.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Go
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Go.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Java
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Java.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Node.js
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Node.js.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
PHP
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage PHP.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Python
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Python.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Ruby
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Ruby.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Terraform
Puoi utilizzare una risorsa Terraform per rendere pubblici tutti gli oggetti in un bucket.
API REST
API JSON
Avere installato e inizializzatogcloud CLI, che consente di generare un token di accesso per l'intestazione
Authorization
.Crea un file JSON contenente le seguenti informazioni:
{ "bindings":[ { "role": "roles/storage.objectViewer", "members":["allUsers"] } ] }
Utilizza
cURL
per chiamare l'API JSON con una richiestaPUT
Bucket: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"
Dove:
JSON_FILE_NAME
è il percorso del file che hai creato nel passaggio 2.BUCKET_NAME
è il nome del bucket cuyos oggetti vuoi rendere pubblici. Ad esempio,my-bucket
.
API XML
La leggibilità pubblica di tutti gli oggetti in un bucket non è supportata dall'API XML. Utilizza la console Google Cloud o gcloud storage
.
Rendere pubblicamente leggibile una parte di un bucket
Utilizza una cartella gestita per controllare l'accesso agli oggetti il cui prefisso del nome corrisponde al nome della cartella gestita. Ad esempio, una cartella gestita denominata my-folder
può essere utilizzata per controllare l'accesso agli oggetti denominati my-folder/cats.jpg
e
my-folder/dogs.jpg
.
Per rendere questi oggetti pubblicamente accessibili, crea prima la cartella gestita e poi imposta un criterio IAM sulla cartella che conceda a allUsers
il ruolo Visualizzatore oggetti Storage (roles/storage.objectViewer
):
Console
- Nella console Google Cloud, vai alla pagina Bucket in Cloud Storage.
Fai clic sul nome del bucket contenente gli oggetti che vuoi pubblicare.
Crea una cartella seguendo questa procedura:
Fai clic sul pulsante Crea cartella.
Inserisci il nome della cartella. Una volta convertita la cartella in una cartella gestita, gli oggetti il cui nome inizia con questo nome saranno soggetti ai ruoli IAM impostati sulla cartella.
Fai clic su Crea.
Converti la cartella in una cartella gestita seguendo questa procedura:
Nel riquadro che mostra i contenuti del bucket, individua il nome della cartella che hai creato e fai clic sull'icona Altre opzioni
.Fai clic su Modifica accesso.
Nella finestra visualizzata, fai clic su Attiva.
Aggiungi alla cartella un criterio IAM che conceda a
allUsers
il ruolo Visualizzatore oggetti Storage (roles/storage.objectViewer
) seguendo i passaggi che seguono:Se il riquadro Autorizzazioni per la cartella gestita non è ancora aperto, fai clic sull'icona Altre opzioni
per la cartella gestita e poi su Modifica accesso.Nel riquadro Autorizzazioni, fai clic sul pulsante
Aggiungi entità.Nel campo Nuove entità, inserisci
allUsers
.Nel menu a discesa Seleziona un ruolo, inserisci
Storage Object Viewer
nella casella del filtro e seleziona Visualizzatore oggetti Storage tra i risultati filtrati.Fai clic su Salva.
Fai clic su Consenti accesso pubblico.
Una volta concesso l'accesso pubblico, viene visualizzato Copia URL per ogni oggetto applicabile nella colonna Accesso pubblico. Puoi fare clic su questo pulsante per ottenere l'URL pubblico dell'oggetto.
Per scoprire come ottenere informazioni dettagliate sugli errori relativi alle operazioni di Cloud Storage non riuscite nella console Google Cloud, consulta la sezione Risoluzione dei problemi.
Riga di comando
-
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.
Nell'ambiente di sviluppo, crea una cartella gestita utilizzando il comando
gcloud storage managed-folders create
:gcloud storage managed-folders create gs://BUCKET_NAME/MANAGED_FOLDER_NAME/
Dove:
BUCKET_NAME
è il nome del bucket in cui vuoi creare una cartella gestita. Ad esempio,my-bucket
.MANAGED_FOLDER_NAME
è il nome della cartella gestita che vuoi creare. Ad esempio,my-managed-folder
.
Nell'ambiente di sviluppo, aggiungi
allUsers
al criterio IAM della cartella gestita utilizzando il comandogcloud storage managed-folders add-iam-policy-binding
:gcloud storage managed-folders add-iam-policy-binding gs://BUCKET_NAME/MANAGED_FOLDER_NAME --member=allUsers --role=roles/storage.objectViewer
Dove:
BUCKET_NAME
è il nome del bucket contenente la cartella gestita a cui aggiungi il criterio IAM. Ad esempio,my-bucket
.MANAGED_FOLDER_NAME
è il nome della cartella gestita a cui vuoi aggiungere l'accesso pubblico. Ad esempio,my-managed-folder
.
API REST
API JSON
Avere installato e inizializzatogcloud CLI, che consente di generare un token di accesso per l'intestazione
Authorization
.Crea un file JSON contenente le seguenti informazioni:
{ "name": "MANAGED_FOLDER_NAME" }
Dove
MANAGED_FOLDER_NAME
è il nome della cartella gestita che vuoi creare. Ad esempio,my-managed-folder
.Utilizza
cURL
per chiamare l'API JSON con una richiestaInsert ManagedFolder
: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/managedFolders"
Dove:
JSON_FILE_NAME
è il percorso del file che hai creato nel passaggio precedente.BUCKET_NAME
è il nome del bucket in cui vuoi creare una cartella gestita. Ad esempio,my-bucket
.
Crea un file JSON contenente le seguenti informazioni:
{ "bindings":[ { "role": "roles/storage.objectViewer", "members":["allUsers"] } ] }
Utilizza
cURL
per chiamare l'API JSON con una richiestasetIamPolicy
ManagedFolder: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/managedFolders/MANAGED_FOLDER_NAME/iam"
Dove:
JSON_FILE_NAME
è il percorso del file che hai creato nel passaggio precedente.BUCKET_NAME
è il nome del bucket contenente la cartella gestita a cui aggiungi il criterio IAM. Ad esempio,my-bucket
.MANAGED_FOLDER_NAME
è il nome della cartella gestita a cui stai aggiungendo il criterio IAM. Ad esempio,my-managed-folder
.
API XML
L'API XML non supporta il lavoro con le cartelle gestite. Utilizza un
strumento diverso, come la console Google Cloud, o imposta gli ACL su
singoli oggetti utilizzando le richieste Set Object ACL
. Di seguito è riportato un esempio di file ACL che concederebbe a allUsers
l'accesso a un oggetto:
<AccessControlList> <Entries> <Entry> <Scope type="AllUsers"/> <Permission>READ</Permission> </Entry> </Entries> </AccessControlList>
Passaggi successivi
- Accedere ai dati che sono stati resi pubblici.
- Scopri di più sulle opzioni di controllo dell'accesso per i tuoi bucket e oggetti.