Crie e faça a gestão de listas de controlo de acesso (LCAs) (original) (raw)

Ir para o conteúdo principal

Crie e faça a gestão de listas de controlo de acesso (LCAs)

Overview

Esta página descreve como controlar o acesso a contentores e objetos através de listas de controlo de acesso (ACLs). As ACLs são um mecanismo que pode usar para definir quem tem acesso aos seus contentores e objetos, bem como o nível de acesso que têm.

Consulte a vista geral das LCAs para saber se deve usar LCAs para controlar o acesso aos seus recursos.

Funções necessárias

Para receber as autorizações de que precisa para criar e gerir ACLs, peça ao seu administrador para lhe conceder a função do IAM de administrador do armazenamento (roles/storage.admin) no contentor que contém os objetos para os quais quer criar e gerir ACLs.

Esta função predefinida contém as autorizações necessárias para criar e gerir ACLs. Para ver as autorizações exatas necessárias, expanda a secçãoAutorizações necessárias:

Autorizações necessárias

Também pode obter estas autorizações com funções personalizadas.

Para obter informações sobre como conceder funções em contentores, consulte o artigoDefina e faça a gestão de políticas de IAM em contentores.

Defina ou modifique ACLs

Consola

  1. Aceda ao navegador do Cloud Storage na Google Cloud consola.
    Aceda ao navegador do Cloud Storage
  2. Na lista de contentores, clique no nome do contentor que contém o objeto cuja ACL quer modificar.
  3. Clique no nome do objeto para o qual quer definir ou modificar as LCAs.
  4. Clique em Editar acesso.
    É aberta uma caixa de diálogo de autorizações com a LCA atual do objeto.
  5. Clique em + Adicionar entrada.
  6. Escolha o tipo de entidade à qual quer conceder autorização.
    Entity especifica o tipo de elemento que está a receber a autorização (por exemplo, um utilizador ou um grupo). Consulte os âmbitos de controlo de acessopara ver uma lista de valores suportados para Entity.
  7. Introduza um valor em Nome.
    Name identifica um utilizador, um grupo ou outro tipo de entidade específico. Consulte os âmbitos de controlo de acesso para ver uma lista de valores suportados para Nome.
    Em conjunto, Entidade e Nome definem a quem se aplica a autorização.
  8. Escolha um valor em Acesso.
    O acesso define a autorização que quer definir no objeto. Consulte Autorizações de controlo de acesso para ver uma lista de valores suportados para Acesso.
  9. Clique em Guardar.

Para saber como obter informações detalhadas sobre erros relativos a operações do Cloud Storage falhadas na Google Cloud consola, consulte a secçãoResolução de problemas.

Linha de comandos

Para adicionar, modificar ou remover uma concessão individual num objeto, use o comandoobjects update com a flag relevante:

gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME FLAG

Onde:

Para substituir todas as ACLs de um objeto:

  1. Defina as ACLs num ficheiro formatado em JSON ou YAML.
    Por exemplo, as seguintes LCAs concedem a autorização OWNER para o objeto paris.jpg aos proprietários do projeto 867489160491 e ao utilizador jeffersonloveshiking@gmail.com, bem como a autorização READER para paris.jpg aos membros do grupo gs-announce:
    [
    {
    "entity": "project-owners-867489160491",
    "role": "OWNER",
    "projectTeam": {
    "projectNumber": "867489160491",
    "team": "owners"
    },
    },
    {
    "entity": "user-jeffersonloveshiking@gmail.com",
    "email": "jeffersonloveshiking@gmail.com",
    "role": "OWNER"
    },
    {
    "entity": "group-gs-announce@googlegroups.com",
    "email": "gs-announce@googlegroups.com",
    "role": "READER"
    }
    ]
  2. Use o comando objects update com a flag --acl-file:
    gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME --acl-file=FILE_LOCATION
    Onde:
    • BUCKET_NAME é o nome do contentor que contém o objeto ao qual as LCAs se aplicam. Por exemplo,example-travel-maps.
    • OBJECT_NAME é o nome do objeto ao qual as LCAs se aplicam. Por exemplo, paris.jpg.
    • FILE_LOCATION é o caminho local para o ficheiro que contém as ACLs que definiu. Por exemplo,Desktop/acls.json.

Bibliotecas cliente

C++

Para mais informações, consulte adocumentaçã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 artigoConfigure a autenticação para bibliotecas de cliente.

