Esta página mostra como tornar os objetos que possui legíveis para todos na Internet pública e como remover o acesso público do seu contentor. Para saber como aceder a dados que foram tornados públicos, consulte o artigo Aceder a dados públicos.
Quando um objeto é partilhado publicamente, qualquer utilizador com conhecimento do URI do objeto pode aceder ao objeto enquanto este for público.
Funções necessárias
Para receber as autorizações necessárias para tornar os objetos publicamente legíveis, peça ao seu administrador que lhe conceda as seguintes funções para o contentor que contém os dados que quer tornar públicos:
Para tornar todos os objetos num contentor publicamente legíveis: administrador de armazenamento (
roles/storage.admin
)Para tornar objetos individuais legíveis publicamente: Storage Object Admin (
roles/storage.objectAdmin
)- Se planeia usar a Trusted Cloud consola, precisa da função de administrador do armazenamento (
roles/storage.admin
) em vez da função de administrador do objeto de armazenamento.
- Se planeia usar a Trusted Cloud consola, precisa da função de administrador do armazenamento (
Para remover o acesso público de todos os objetos num contentor: administrador de armazenamento (
roles/storage.admin
)
Estas funções contêm as autorizações necessárias para tornar os objetos públicos. Para ver as autorizações exatas necessárias, expanda a secção Autorizações necessárias:
Autorizaçõ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 seguintes autorizações só são necessárias para usar a Trusted Cloud consola para realizar as tarefas nesta página:
storage.buckets.list
storage.objects.list
Também pode conseguir estas autorizações com outras funções predefinidas ou funções personalizadas.
Para obter instruções sobre como conceder funções em contentores, consulte o artigo Use o IAM com contentores.
Tornar todos os objetos num contentor legíveis publicamente
Para tornar todos os objetos num contentor legíveis para todos na Internet pública, conceda ao principal allUsers
a função Storage Object Viewer
(roles/storage.objectViewer
):
Consola
- Na Trusted Cloud consola, aceda à página Recipientes do Cloud Storage.
Na lista de contentores, clique no nome do contentor que quer tornar público.
Selecione o separador Permissões junto à parte superior da página.
Na secção Autorizações, clique no botão
Conceder acesso.É apresentada a caixa de diálogo Conceder acesso.
No campo Novos principais, introduza
allUsers
.No menu pendente Selecionar uma função, introduza
Storage Object Viewer
na caixa de filtro e selecione Visualizador de objetos do Storage nos resultados filtrados.Clique em Guardar.
Clique em Permitir acesso público.
Depois de conceder o acesso público, é apresentado um botão Copiar URL para cada objeto na coluna acesso público. Pode clicar neste botão para obter o URL público do objeto. O URL público é diferente do link que recebe se clicar com o botão direito do rato num objeto. Ambos os links dão acesso a um objeto, mas o URL público funciona sem que o utilizador tenha de iniciar sessão numa conta de utilizador. Consulte os pontos finais de pedido para mais informações.
Para saber como obter informações detalhadas sobre erros relativos a operações do Cloud Storage falhadas na Trusted Cloud consola, consulte a secção Resolução de problemas.
Para saber como resolver o erro de política da organização e o erro de autorização, consulte o artigo Resolva problemas ao tornar os dados públicos.Linha de comandos
-
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 programação, execute o comando
buckets add-iam-policy-binding
:gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member=allUsers --role=roles/storage.objectViewer
Onde
BUCKET_NAME
é o nome do contentor cujos objetos quer tornar públicos. Por exemplo,my-bucket
.Ter a CLI gcloud instalada e inicializada, o que lhe permite gerar um token de acesso para o cabeçalho
Authorization
.Crie um ficheiro JSON que contenha as seguintes informações:
{ "bindings":[ { "role": "roles/storage.objectViewer", "members":["allUsers"] } ] }
Use
cURL
para chamar a API JSON com um pedido dePUT
contentor: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"
Onde:
JSON_FILE_NAME
é o caminho do ficheiro que criou no passo 2.BUCKET_NAME
é o nome do contentor cujos objetos quer tornar públicos. Por exemplo,my-bucket
.
Bibliotecas cliente
C++
Para mais informações, consulte a documentação de referência da API C++ do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
C#
Para mais informações, consulte a documentação de referência da API C# do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
Go
Para mais informações, consulte a documentação de referência da API Go do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
Java
Para mais informações, consulte a documentação de referência da API Java do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
Node.js
Para mais informações, consulte a documentação de referência da API Node.js do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
PHP
Para mais informações, consulte a documentação de referência da API PHP do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
Python
Para mais informações, consulte a documentação de referência da API Python do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
Ruby
Para mais informações, consulte a documentação de referência da API Ruby do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
Terraform
Pode usar um recurso do Terraform para tornar públicos todos os objetos num contentor.
APIs REST
API JSON
API XML
Tornar todos os objetos num contentor legíveis publicamente não é suportado pela API XML. Use a Trusted Cloud consola ou o gcloud storage
.
Torne uma parte de um contentor publicamente legível
Use uma pasta gerida para controlar o acesso a objetos cujo prefixo do nome corresponda ao nome da pasta gerida. Por exemplo, pode usar uma pasta gerida com o nome my-folder
para controlar o acesso a objetos com os nomes my-folder/cats.jpg
e
my-folder/dogs.jpg
.
Para tornar esses objetos acessíveis publicamente, primeiro, crie a pasta gerida e, em seguida, defina uma política de IAM na pasta que conceda à conta de serviço do Google Cloud Storage a função de visualizador de objetos do Storage (roles/storage.objectViewer
):allUsers
Consola
- Na Trusted Cloud consola, aceda à página Recipientes do Cloud Storage.
Clique no nome do contentor que contém os objetos que quer tornar públicos.
Crie uma pasta através dos seguintes passos:
Clique no botão Criar pasta.
Introduza o Nome da pasta. Depois de a pasta ser convertida numa pasta gerida, os objetos cujo nome comece por este nome vão estar sujeitos às funções da IAM definidas na pasta.
Clique em Criar.
Converta a pasta numa pasta gerida através dos seguintes passos:
No painel que mostra o conteúdo do contentor, procure o nome da pasta que criou e clique no ícone Mais opções
.Clique em Editar acesso.
Na janela apresentada, clique em Ativar.
Adicione uma política de IAM à pasta que conceda a função
allUsers
Storage Object Viewer (roles/storage.objectViewer
), seguindo os passos abaixo:Se o painel Autorizações da pasta gerida ainda não estiver aberto, clique no ícone Mais opções
da pasta gerida e, de seguida, clique em Editar acesso.No painel Autorizações, clique no botão
Adicionar principal.No campo Novos principais, introduza
allUsers
.No menu pendente Selecionar uma função, introduza
Storage Object Viewer
na caixa de filtro e selecione Visualizador de objetos do Storage nos resultados filtrados.Clique em Guardar.
Clique em Permitir acesso público.
Depois de conceder o acesso público, é apresentado um botão Copiar URL para cada objeto aplicável na coluna acesso público. Pode clicar neste botão para obter o URL público do objeto. O URL público é diferente do link que obtém se clicar com o botão direito do rato num objeto. Ambos os links dão acesso a um objeto, mas o URL público funciona sem que o utilizador tenha de iniciar sessão numa conta de utilizador. Consulte os pontos finais de pedido para mais informações.
Para saber como obter informações detalhadas sobre erros relativos a operações do Cloud Storage falhadas na Trusted Cloud consola, consulte a secção Resolução de problemas.
Para saber como resolver o erro de política da organização e o erro de autorização, consulte o artigo Resolva problemas ao tornar os dados públicos.Linha de comandos
-
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 gerida com o comando
gcloud storage managed-folders create
:gcloud storage managed-folders create gs://BUCKET_NAME/MANAGED_FOLDER_NAME/
Onde:
BUCKET_NAME
é o nome do contentor no qual quer criar uma pasta gerida. Por exemplo,my-bucket
.MANAGED_FOLDER_NAME
é o nome da pasta gerida que quer criar. Por exemplo,my-managed-folder
.
No seu ambiente de desenvolvimento, adicione
allUsers
à política de IAM da pasta gerida através do 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
Onde:
BUCKET_NAME
é o nome do contentor que contém a pasta gerida à qual está a adicionar a política de IAM. Por exemplo,my-bucket
.MANAGED_FOLDER_NAME
é o nome da pasta gerida à qual quer adicionar acesso público. Por exemplo,my-managed-folder
.
Ter a CLI gcloud instalada e inicializada, o que lhe permite gerar um token de acesso para o cabeçalho
Authorization
.Crie um ficheiro JSON que contenha as seguintes informações:
{ "name": "MANAGED_FOLDER_NAME" }
Onde
MANAGED_FOLDER_NAME
é o nome da pasta gerida que quer criar. Por exemplo,my-managed-folder
.Use
cURL
para chamar a API JSON com um pedidoInsert 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"
Onde:
JSON_FILE_NAME
é o caminho para o ficheiro que criou no passo anterior.BUCKET_NAME
é o nome do contentor no qual quer criar uma pasta gerida. Por exemplo,my-bucket
.
Crie um ficheiro JSON que contenha as seguintes informações:
{ "bindings":[ { "role": "roles/storage.objectViewer", "members":["allUsers"] } ] }
Use
cURL
para chamar a API JSON com um pedido desetIamPolicy
ManagedFolder: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"
Onde:
JSON_FILE_NAME
é o caminho para o ficheiro que criou no passo anterior.BUCKET_NAME
é o nome do contentor que contém a pasta gerida à qual está a adicionar a política de IAM. Por exemplo,my-bucket
.MANAGED_FOLDER_NAME
é o nome da pasta gerida à qual está a adicionar a política de IAM. Por exemplo,my-managed-folder
.
APIs REST
API JSON
API XML
A API XML não suporta o trabalho com pastas geridas. Use uma ferramenta diferente, como a Trusted Cloud consola, ou defina ACLs em objetos individuais através de pedidos Set Object ACL
. Segue-se um exemplo de um ficheiro de LCA que concederia acesso de allUsers
a um objeto:
<AccessControlList> <Entries> <Entry> <Scope type="AllUsers"/> <Permission>READ</Permission> </Entry> </Entries> </AccessControlList>
Remova o acesso público de todos os objetos num contentor
Para remover o acesso público a todos os objetos num contentor, remova a política de IAM que concede a função de allUsers
Leitor de objetos do Storageroles/storage.objectViewer
:
Consola
- Na Trusted Cloud consola, aceda à página Recipientes do Cloud Storage.
Na lista de contentores, clique no nome do contentor do qual quer remover o acesso público.
Selecione o separador Autorizações.
A política IAM que se aplica ao contentor aparece na secção Autorizações.
No separador Vista por responsáveis, selecione a caixa de verificação do responsável que está a remover.
allUsers
Clique no botão - Remover acesso.
Na janela de sobreposição apresentada, clique em Confirmar.
Para saber como obter informações detalhadas sobre erros relativos a operações do Cloud Storage falhadas na Trusted Cloud consola, consulte a secção Resolução de problemas.
Linha de comandos
-
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, execute o comando
buckets remove-iam-policy-binding
:Ter a CLI gcloud instalada e inicializada, o que lhe permite gerar um token de acesso para o cabeçalho
Authorization
.Aplique a política existente ao seu contentor. Para o fazer, use
cURL
para chamar a API JSON com um pedidoGET 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 contentor cuja política de IAM quer ver. Por exemplo,my-bucket
.Crie um ficheiro JSON que contenha a política que recuperou no passo anterior e edite o ficheiro para remover a associação do principal à política.
allUsers
Use
cURL
para chamar a API JSON com um pedidoPUT 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"
Onde:
JSON_FILE_NAME
é o caminho para o ficheiro que criou no passo 3.BUCKET_NAME
é o nome do contentor do qual 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 contentor ao qual está a revogar o acesso. Por exemplo, my-bucket
.
APIs REST
JSON
O que se segue?
- Aceder a dados que foram tornados públicos.
- Saiba mais sobre as opções de controlo de acesso para os seus contentores e objetos.