Acesso uniforme no nível do bucket

Esta página aborda o acesso uniforme no nível do bucket, que permite controlar de maneira uniforme o acesso aos recursos do Cloud Storage. Quando ativadas em um bucket, somente as permissões do Cloud Identity and Access Management (Cloud IAM) no nível do bucket concedem acesso a esse bucket e aos objetos que ele contém. As listas de controle de acesso (ACLs) são desativadas, e o acesso concedido por elas é revogado. Para ver orientações sobre como usar esse recurso, consulte Uso de acesso uniforme no nível do bucket.

Visão geral

O Cloud Storage oferece dois sistemas para conceder aos usuários permissão de acesso aos seus buckets e objetos: Cloud Identity and Access Management (Cloud IAM) e Listas de controle de acesso (ACLs). Eles atuam em paralelo. Para que um usuário acesse um recurso do Cloud Storage, basta receber a permissão de um dos sistemas. O Cloud IAM é usado em todo o Google Cloud e permite que você conceda várias permissões nos níveis do bucket e do projeto. As ACLs são usadas somente pelo Cloud Storage e têm opções de permissão limitadas, mas permitem que você conceda permissões por objeto.

Para oferecer suporte a um sistema de permissões uniforme, o Cloud Storage tem acesso uniforme no nível do bucket. Ele desativa as ACLs de todos os recursos do Cloud Storage e, com isso, o acesso a eles precisa ser concedido exclusivamente pelo Cloud IAM. Depois de ativar o acesso uniforme no nível do bucket, você poderá reverter sua decisão por 90 dias.

É recomendável usar o acesso uniforme no nível do bucket?

Geralmente, é recomendável usar o acesso uniforme no nível do bucket, porque isso unifica e simplifica a forma como você concede acesso aos recursos do Cloud Storage.

Usar um acesso uniforme no nível do bucket também permite usar outros recursos de segurança do Google Cloud, como Registros de auditoria da nuvem , Compartilhamento restrito de domínio e Condições do Cloud IAM.

Talvez você não queira usar o acesso uniforme no nível do bucket e, em vez disso, manter ACLs refinadas se:

  • Você quer controlar o acesso a objetos específicos em um bucket por meio de ACLs legadas.

  • quiser que quem fez o upload de um objeto tenha controle total sobre ele, mas menos acesso a outros objetos no bucket.

Restrições

As seguintes restrições são aplicadas ao usar o acesso uniforme no nível do bucket:

  • Certos serviços do Google Cloud que fazem exportações para o Cloud Storage não exportam para buckets com o recurso "Acesso uniforme no nível do bucket" ativado. Entre eles estão:

    Cloud Logging, Cloud Audit Logging e Datastore.

  • Não é possível usar a API XML para visualizar ou definir permissões para buckets com recurso "Acesso uniforme no nível do bucket" ativado.

Comportamento com o recurso ativado

Ative o recurso "Acesso uniforme no nível do bucket" ao criar um novo bucket ou quando ativar explicitamente o recurso em um bucket existente.

Depois de ativado, um bucket tem o seguinte comportamento:

  • As solicitações para definir, ler ou modificar ACLs do bucket e do objeto falham com erros 400 Bad Request.

  • As solicitações da API JSON para receber uma projeção completa de metadados do bucket ou do objeto incluem uma ACL vazia como parte da resposta.

  • Os comandos gsutil cp -p, mv -p e rsync -p falham quando o recurso "Acesso uniforme no nível do bucket" é a origem ou o destino. Os comandos gsutil acl e defacl também falham.

  • A propriedade de objeto individual não existe mais. O acesso associado foi revogado e as solicitações de metadados do bucket e do objeto não contêm mais o campo owner.

  • Se você ativar o acesso uniforme no nível do bucket como parte da criação de um novo bucket, ele receberá automaticamente outros papéis do Cloud IAM .

    • Esse comportamento mantém as permissões dos objetos herdadas das ACLs de objeto padrão do bucket.

    • Se você ativar o acesso uniforme no nível do bucket em um bucket existente, deverá aplicar essas funções manualmente. Caso tenha alterado as ACLs de objeto padrão do bucket, é melhor aplicar um conjunto diferente de funções.

Comportamento se o recurso for revertido

Para que seja possível desativar o acesso uniforme no nível do bucket e voltar a usar ACLs, o Cloud Storage salva as ACLs existentes por 90 dias. Se você desativar o acesso uniforme no nível do bucket durante esse período:

  • os objetos recuperam as ACLs salvas;

  • todos os objetos adicionados ao bucket após o acesso uniforme no nível do bucket ter sido ativado recebem ACLs de acordo com as ACLs de objeto padrão usadas pelo bucket.

Considerações ao migrar um bucket atual

