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:
É possível aplicar a prevenção de acesso público em intervalos individuais.
Se o bucket estiver dentro de uma organização, será possível aplicar a prevenção do acesso público usando a restrição da política da organização
storage.publicAccessPrevention
no nível do projeto, da pasta ou da organização.
É 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
eallAuthenticatedUsers
falham com um código de status HTTP401
ou403
.As políticas e ACLs de IAM existentes que concedem acesso a
allUsers
eallAuthenticatedUsers
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
eallAuthenticatedUsers
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êmallUsers
, masallUsers
é substituído pela prevenção de acesso público.
- Se um bucket tiver uma ACL padrão de objetos que contém
As solicitações para adicionar
allUsers
eallAuthenticatedUsers
a uma política do IAM ou ACL falham com412 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çãostorage.publicAccessPrevention
:Se
storage.publicAccessPrevention
estiver definido comoTrue
para o projeto que contém o bucket, a prevenção do acesso público será aplicada ao bucket.Se
storage.publicAccessPrevention
for definido comoFalse
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 valorstorage.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 valorstorage.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
eallAuthenticatedUsers
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
eallAuthenticatedUsers
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
eallAuthenticatedUsers
são bloqueadas. Isso pode afetar seus buckets das seguintes maneiras:Se um aplicativo depender de
allUsers
eallAuthenticatedUsers
acessar seus dados ou criar recursos públicos, a ativação da prevenção de acesso público poderá corromper o aplicativo. Para informações sobre como identificar os recursos públicos de que outros aplicativos podem depender, expanda o conteúdo a seguir:Como identificar recursos públicos
Antes de aplicar a prevenção de acesso público, recomendamos que você faça um inventário dos seus recursos públicos para não interromper outras cargas de trabalho que dependem dos seus dados serem públicos. É possível localizar buckets, objetos e pastas gerenciadas que são públicos usando os seguintes métodos:
- Para ajudar a identificar cargas de trabalho que podem estar acessando seus dados públicos, configure registros de uso, que podem fornecer informações sobre solicitações de acesso a dados feitas a recursos públicos.
-
Para determinar se um bucket pode ser acessado pelo público, verifique as políticas do IAM do bucket. As políticas que concedem papéis ao principal
allUsers
ouallAuthenticatedUsers
tornam o bucket potencialmente acessível ao público. Como alternativa para acessar a política do IAM para buckets individuais, use o Inventário de recursos do Cloud para visualizar as políticas de todos os buckets em um projeto, pasta ou organização.Se houver pastas gerenciadas no bucket, também é possível verificar as políticas do IAM das pastas gerenciadas para identificar quais pastas gerenciadas podem ser acessadas pelo público.
- Para determinar se objetos individuais podem ser acessados pelo público,
verifique se o objeto tem ACLs.
As ACLs que concedem acesso ao principal
allUsers
ouallAuthenticatedUsers
tornam o objeto potencialmente acessível ao público.
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 aCache-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
- Saiba como usar a prevenção do acesso público.
- Leia mais sobre as políticas da organização.