O exemplo seguinte adiciona uma ACL a um objeto:

O exemplo seguinte remove uma ACL de um objeto:

C#

Para mais informações, consulte adocumentaçã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 artigoConfigure a autenticação para bibliotecas de cliente.

O exemplo seguinte adiciona uma ACL a um objeto:

O exemplo seguinte remove uma ACL de um objeto:

Go

Para mais informações, consulte adocumentaçã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 artigoConfigure a autenticação para bibliotecas de cliente.

O exemplo seguinte adiciona uma ACL a um objeto:

O exemplo seguinte remove uma ACL de um objeto:

Java

Para mais informações, consulte adocumentaçã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 artigoConfigure a autenticação para bibliotecas de cliente.

O exemplo seguinte adiciona uma ACL a um objeto:

O exemplo seguinte remove uma ACL de um objeto:

Node.js

Para mais informações, consulte adocumentaçã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 artigoConfigure a autenticação para bibliotecas de cliente.

O exemplo seguinte adiciona uma ACL a um objeto:

O exemplo seguinte remove uma ACL de um objeto:

PHP

Para mais informações, consulte adocumentaçã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 artigoConfigure a autenticação para bibliotecas de cliente.

O exemplo seguinte adiciona uma ACL a um objeto:

O exemplo seguinte remove uma ACL de um objeto:

Python

Para mais informações, consulte adocumentaçã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 artigoConfigure a autenticação para bibliotecas de cliente.

O exemplo seguinte adiciona uma ACL a um objeto:

O exemplo seguinte remove uma ACL de um objeto:

Ruby

Para mais informações, consulte adocumentaçã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 artigoConfigure a autenticação para bibliotecas de cliente.

O exemplo seguinte adiciona uma ACL a um objeto:

O exemplo seguinte remove uma ACL de um objeto:

APIs REST

API JSON

Quando cria um objeto, pode especificar a propriedade acl[] no corpo do pedido ou o parâmetro de consulta predefinedAcl num pedido de inserção. Para um objeto existente, especifique a propriedade acl[] ou o parâmetro de consulta predefinedAcl num pedido patch ou update.

Para ver a definição da propriedade ACL do objeto, consulte o recurso ObjectAccessControls.

  1. Defina as ACLs num ficheiro JSON.
    Por exemplo, se a LCA conceder aos proprietários do projeto 867489160491 e ao utilizador jeffersonloveshiking@gmail.com autorização OWNER, juntamente com a concessão aos membros do grupo gs-announce autorização READER, pode ter um ficheiro denominado acls.json com o seguinte conteúdo:
    {
    "acl": [
    {
    "entity": "project-owners-867489160491",
    "role": "OWNER",
    "projectTeam": {
    "projectNumber": "867489160491",
    "team": "owners"
    }
    },
    {
    "entity": "user-jeffersonloveshiking@gmail.com",
    "role": "OWNER",
    "email": "jeffersonloveshiking@gmail.com"
    },
    {
    "entity": "group-gs-announce@googlegroups.com",
    "role": "READER",
    "email": "gs-announce@googlegroups.com"
    }
    ]
    }
  2. Envie um pedido patch com o ficheiro JSON e especifique o objeto no qual definir as ACLs.

Por exemplo, o comando curl seguinte aplica um payload JSON do documento acls.json a um objeto denominado paris.jpg no contentor example-travel-maps:

curl -X PATCH --data @acls.json -H "Content-Type: application/json"
-H "Authorization: Bearer $(gcloud auth print-access-token)"
https://storage.googleapis.com/storage/v1/b/example-travel-maps/o/paris.jpg

API XML

Na API XML, trabalha com ACLs em formato XML. Tem de anexar um documento XML ao corpo dos pedidos para alterar as LCAs de objetos e contentores. É devolvido um documento XML quando obtém ACLs de objetos e contentores. O documento XML contém as entradas ACL do objeto ou do contentor individual.

Por exemplo, o comando curl seguinte aplica um payload XML do documento acls.xml a um objeto denominado paris.jpg no contentor example-travel-maps:

curl -X PUT --data-binary @acls.xml
-H "Authorization: Bearer $(gcloud auth print-access-token)"
https://storage.googleapis.com/example-travel-maps/paris.jpg?acl

Use a seguinte sintaxe de ACL para o documento XML:

