Como restringir acesso a aplicação web (gcloud run deploy) a determinados emails? i.e. usuários autenticados (browser).
Como restringir acesso a aplicação web (gcloud run deploy) a determinados emails? i.e. usuários autenticados (browser).
Olá!
Excelente pergunta. A sua dúvida é muito relevante para a segurança de aplicações no Cloud Run. É algo que não se faz diretamente no comando gcloud run deploy, mas sim usando o sistema de controle de acesso do Google Cloud, o IAM (Identity and Access Management).
Para restringir o acesso a determinados e-mails em uma aplicação do Cloud Run, você precisa seguir este fluxo:
Configurar a autenticação da aplicação:
A sua aplicação precisa ser configurada para receber requisições com um token de autenticação, como um ID token do Google. A aplicação então valida esse token para garantir que a requisição veio de um usuário autenticado.
Gerenciar permissões no IAM:
A parte de "restringir a determinados e-mails" é feita diretamente no IAM. O Cloud Run usa o IAM para controlar quem pode invocar (invoke) a sua aplicação.
No console do Google Cloud, navegue até a página do Cloud Run.
Selecione o serviço que você quer restringir.
Vá até a aba Permissões ou Membros (depende da versão do console).
Clique em Adicionar (ou Adicionar Membro).
Adicione os e-mails dos usuários que você quer dar acesso.
Atribua a eles o papel de Invocador do Cloud Run (roles/run.invoker).
Muito importante: Remova a permissão de allUsers ou allAuthenticatedUsers, caso ela exista. Isso torna a aplicação pública.
Depois de fazer isso, apenas os e-mails que você adicionou no IAM com o papel de Invocador do Cloud Run terão permissão para acessar a sua URL do serviço. O Google Cloud fará a autenticação do usuário e, se o e-mail não tiver a permissão, a requisição será negada antes mesmo de chegar à sua aplicação.
Se você precisa de um nível de granularidade ainda maior, você pode usar o IAP (Identity-Aware Proxy). O IAP é um serviço que funciona como um gateway de autenticação para as suas aplicações, permitindo que você restrinja o acesso a um grupo de e-mails, um domínio, ou até mesmo um grupo de segurança.
A solução mais simples para o seu caso é usar o IAM, como eu descrevi acima.
Espero que essa explicação ajude a resolver a sua dúvida!
Prezado João
Primeiramente, agradeço bastante dedicar tempo para com detalhes úteis compartilhar essa abordagem.
Valeu.
A seguir, breve resumo.
outro aspecto ainda
IAP