Nesta página, você vai aprender a permitir que todos os usuários da Internet pública leiam seus objetos e a remover o acesso público do seu bucket. Para saber como acessar dados públicos, consulte esta página.
Quando um objeto é compartilhado publicamente, qualquer usuário que saiba o URI dele poderá acessá-lo enquanto ele for público.
Funções exigidas
Para ter as permissões necessárias para tornar os objetos publicamente legíveis, peça ao administrador para conceder a você os seguintes papéis para o bucket que contém os dados que você quer tornar públicos:
Para ativar a leitura pública de todos os objetos em um bucket: Administrador do Storage (
roles/storage.admin
)Para permitir a leitura pública de objetos individuais: Administrador de objetos do Storage (
roles/storage.objectAdmin
)- Se você planeja usar o console Trusted Cloud , será necessário o papel Administrador do Storage (
roles/storage.admin
) em vez do papel Administrador de objetos do Storage.
- Se você planeja usar o console Trusted Cloud , será necessário o papel Administrador do Storage (
Para remover o acesso público de todos os objetos em um bucket: Administrador do Storage (
roles/storage.admin
)
Esses papéis contêm as permissões necessárias para tornar os objetos públicos. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
storage.buckets.update
storage.objects.get
storage.objects.getIamPolicy
storage.objects.setIamPolicy
storage.objects.update
As permissões a seguir são necessárias apenas para usar o consoleTrusted Cloud para realizar as tarefas nesta página:
storage.buckets.list
storage.objects.list
Também é possível conseguir essas permissões com outros papéis predefinidos ou personalizados.
Para instruções sobre como conceder papéis nos buckets, consulte Usar o IAM com buckets.
Habilitar a leitura pública de todos os objetos em um bucket
Para tornar todos os objetos de um bucket legíveis para todos na Internet pública,
conceda ao allUsers
principal o papel Leitor de objetos do Storage
(roles/storage.objectViewer
):
Console
- No console Trusted Cloud , acesse a página Buckets do Cloud Storage.
Na lista de buckets, clique no nome do bucket que você quer tornar público.
Selecione a guia Permissões na parte superior da página.
Na seção Permissões, clique no botão
Conceder acesso.A caixa de diálogo Conceder acesso será exibida.
No campo Novos participantes, insira
allUsers
.Na lista suspensa Selecionar um papel, insira
Storage Object Viewer
na caixa de filtro e selecione Visualizador de objetos do Storage nos resultados filtrados.Clique em Salvar.
Clique em Permitir acesso público.
Depois que o acesso público for concedido, um botão Copiar URL vai aparecer para cada objeto na coluna de acesso público. Clique nesse botão para ver o URL público do objeto. O URL público é diferente do link que você recebe ao clicar com o botão direito do mouse em um objeto. Os dois links dão acesso a um objeto, mas o URL público funciona sem que o usuário precise fazer login em uma conta. Consulte Endpoints de solicitação para mais informações.
Para saber como acessar informações detalhadas de erro sobre operações do Cloud Storage com falha no console Trusted Cloud , consulte Solução de problemas.
Para saber como resolver erros de política da organização e de permissão, consulte Solução de problemas ao tornar dados públicos.Linha de comando
-
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted 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.
No ambiente para desenvolvedores, execute o comando
buckets add-iam-policy-binding
:gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member=allUsers --role=roles/storage.objectViewer
Em que
BUCKET_NAME
é o nome do bucket que contém os objetos que você quer tornar públicos. Por exemplo,my-bucket
.Ter CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho
Authorization
.Crie um arquivo JSON com as informações a seguir:
{ "bindings":[ { "role": "roles/storage.objectViewer", "members":["allUsers"] } ] }
Use
cURL
para chamar a API JSON com uma solicitação 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.s3nsapis.fr/storage/v1/b/BUCKET_NAME/iam"
Em que:
JSON_FILE_NAME
é o caminho para o arquivo criado na Etapa 2.BUCKET_NAME
é o nome do bucket que contém os objetos que você quer tornar públicos. Por exemplo,my-bucket
.
Bibliotecas de cliente
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage C++.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável de ambiente GOOGLE_CLOUD_UNIVERSE_DOMAIN
como s3nsapis.fr
.
C#
Saiba mais na documentação de referência C# da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável de ambiente GOOGLE_CLOUD_UNIVERSE_DOMAIN
como s3nsapis.fr
.
Go
Saiba mais na documentação de referência Go da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável de ambiente GOOGLE_CLOUD_UNIVERSE_DOMAIN
como s3nsapis.fr
.
Java
Saiba mais na documentação de referência Java da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável de ambiente GOOGLE_CLOUD_UNIVERSE_DOMAIN
como s3nsapis.fr
.
Node.js
Saiba mais na documentação de referência Node.js da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável de ambiente GOOGLE_CLOUD_UNIVERSE_DOMAIN
como s3nsapis.fr
.
PHP
Saiba mais na documentação de referência PHP da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável de ambiente GOOGLE_CLOUD_UNIVERSE_DOMAIN
como s3nsapis.fr
.
Python
Saiba mais na documentação de referência Python da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável de ambiente GOOGLE_CLOUD_UNIVERSE_DOMAIN
como s3nsapis.fr
.
Ruby
Saiba mais na documentação de referência Ruby da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável de ambiente GOOGLE_CLOUD_UNIVERSE_DOMAIN
como s3nsapis.fr
.
Terraform
Use um recurso do Terraform para tornar todos os objetos em um bucket público.
APIs REST
API JSON
API XML
Não é possível ativar a leitura pública de todos os objetos em um bucket com
a API XML. Use o console do Trusted Cloud ou o gcloud storage
.
Tornar parte de um bucket legível publicamente
Use uma pasta gerenciada para controlar o acesso a objetos cujo prefixo de nome corresponde
ao nome da pasta gerenciada. Por exemplo, uma pasta gerenciada chamada my-folder
pode ser usada para controlar o acesso a objetos chamados my-folder/cats.jpg
e
my-folder/dogs.jpg
Para tornar esses objetos publicamente acessíveis, primeiro crie a pasta gerenciada e, em seguida, defina uma política do IAM na pasta que conceda ao allUsers
o papel de Leitor de objetos do Storage (roles/storage.objectViewer
):
Console
- No console Trusted Cloud , acesse a página Buckets do Cloud Storage.
Clique no nome do bucket que contém os objetos que você quer tornar públicas.
Crie uma pasta seguindo estas etapas:
Clique no botão Criar pasta.
Digite o Nome da pasta. Depois que a pasta for convertida em uma pasta gerenciada, os objetos cujos nomes começam com esse nome estarão sujeitos às funções do IAM definidas na pasta.
Clique em Criar.
Converta a pasta em uma gerenciada seguindo estas etapas:
No painel que mostra o conteúdo do bucket, encontre o nome da pasta que você criou e clique no ícone Mais opções
.Clique em Editar acesso.
Na janela exibida, clique em Ativar.
Adicione uma política do IAM à pasta que concede a
allUsers
o papel de Leitor de objetos do Storage (roles/storage.objectViewer
), usando as seguintes etapas:Se o painel Permissões da pasta gerenciada ainda não estiver aberto, clique no ícone Mais opções
da pasta gerenciada e em Editar acesso.No painel Permissões, clique no botão
Adicionar principal .No campo Novos participantes, insira
allUsers
.Na lista suspensa Selecionar uma função, insira
Storage Object Viewer
na caixa de filtro e selecione Visualizador de objetos do Storage nos resultados filtrados.Clique em Salvar.
Clique em Permitir acesso público.
Depois que o acesso público for concedido, um botão Copiar URL vai aparecer para cada objeto aplicável na coluna de acesso público. Clique nesse botão para ver o URL público do objeto. O URL público é diferente do link que você recebe ao clicar com o botão direito do mouse em um objeto. Os dois links dão acesso a um objeto, mas o URL público funciona sem que o usuário precise fazer login em uma conta. Consulte Endpoints de solicitação para mais informações.
Para saber como acessar informações detalhadas de erro sobre operações do Cloud Storage com falha no console Trusted Cloud , consulte Solução de problemas.
Para saber como resolver erros de política da organização e de permissão, consulte Solução de problemas ao tornar dados públicos.Linha de comando
-
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted 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.
No seu ambiente de desenvolvimento, crie uma pasta gerenciada usando o Comando
gcloud storage managed-folders create
:gcloud storage managed-folders create gs://BUCKET_NAME/MANAGED_FOLDER_NAME/
Em que:
BUCKET_NAME
é o nome do bucket em que você quer criar uma pasta gerenciada. Por exemplo,my-bucket
.MANAGED_FOLDER_NAME
é o nome da pasta gerenciada que você quer criar. Por exemplo,my-managed-folder
.
No seu ambiente de desenvolvimento, adicione
allUsers
à política do IAM usando o 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
Em que:
BUCKET_NAME
é o nome do bucket que contém a pasta gerenciada à qual você está adicionando a política do IAM. Por exemplo,my-bucket
.MANAGED_FOLDER_NAME
é o nome da pasta gerenciada à qual você quer adicionar acesso público. Por exemplo,my-managed-folder
.
Ter CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho
Authorization
.Crie um arquivo JSON com as informações a seguir:
{ "name": "MANAGED_FOLDER_NAME" }
Em que
MANAGED_FOLDER_NAME
é o nome da pasta gerenciada que você quer criar. Por exemplo,my-managed-folder
.Use
cURL
para chamar a API JSON com uma solicitaçãoInsert ManagedFolder
:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME/managedFolders"
Em que:
JSON_FILE_NAME
é o caminho para o arquivo que você criou na etapa anterior.BUCKET_NAME
é o nome do bucket em que você quer criar uma pasta gerenciada. Por exemplo,my-bucket
.
Crie um arquivo JSON com as informações a seguir:
{ "bindings":[ { "role": "roles/storage.objectViewer", "members":["allUsers"] } ] }
Use
cURL
para chamar a API JSON com uma solicitação de ManagedFoldersetIamPolicy
:curl -X PUT --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"
Em que:
JSON_FILE_NAME
é o caminho para o arquivo que você criou na etapa anterior.BUCKET_NAME
é o nome do bucket que contém a pasta gerenciada à qual você está adicionando a política do IAM. Por exemplo,my-bucket
.MANAGED_FOLDER_NAME
é o nome da pasta gerenciada em que a política do IAM está sendo adicionada. Por exemplo,my-managed-folder
.
APIs REST
API JSON
API XML
A API XML não oferece suporte para trabalhar com pastas gerenciadas. Use uma ferramenta diferente, como o console Trusted Cloud , ou defina ACLs em objetos individuais usando solicitações Set Object ACL
. O seguinte
é um exemplo de arquivo de ACL que concederia a allUsers
acesso a um objeto:
<AccessControlList> <Entries> <Entry> <Scope type="AllUsers"/> <Permission>READ</Permission> </Entry> </Entries> </AccessControlList>
Remover o acesso público de todos os objetos em um bucket
Para remover o acesso público a todos os objetos em um bucket, remova a política do IAM que concede a allUsers
o papel de Leitor de objetos do Storage (roles/storage.objectViewer
):
Console
- No console Trusted Cloud , acesse a página Buckets do Cloud Storage.
Na lista de buckets, clique no nome daquele de que você quer remover o acesso público.
Selecione a guia Permissões.
A política do IAM que se aplica ao bucket aparece na seção Permissões.
Na guia Visualizar por principais, marque a caixa de seleção do principal
allUsers
que você está removendo.Clique no botão - Remover acesso.
Na janela de sobreposição exibida, clique em Confirmar.
Para saber como acessar informações detalhadas de erro sobre operações do Cloud Storage com falha no console Trusted Cloud , consulte Solução de problemas.
Linha de comando
-
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted 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.
No ambiente de desenvolvimento, execute o comando
buckets remove-iam-policy-binding
:Ter CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho
Authorization
.Receba a política atual aplicada ao bucket. Para fazer isso, use
cURL
para chamar a API JSON com uma solicitaçãoGET getIamPolicy
:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME/iam"
Em que
BUCKET_NAME
é o nome do bucket em que está a política de IAM que você quer visualizar. Por exemplo,my-bucket
.Crie um arquivo JSON com a política que você recuperou na etapa anterior e edite o arquivo para remover a vinculação do principal
allUsers
da política.Use
cURL
para chamar a API JSON com uma solicitaçãoPUT setIamPolicy
:curl -X PUT --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME/iam"
Em que:
JSON_FILE_NAME
é o caminho para o arquivo criado na Etapa 3.BUCKET_NAME
é o nome do bucket a partir do qual você quer remover o acesso. Por exemplo,my-bucket
.
gcloud storage buckets remove-iam-policy-binding gs://BUCKET_NAME --member=allUsers --role=roles/storage.objectViewer
Em que BUCKET_NAME
é o nome do bucket ao qual você está
revogando o acesso. Por exemplo, my-bucket
.
APIs REST
JSON
A seguir
- Acesse dados que foram tornados públicos.
- Conheça mais opções de controle de acesso para seus buckets e objetos.