Elemento Descrição
AccessControlList Contentor para elementos Entries e Owner.
Owner Contentor para elementos DisplayName e ID. Este elemento não é obrigatório para objetos, uma vez que um objeto é sempre propriedade do utilizador que o carregou. Este elemento é usado quando está a usar a sintaxe de ACL do Amazon S3 num cenário de migração. Amazon Simple Storage Service™ e Amazon S3™ são marcas comerciais da Amazon.com, Inc. ou das respetivas afiliadas nos Estados Unidos e/ou noutros países.
ID ID do Cloud Storage do proprietário do contentor.
DisplayName Não implementado. O valor é sempre uma string vazia.
Entries Contentor para zero ou mais elementos Entry.
Entry Contentor para elementos Scope e Permission. Um elemento Entry tem de conter apenas um elemento Scope e um elemento Permission.
Scope Contentor para um elemento ID, EmailAddress ou Domain que define o âmbito da ACL. Este elemento tem de ter um atributo type que contenha um dos seguintes valores: UserByID, UserByEmail, GroupByID, GroupByEmail, GroupByDomain, AllUsers ou AllAuthenticatedUsers.
ID Um identificador do beneficiário quando a entrada de autorização é especificada por ID.
EmailAddress O identificador de email do beneficiário quando a entrada de autorização é especificada por email.
Domain O identificador do domínio do beneficiário quando a entrada de autorização é especificada por domínio.
Name Elemento opcional que pode ser especificado ou adicionado automaticamente se o âmbito for UserByEmail ou GroupByEmail.
Permission A autorização concedida READ, WRITE ou FULL_CONTROL.

Quando trabalhar com ACLs através da API XML:

O exemplo seguinte mostra diferentes entradas da ACL do contentor:

00b4903a9721... 00b4903a9722... FULL_CONTROL example.com READ gs-announce@googlegroups.com READ jeffersonloveshiking@gmail.com Jefferson FULL_CONTROL READ READ

Defina o elemento Name no XML da ACL

Quando obtém uma ACL de um contentor ou um objeto, pode reparar num elemento <Name> adicional anexado a algumas das suas entradas. Por exemplo, pode ver uma entrada com o seguinte aspeto:

jeffersonloveshiking@gmail.com Jefferson FULL_CONTROL

Estes elementos <Name> opcionais são preenchidos em duas circunstâncias:

  1. Quando as ACLs do contentor ou do objeto incluem <Name> como um elemento.
    Quando define ACLs, pode optar por incluir o elemento <Name> com as entradas de ACL. Pode fornecer qualquer valor no elemento <Name>, e o Cloud Storage memoriza estes valores até que a ACL seja removida ou substituída. Esta abordagem pode ser útil se estiver a usar identificadores que não são facilmente identificáveis.
  2. Quando um âmbito UserByEmail ou GroupByEmail contém um perfil público do Google.
    Se usar qualquer um destes âmbitos, mas não fornecer um elemento <Name>, o Cloud Storage verifica se o utilizador ou o grupo Google associado ao endereço de email tem um perfil público do Google com um nome público. Se for o caso, o Cloud Storage preenche automaticamente o elemento <Name> com o nome público.

Aplique uma LCA predefinida

Em vez de especificar toda a ACL uma entrada de cada vez, como mostrado acima, pode usar uma ACL predefinida, que aplica automaticamente várias entradas personalizadas a um cenário específico. Pode aplicar uma ACL predefinida a um contentor ou a um objeto através da Google Cloud CLI, da API JSON ou da API XML.

Em novos objetos

Para aplicar uma ACL predefinida a um objeto durante o carregamento do objeto:

Consola

Não pode aplicar uma LCA predefinida através da Google Cloud consola. Em alternativa, usegcloud storage.

Linha de comandos

Use o comando gcloud storage cp com a flag --predefined-acl:

gcloud storage cp OBJECT gs://BUCKET_NAME --predefined-acl=PREDEFINED_ACL

Por exemplo, para aplicar a LCA predefinida bucketOwnerRead ao carregar um objeto paris.jpg para um contentor example-travel-maps:

gcloud storage cp paris.jpg gs://example-travel-maps --predefined-acl=bucketOwnerRead

APIs REST

API JSON

Use o parâmetro de string de consulta predefinedAcl num pedido insert para aplicar a ACL predefinida.

