Prevenção de acesso público

Configuração

Nesta página, abordaremos a configuração do bucket de prevenção do acesso público e a restrição da política da organização de prevenção de acesso público relacionada. O uso da configuração ou restrição restringe as entidades, como usuários anônimos pela Internet, que podem receber acesso aos seus dados. Para ter uma visão geral das opções de controle de acesso, consulte Visão geral do controle de acesso.

Visão geral

A prevenção contra acesso público protege os buckets e objetos do Cloud Storage contra a exposição acidental ao público. Quando você aplica a prevenção de acesso público, ninguém pode tornar os dados em intervalos aplicáveis públicos por meio de políticas ou ACLs do IAM. Há duas maneiras de aplicar a prevenção do acesso público:

É melhor usar a prevenção de acesso público?

Use a prevenção do acesso público se você souber que seus dados nunca devem ser expostos na Internet pública. Para oferecer o máximo de segurança aos seus recursos, aplique a prevenção do acesso público no nível mais alto possível da sua organização.

Não use a prevenção de acesso público se precisar manter o bucket público para casos de uso como hospedagem de site estático. Para criar exceções para esses buckets em organizações que impõem a prevenção do acesso público, desative a prevenção do acesso público no projeto específico que contém o bucket.

Comportamento quando exigido

Recursos sujeitos à prevenção do acesso público têm o seguinte comportamento:

  • As solicitações para buckets e objetos autorizados usando allUsers e allAuthenticatedUsers falham com um código de status HTTP 401 ou 403.

  • As políticas e ACLs de IAM existentes que concedem acesso a allUsers e allAuthenticatedUsers permanecem em vigor, mas são substituídas por prevenção de acesso público.

  • As solicitações para criar buckets ou objetos com allUsers e allAuthenticatedUsers nas políticas ou ACLs de IAM falham, com a seguinte exceção:

    • Se um bucket tiver uma ACL padrão de objetos que contém allUsers, as solicitações para criar objetos nesse bucket serão bem-sucedidas. As ACLs desses objetos contêm allUsers, mas allUsers é substituído pela prevenção de acesso público.
  • As solicitações para adicionar allUsers e allAuthenticatedUsers a uma política do IAM ou ACL falham com 412 Precondition Failed.

Herança

Mesmo que um bucket não tenha a prevenção do acesso público aplicada explicitamente nas configurações, ele ainda pode herdar a prevenção de acesso público, que ocorre se a restrição da política da organização storage.publicAccessPrevention definido no projeto, na pasta ou na organização em que o bucket existe. Por isso, o estado do bucket só pode ser definido como enforced ou inherited.

  • Se os metadados de prevenção de acesso público de um bucket estiverem definidos como enforced, a prevenção do acesso público será aplicada ao bucket.

  • Se os metadados de prevenção de acesso público de um bucket estiverem definidos como inherited, a prevenção de acesso público será determinada pela restrição da política da organização storage.publicAccessPrevention:

    • Se storage.publicAccessPrevention estiver definido como True para o projeto que contém o bucket, a prevenção do acesso público será aplicada ao bucket.

    • Se storage.publicAccessPrevention for definido como False no projeto que contém o bucket, a prevenção do acesso público não será aplicada ao bucket.

    • Se storage.publicAccessPrevention não for definido para o projeto que contém o bucket, a prevenção do acesso público será determinada pelo valor storage.publicAccessPrevention definido pela pasta, se houver, que contenha o projeto. de dados.

      • Da mesma forma, se a pasta que contém o bucket também não definir um valor para storage.publicAccessPrevention, a prevenção do acesso público será determinada pelo valor storage.publicAccessPrevention definido pela organização que contém o projeto.

      • Se storage.publicAccessPrevention não estiver definido para nenhum recurso, a prevenção do acesso público não se aplicará ao bucket.

Comportamento se desativado

Quando a prevenção de acesso público não se aplica mais a um recurso, ocorre o seguinte:

  • As políticas e ACLs de IAM existentes que concedem acesso a allUsers e allAuthenticatedUsers entram em vigor e tornam os dados acessíveis ao público.

  • As solicitações para criar políticas ou ACLs do IAM que permitem acesso a allUsers e allAuthenticatedUsers são bem-sucedidas.

  • Um objeto criado sob a prevenção de acesso público sem ACLs públicas poderá se tornar público se tiver sido criado em um bucket com acesso público.

É possível desativar a prevenção de acesso público a um projeto, uma pasta ou uma organização a qualquer momento. Os buckets com uma configuração enforced continuam a aplicar a prevenção do acesso público, mesmo se você desativá-la em um projeto, pasta ou organização que contenha o bucket.

Considerações

  • Quando você aplica a prevenção de acesso público em recursos atuais, todas as autorizações e novas adições de allUsers e allAuthenticatedUsers são bloqueadas. Isso pode afetar seus buckets das seguintes maneiras:

    • Se um aplicativo depender de allUsers e allAuthenticatedUsers acessar seus dados ou criar recursos públicos, a ativação da prevenção de acesso público poderá corromper o aplicativo.

    • Os registros de auditoria do Cloud não rastreiam o acesso a objetos públicos. Se os registros de acesso a dados forem ativados quando você aplicar a prevenção de acesso público, talvez você veja um aumento na geração de registros, que são contabilizados na cota de processamento de registros e podem gerar cobranças do Cloud Audit Logs. Esse aumento pode ocorrer porque o acesso que era público e não registrado pode se associar a autorizações específicas, que é registrada.

  • Os URLs assinados, que dão acesso limitado por tempo limitado a qualquer pessoa que os utiliza, não são afetados pela prevenção do acesso público.

  • Projetos não associados a uma organização não podem usar políticas da organização. Os buckets nesse projeto devem usar a configuração no nível do bucket.

  • A prevenção do acesso público é fortemente consistente para a leitura após a atualização, mas a aplicação pode levar até 10 minutos para entrar em vigor.

  • Após o início da aplicação, seus objetos ainda poderão ser acessados pelo público por meio de um cache da Internet por um determinado período, dependendo da configuração Cache-Control dos objetos. Por exemplo, se a Cache-Control:max-age de um objeto for definida como o padrão de 3.600 segundos, o objeto poderá persistir em um cache da Internet por esse período.

A seguir