Restringir o acesso aos buckets do Google Cloud por nome de domínio

Restringir o acesso aos buckets do Google Cloud por nome de domínio

Quero hospedar arquivos que meus usuários carregam para meu aplicativo da web nos buckets do Google Cloud... o problema é que preciso ter as permissões abertas ao público porque também preciso recuperar os arquivos quando eles acessam determinadas páginas.

Obviamente, isso é um grande risco de segurança, porque mesmo se eu nomear os arquivos com um uid no caminho do arquivo (ou seja,..."attachments/user_id/some_other_id/individual_file_uid/NameOfFile"), um invasor poderia simplesmente navegar https://www.googleapis.com/storage/v1/b/my_bucket/o/attachmentse listaria todos os diretórios e arquivos que tenho naquele intervalo acessível ao público. Mas para incluir esses arquivos em meu aplicativo da web por meio de <img/>tags, não conheço outra maneira de restringir o acesso a esses arquivos sem atrapalhar o img src.

A única coisa que consegui fazer é restringir o GETting desses arquivos por nome de domínio individual. Ou seja... se meus aplicativos da web estiverem hospedados em application.example.com, eu restringiria os arquivos para serem acessíveis apenas por application.example.com. Encontrei algumas coisas aqui:https://cloud.google.com/resource-manager/docs/organization-policy/restricting-domainsmas acho que não se trata de restringir o acesso por nome de domínio, mas por domínio organizacional.

Então, acho que minha pergunta é realmente dupla:

  1. Estou olhando para isso errado? Existe uma maneira melhor de armazenar essas imagens com segurança e ao mesmo tempo acessíveis pelo meu aplicativo da web?
  2. Como posso restringir o acesso a esses arquivos por nome de domínio?

Responder1

Estou olhando para isso errado? Existe uma maneira melhor de armazenar essas imagens com segurança e ao mesmo tempo acessíveis pelo meu aplicativo da web?

Sim, você está vendo isso errado em relação ao link do documento fornecido.

Não é possível restringir ou conceder acesso ao Cloud Storage por nome de domínio DNS. Você pode tornar público um intervalo do Cloud Storage, usar URLs assinados para permitir o acesso, usar as APIs do Cloud SDK ou usar o controle de acesso baseado em identidade.

URLs assinados

Como posso restringir o acesso a esses arquivos por nome de domínio?

Você não pode. Este recurso não faz parte do Cloud Storage. Veja meus comentários anteriores para mais informações.

Sua única opção (considerando a segurança) é usar URLs assinados.

informação relacionada