Por exemplo, para aplicar a LCA predefinida bucketOwnerRead ao carregar um objeto paris.jpg para um contentor example-travel-maps:

curl -X POST --data-binary @paris.jpg -H "Content-Type: image/jpeg"
-H "Authorization: Bearer $(gcloud auth print-access-token)"
"https://storage.googleapis.com/upload/storage/v1/b/example-travel-maps/o?name=paris.jpg&predefinedAcl=bucketOwnerRead"

API XML

Use o cabeçalho x-goog-acl num pedido Put Object para aplicar a ACL predefinida.

Por exemplo, para aplicar a LCA predefinida bucket-owner-read ao carregar um objeto paris.jpg para um contentor example-travel-maps:

curl -X PUT --upload-file paris.jpg -H "x-goog-acl: bucket-owner-read"
-H "Authorization: Bearer $(gcloud auth print-access-token)"
https://storage.googleapis.com/example-travel-maps/paris.jpg

Em objetos ou contentores existentes

Também pode aplicar uma LCA predefinida a um objeto ou um contentor existente, o que é útil se quiser alterar de uma LCA predefinida para outra ou se quiser atualizar LCAs personalizadas para uma LCA predefinida.

Consola

Não pode aplicar uma LCA predefinida através da Google Cloud consola. Em alternativa, usegcloud storage.

Linha de comandos

Use o comando objects update com a flag --predefined-acl:

gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME --predefined-acl=PREDEFINED_ACL_NAME

Por exemplo, para aplicar a LCA predefinida private ao objetoparis.jpg no contentor example-travel-maps:

gcloud storage objects update gs://example-travel-maps/paris.jpg --predefined-acl=private

APIs REST

API JSON

Use o parâmetro de cadeia de consulta predefinedAcl e especifique uma propriedade aclvazia num pedido patch para aplicar a LCA predefinida.

Por exemplo, para aplicar a LCA predefinida private ao objetoparis.jpg no contentor example-travel-maps:

curl -X PATCH --data '{"acl": []}' -H "Content-Type: application/json"
-H "Authorization: Bearer $(gcloud auth print-access-token)"
https://storage.googleapis.com/storage/v1/b/example-travel-maps/o/paris.jpg?predefinedAcl=private

API XML

Use o cabeçalho x-goog-acl com o parâmetro da string de consulta acl num pedidoPut Object, mas não inclua um documento XML no seu pedido.

Por exemplo, para aplicar a LCA predefinida private ao objetoparis.jpg no contentor example-travel-maps:

curl -X PUT -H "Content-Length: 0"
-H "Authorization: Bearer $(gcloud auth print-access-token)"
-H "x-goog-acl: private"
https://storage.googleapis.com/example-travel-maps/paris.jpg?acl

Defina LCAs (Listas de controlo de acesso) de objetos predefinidas

Para evitar definir ACLs sempre que cria um novo objeto, pode definir uma ACL de objeto predefinida num contentor. Depois de o fazer, todos os novos objetos adicionados ao contentor que não tenham explicitamente uma ACL aplicada terão a ACL predefinida aplicada. Por exemplo, pode querer especificar que apenas um determinado grupo de utilizadores tem acesso à maioria dos objetos num determinado contentor. Pode alterar a ACL de objetos predefinida e, em seguida, adicionar objetos ao contentor. Estes objetos adicionados têm a ACL de objeto predefinida especificada automaticamente aplicada aos mesmos. No entanto, pode atribuir ACLs diferentes a objetos específicos, caso em que esses objetos não têm a ACL predefinida aplicada.

Para ver e alterar a LCA de objetos predefinida de um contentor:

Consola

Não pode definir ACLs de objetos predefinidas através da Google Cloud consola. Em alternativa, usegcloud storage.