Ao ativar o recurso "Acesso uniforme no nível do bucket", é preciso garantir que os usuários e serviços que anteriormente dependiam de ACLs para acesso tenham suas permissões migradas para o Cloud IAM. Nesta seção, é possível ver a descrição de algumas etapas que precisam ser seguidas ao migrar um bucket para acesso uniforme no nível do bucket. Observe que, como as ACLs e o Cloud IAM são sincronizados quanto a permissões de bucket, as considerações se concentram especificamente no acesso a objetos no seu bucket, e não no acesso ao bucket.

Pense se uma permissão do IAM no nível do bucket superexpõe dados

Antes de atribuir os equivalentes do Cloud IAM às suas ACLs, pense no seguinte:

  • Uma permissão do Cloud IAM empregada no nível do bucket aplica-se a todos os objetos no bucket, enquanto as ACLs de objeto podem variar de acordo com o objeto.

Se você quiser aplicar um determinado acesso a alguns objetos, mas não a outros, é preciso agrupá-los em buckets separados. Cada agrupamento precisa conter objetos com as mesmas permissões.

Verifique o uso da ACL do objeto

Ao migrar para acesso uniforme no nível do bucket, é preciso verificar se os objetos no bucket estão sendo acessados por meio das ACLs aplicadas a eles. Para verificar isso, o Cloud Monitoring tem uma métrica que rastreia o uso da ACL. Se a métrica indicar que os usuários ou serviços dependem de ACLs para acessar os objetos, é necessário atribuir equivalentes de Cloud IAM ao bucket antes de ativar o recurso "Acesso uniforme no nível do bucket". Para ver um guia sobre como verificar o uso da ACL no Monitoring, consulte Verificar o uso da ACL.

Use essa métrica para determinar se a ativação do recurso "Acesso uniforme no nível do bucket" quebraria seu fluxo de trabalho:

Métrica Descrição
storage.googleapis.com/authz/acl_operations_count O número de operações de ACL que serão desativadas quando o recurso "Acesso uniforme no nível do bucket" estiver ativado ou dividido por tipo de operação e bucket de ACL.

Uma operação importante da ACL a ser examinada é OBJECT_ACCESS_REQUIRED_OBJECT_ACL:

  • Se esse número for zero, nenhuma ACL no nível do objeto foi necessária para acessar objetos nas últimas seis semanas. As políticas do Cloud IAM abrangem as permissões necessárias no nível do bucket ou do projeto.

  • Se esse número for maior que zero, alguma solicitação de acesso a objetos nas últimas seis semanas exigiu permissões de ACL de objeto. É necessário atribuir políticas do Cloud IAM equivalentes antes de ativar "Acesso uniforme no nível do bucket".

Para mais informações sobre as métricas do Monitoring, consulte Métricas, séries temporais e recursos.

Verifique a ACL de objeto padrão do bucket

Todos buckets têm uma ACL de objeto padrão associada. Essa ACL é aplicada aos novos objetos adicionados a um bucket, a menos que uma ACL seja explicitamente fornecida no momento em que o objeto é adicionado.

Antes de ativar o recurso "Acesso uniforme no nível do bucket", verifique a ACL de objeto padrão do seu bucket. Considere se você quer conceder as permissões associadas à ACL de objeto padrão depois de ativar o acesso uniforme no nível do bucket. Nesse caso, atribua equivalentes do Cloud IAM ao bucket.

Atribua equivalentes do Cloud IAM a ACLs de objeto

As ACLs de objeto podem conceder tipos de acesso que o Cloud IAM atualmente não permite. Para garantir que os usuários atuais não percam o acesso a objetos quando você ativar o recurso "Acesso uniforme no nível do bucket", use a tabela a seguir e atribua as funções apropriadas do Cloud IAM aos usuários afetados.

Permissão ACL de objeto Papel equivalente no Cloud IAM
READER Leitor de objeto legado do Storage (roles/storage.legacyObjectReader)
OWNER Proprietário de objeto legado do Storage (roles/storage.legacyObjectOwner)

Considerações ao usar as Condições do Cloud IAM

Para evitar conflitos entre as políticas do Cloud IAM e as ACLs de objeto, as condições do Cloud IAM só podem ser usadas em buckets com acesso uniforme no nível do bucket ativado. Veja o que isso quer dizer:

  • Para definir as Condições do Cloud IAM em um bucket, ative o acesso uniforme no nível do bucket nesse bucket.

  • Para desativar o acesso uniforme no nível do bucket em um bucket, primeiro remova todas condições do Cloud IAM da política desse bucket. Para mais informações sobre como visualizar e remover condições da política de um bucket, consulte Como usar as condições do Cloud IAM no bucket. O recurso "Acesso uniforme no nível do bucket" não poderá ser desativado se estiver habilitado em um bucket de 90 dias consecutivos.

A seguir