Linha de comandos

  1. Use o comando buckets describe com a flag --format para obter a ACL de objeto predefinida para o contentor:
    gcloud storage buckets describe gs://BUCKET_NAME --format="default(default_acl)"
    Onde BUCKET_NAME é o nome do contentor cuja ACL de objeto predefinida quer ver. Por exemplo, my-bucket.
  2. Use o comando buckets update com a flag pretendida para modificar a ACL de objeto predefinida do contentor:
    gcloud storage buckets update gs://BUCKET_NAME FLAG
    Onde:
    • BUCKET_NAME é o nome do contentor cuja ACL de objeto predefinida quer modificar. Por exemplo,my-bucket.
    • FLAG é uma das seguintes opções:
      * --add-default-object-acl-grant e uma concessão que quer adicionar à LCA de objeto predefinida geral para o contentor.
      * --default-object-acl-file e o caminho para um ficheiro local que define uma nova ACL de objeto predefinida para o contentor.
      * --predefined-default-object-acl e o nome de uma LCA de objeto predefinida com a qual quer substituir a LCA de objeto predefinida existente para o contentor.
      * --remove-default-object-acl-grant e uma entidade que quer remover da ACL de objetos predefinida geral para o contentor.

Bibliotecas cliente

C++

Para mais informações, consulte adocumentaçã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 artigoConfigure a autenticação para bibliotecas de cliente.

O exemplo seguinte adiciona uma ACL de objeto predefinida a um contentor:

O exemplo seguinte elimina uma ACL de objeto predefinida de um contentor:

C#

Para mais informações, consulte adocumentaçã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 artigoConfigure a autenticação para bibliotecas de cliente.

O exemplo seguinte imprime a ACL de objeto predefinida para um contentor:

O exemplo seguinte adiciona uma ACL de objeto predefinida a um contentor:

O exemplo seguinte elimina uma ACL de objeto predefinida de um contentor:

Go

Para mais informações, consulte adocumentaçã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 artigoConfigure a autenticação para bibliotecas de cliente.

O exemplo seguinte adiciona uma ACL de objeto predefinida a um contentor:

O exemplo seguinte elimina uma ACL de objeto predefinida de um contentor:

Java

Para mais informações, consulte adocumentaçã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 artigoConfigure a autenticação para bibliotecas de cliente.

O exemplo seguinte adiciona uma ACL de objeto predefinida a um contentor:

O exemplo seguinte elimina uma ACL de objeto predefinida de um contentor:

Node.js

Para mais informações, consulte adocumentaçã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 artigoConfigure a autenticação para bibliotecas de cliente.

O exemplo seguinte adiciona uma ACL de objeto predefinida a um contentor:

O exemplo seguinte elimina uma ACL de objeto predefinida de um contentor:

PHP

Para mais informações, consulte adocumentaçã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 artigoConfigure a autenticação para bibliotecas de cliente.

O exemplo seguinte adiciona uma ACL de objeto predefinida a um contentor:

O exemplo seguinte elimina uma ACL de objeto predefinida de um contentor:

Python

Para mais informações, consulte adocumentaçã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 artigoConfigure a autenticação para bibliotecas de cliente.

O exemplo seguinte adiciona uma ACL de objeto predefinida a um contentor:

O exemplo seguinte elimina uma ACL de objeto predefinida de um contentor:

Ruby

Para mais informações, consulte adocumentaçã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 artigoConfigure a autenticação para bibliotecas de cliente.

O exemplo seguinte adiciona uma ACL de objeto predefinida a um contentor:

O exemplo seguinte elimina uma ACL de objeto predefinida de um contentor:

APIs REST

API JSON

  1. Obtenha a ACL de objeto predefinida com um pedido GET. Por exemplo:
    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?projection=full
  2. Use um pedido patch para substituir a ACL de objetos predefinida. Por exemplo, o pedido seguinte substitui a LCA de objeto predefinida pela LCA especificada em defacls.json para um contentor example-travel-maps:
    curl -X PATCH --data @defacls.json -H "Content-Type: application/json" -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    https://storage.googleapis.com/storage/v1/b/example-travel-maps
    Um exemplo de defacls.json:
    {
    "defaultObjectAcl": [
    {
    "email": "jeffersonloveshiking@gmail.com",
    "entity": "user-jeffersonloveshiking@gmail.com",
    "role": "READER"
    }
    ]
    }

API XML

  1. Obtenha a ACL de objeto predefinida com um pedido GET no âmbito do seu contentor e do parâmetro ?defaultObjectAcl. Por exemplo:
    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    https://storage.googleapis.com/BUCKET_NAME?defaultObjectAcl
  2. Use um pedido PUT com âmbito no seu contentor com o parâmetro ?defaultObjectAcl para substituir a LCA do objeto predefinida pela LCA especificada em acls.xml. Por exemplo:
    curl -X PUT --data-binary @acls.xml -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    http://storage.googleapis.com/BUCKET_NAME?defaultObjectAcl
    Um exemplo de acls.xml: `FULL_CONTROL` jeffersonloveshiking@gmail.com

A sintaxe das LCAs é abordada no artigo Definir LCAs. Também pode especificar uma ACL predefinida como a ACL de objeto predefinida.

Para definir a LCA de objetos predefinida de um contentor como uma LCA predefinida:

Consola

Não pode definir ACLs de objetos predefinidas através da Google Cloud consola. Em alternativa, usegcloud storage.

Linha de comandos

Use o comando buckets update com a flag--predefined-default-object-acl:

gcloud storage buckets update gs://BUCKET_NAME --predefined-default-object-acl=PREDEFINED_ACL

Onde:

APIs REST

API JSON

Use um pedido PUT e o parâmetro predefinedAcl.

Por exemplo:

curl -X PUT -H "Content-Length: 0" -H "Authorization: Bearer $(gcloud auth print-access-token)"
https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?predefinedAcl=private

API XML

Use um pedido PUT com âmbito no seu contentor com o parâmetro ?defaultObjectAcle o cabeçalho x-goog-acl.

Por exemplo:

curl -X PUT -H "x-goog-acl: project-private" -H "Content-Length: 0" -H "Authorization: Bearer $(gcloud auth print-access-token)"
http://storage.googleapis.com/BUCKET_NAME?defaultObjectAcl

LCAs de objetos predefinidas para contentores criados recentemente:

Os exemplos seguintes mostram as ACLs de objetos predefinidas que são aplicadas automaticamente aos contentores recém-criados quando não especifica as suas próprias ACLs de objetos predefinidas como parte do pedido. Para ver se as ACLs de objetos predefinidas do seu contentor foram alteradas, compare as ACLs de objetos predefinidas atuais do seu contentor com os exemplos abaixo.

Consola

Não pode trabalhar com ACLs de objetos predefinidas através da consola Google Cloud . Em alternativa, use gcloud storage.

Linha de comandos

No exemplo abaixo, o ID do projeto é "123412341234"; o seu ID do projeto será diferente.

defaultObjectAcl: – entity: project-owners-123412341234 etag: CAE= kind: storage#objectAccessControl projectTeam: projectNumber: '123412341234' team: owners role: OWNER – entity: project-editors-123412341234 etag: CAE= kind: storage#objectAccessControl projectTeam: projectNumber: '123412341234' team: editors role: OWNER – entity: project-viewers-123412341234 etag: CAE= kind: storage#objectAccessControl projectTeam: projectNumber: '123412341234' team: viewers role: READER

APIs REST

API JSON

No exemplo abaixo, o ID do projeto é "123412341234"; o seu ID do projeto será diferente.

"defaultObjectAcl": [ { "kind": "storage#objectAccessControl", "entity": "project-owners-123412341234", "role": "OWNER", "projectTeam": { "projectNumber": "123412341234", "team": "owners" } }, { "kind": "storage#objectAccessControl", "entity": "project-editors-123412341234", "role": "OWNER", "projectTeam": { "projectNumber": "123412341234", "team": "editors" } }, { "kind": "storage#objectAccessControl", "entity": "project-viewers-123412341234", "role": "READER", "projectTeam": { "projectNumber": "123412341234", "team": "viewers" } } ]

API XML

No exemplo abaixo, os IDs das funções do projeto começam por "00b4903a97..."; os seus IDs do projeto serão diferentes.

00b4903a9721... FULL_CONTROL 00b4903a9722... FULL_CONTROL 00b4903a9723... READ

Tenha em atenção que a LCA de objeto predefinida para um contentor recém-criado é equivalente à LCA projectPrivate predefinida.

A obter LCAs

Para obter a ACL de um recurso existente:

Consola

  1. Aceda ao navegador do Cloud Storage na Google Cloud consola.
    Aceda ao navegador do Cloud Storage
  2. Navegue para o objeto cuja ACL quer ver.
  3. Escolha Editar acesso no menu pendente do objeto.
    Deve ver uma caixa de diálogo de autorização com as autorizações do objeto.

Para saber como obter informações detalhadas sobre erros relativos a operações do Cloud Storage falhadas na Google Cloud consola, consulte a secçãoResolução de problemas.

Linha de comandos

  1. Use o comando objects describe com a flag --format para obter a ACL de um objeto:
    gcloud storage objects describe gs://BUCKET_NAME/OBJECT_NAME --format="default(acl)"
    Onde:
    • BUCKET_NAME é o nome do contentor que contém o objeto cuja ACL quer ver. Por exemplo,my-bucket.
    • OBJECT_NAME é o nome do objeto cuja ACL quer ver. Por exemplo, paris.jpg.

Bibliotecas cliente

C++

Para mais informações, consulte adocumentaçã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 artigoConfigure a autenticação para bibliotecas de cliente.

O exemplo seguinte obtém uma LCA de objeto:

C#

Para mais informações, consulte adocumentaçã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 artigoConfigure a autenticação para bibliotecas de cliente.

O exemplo seguinte obtém uma LCA de objeto:

Go

Para mais informações, consulte adocumentaçã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 artigoConfigure a autenticação para bibliotecas de cliente.

O exemplo seguinte obtém uma LCA de objeto:

Java

Para mais informações, consulte adocumentaçã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 artigoConfigure a autenticação para bibliotecas de cliente.

O exemplo seguinte obtém uma LCA de objeto:

Node.js

Para mais informações, consulte adocumentaçã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 artigoConfigure a autenticação para bibliotecas de cliente.

O exemplo seguinte obtém uma LCA de objeto:

PHP

Para mais informações, consulte adocumentaçã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 artigoConfigure a autenticação para bibliotecas de cliente.

O exemplo seguinte obtém uma LCA de objeto:

Python

Para mais informações, consulte adocumentaçã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 artigoConfigure a autenticação para bibliotecas de cliente.

O exemplo seguinte obtém uma LCA de objeto:

Ruby

Para mais informações, consulte adocumentaçã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 artigoConfigure a autenticação para bibliotecas de cliente.

O exemplo seguinte obtém uma LCA de objeto:

APIs REST

API JSON

  1. Certifique-se de que tem a autorização OWNER no objeto.
  2. Recupere a ACL do objeto com um pedido GET.
    A ACL do objeto é devolvida no formato JSON, anexada ao corpo da resposta.

Por exemplo, para devolver a LCA do objeto paris.jpg no contentor example-travel-maps:

curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)"
https://storage.googleapis.com/storage/v1/b/example-travel-maps/o/paris.jpg?projection=full

Deve ver uma resposta com o seguinte aspeto:

{ "kind": "storage#object", "id": "example-travel-maps/paris.jpg/1412805837131000", "selfLink": "https://www.googleapis.com/storage/v1/b/example-travel-maps/o/paris.jpg", "name": "paris.jpg", "bucket": "example-travel-maps", ... "acl": [ { ... "entity": "project-owners-867489160491", "role": "OWNER", "projectTeam": { "projectNumber": "867489160491", "team": "owners" }, ... }, { ... "entity": "user-jeffersonloveshiking@gmail.com", "role": "OWNER", "email": "jeffersonloveshiking@gmail.com", ... }, { ... "entity": "group-gs-announce@googlegroups.com", "role": "READER", "email": "gs-announce@googlegroups.com", ... } ], "owner": { "entity": "user-jeffersonloveshiking@gmail.com" }, ... }

Também pode usar o método GET do recurso objectAccessControls para devolver entradas individuais na ACL de um objeto.

API XML

  1. Certifique-se de que tem autorização FULL_CONTROL no contentor ou no objeto.
  2. Obtenha a ACL do contentor ou do objeto através do parâmetro da string de consulta acl num pedido GET Object.

As ACLs são descritas em XML, anexadas ao corpo da resposta.

Por exemplo, para devolver a LCA do objeto paris.jpg no contentor example-travel-maps:

curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)"
https://storage.googleapis.com/example-travel-maps/paris.jpg?acl

Deve ver uma resposta com o seguinte aspeto:

84fac329bceSAMPLE777d5d22b8SAMPLE77d85ac2SAMPLE2dfcf7c4adf34da46 Owner Name 84fac329bceSAMPLE777d5d22b8SAMPLE77d85ac2SAMPLE2dfcf7c4adf34da46 Name FULL_CONTROL jeffersonloveshiking@gmail.com Jefferson FULL_CONTROL gs-announce@googlegroups.com READ

Também pode usar o método JSON GET do recurso ObjectAccessControlspara devolver uma entrada de LCA específica.

O que se segue?

Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.

Última atualização 2025-12-15 UTC.