Nesta página, você conhecerá os conceitos básicos do Identity-Aware Proxy (IAP), um serviço global do Google Cloud .
Com o IAP, é possível estabelecer uma camada de autorização central para aplicativos acessados por HTTPS. Assim, você tem a opção de adotar um modelo de controle de acesso no nível do aplicativo, em vez de confiar apenas nos firewalls da rede.
As políticas do IAP são escalonadas para toda a organização. É possível definir políticas de acesso de maneira central e aplicá-las a todos os aplicativos e recursos. Ao atribuir uma equipe dedicada para criar e aplicar políticas, você protege seu projeto contra a definição ou a implementação de políticas incorretas em qualquer aplicativo.
Quando usar o IAP
Use o IAP quando você quiser aplicar políticas de controle de acesso para aplicativos e recursos. O IAP funciona com cabeçalhos assinados ou com a API Users do ambiente padrão do App Engine para proteger seu aplicativo. Com o IAP, é possível configurar o acesso a aplicativos com base em grupos. Por exemplo, um recurso pode ser acessível para funcionários, mas não para colaboradores terceirizados, ou com acesso liberado apenas para a um departamento específico.
Como o IAP funciona
Quando um aplicativo ou recurso é protegido pelo IAP, ele só pode ser acessado por meio do proxy por principais, também conhecidos como usuários, que têm o papel correto do gerenciamento de identidade e acesso (IAM). Quando você concede a um usuário acesso a um aplicativo ou recurso pelo IAP, esse usuário estará sujeito a controles de acesso minuciosos implementados pelo produto em uso, sem a necessidade de usar uma rede privada virtual (VPN, na sigla em inglês). Quando um usuário tenta acessar um recurso protegido, o IAP realiza verificações de autenticação e autorização.
Autenticação
As solicitações para seus recursos do Google Cloud passam pelo Cloud Run, pelo App Engine e pelo Cloud Load Balancing (balanceamento de carga HTTP(S) externo e interno). O código da infraestrutura de exibição desses produtos verifica se o IAP está ativado no app ou serviço de back-end. Se o IAP estiver ativado, as informações sobre o recurso protegido serão enviadas ao servidor de autenticação do IAP. Isso inclui informações como o número do projeto Google Cloud , o URL da solicitação e qualquer credencial do IAP nos cabeçalhos ou cookies da solicitação.
Em seguida, o IAP verifica se o usuário fez login. Se o usuário não estiver conectado, o navegador será redirecionado para um dos seguintes métodos de login compatíveis com a IAP:
Conta do Google:seus usuários do Google Cloud com Contas do Google são redirecionados pelo fluxo de login da Conta do Google para acessar o Google Cloud.
Federação de identidade de colaboradores:seus Google Cloud usuários em um provedor de identidade externo são redirecionados pelo login do IdP para acessar Google Cloud.
Identity Platform:seus clientes que usam e-mail e senhas ou logins sociais, como Facebook, Apple e Google (Gmail), para acessar seu aplicativo.
Após a autenticação, o navegador do usuário armazena um token em um cookie para logins futuros.
Se as credenciais da solicitação forem válidas, o servidor de autenticação usará essas credenciais para conseguir a identidade do usuário (endereço de e-mail e ID do usuário). O servidor de autenticação usa a identidade para verificar o papel do IAM do usuário e verificar se ele está autorizado a acessar o recurso.
Se você estiver usando o Compute Engine ou o Google Kubernetes Engine, os usuários com acesso a porta de exibição do aplicativo na máquina virtual poderão ignorar a autenticação pelo IAP. As regras de firewall do Compute Engine e do GKE não protegem contra o acesso a partir da execução do código na mesma VM em que está o aplicativo protegido pelo IAP. No entanto, elas podem oferecer proteção contra o acesso por meio de outra VM, desde que estejam configuradas corretamente. Saiba mais sobre suas responsabilidades para garantir a segurança.
Se você estiver usando o Cloud Run, ative o IAP das seguintes maneiras:
- Diretamente nos serviços do Cloud Run. Isso permite que a IAP proteja todos os caminhos de entrada para o Cloud Run, incluindo o URL atribuído automaticamente e qualquer URL de balanceador de carga configurado. Essa configuração é útil quando você tem um único serviço do Cloud Run para ativar a IAP.
- Por um balanceador de carga com um back-end do Cloud Run. Essa configuração é útil quando você tem vários serviços do Cloud Run em regiões diferentes por trás de um único balanceador de carga global. Nessa configuração, o URL atribuído automaticamente não é protegido pela IAP e pode ser acessado diretamente. Saiba mais sobre suas responsabilidades para garantir a segurança.
Se um serviço do Cloud Run estiver por trás de um balanceador de carga, não ative o IAP no balanceador de carga e no serviço do Cloud Run.
Saiba mais sobre a federação de identidade de colaboradores. Saiba como configurar o IAP com a federação de identidade de colaboradores. Se preferir sincronizar as identidades externas com as próprias Contas do Google, use a Sincronização do Google Cloud Directory para sincronizar com seu IdP.
Autorização
Após a autenticação, o IAP aplica a política do IAM pertinente para verificar se o usuário está autorizado a acessar o recurso solicitado. Se o usuário tiver o papel Usuário do app da Web protegido pelo IAP no projeto do consoleGoogle Cloud em que o recurso existe, ele estará autorizado a acessar o aplicativo. Para gerenciar a lista de membros com o papel Usuário do app da Web protegido pelo IAP, use o painel do IAP no console do Google Cloud .
Quando você ativa o IAP em um recurso, ele cria automaticamente um ID e uma chave secreta de cliente do OAuth 2.0. Se você excluir as credenciais do OAuth 2.0 geradas automaticamente, o IAP não funcionará da maneira correta. Para ver e gerenciar as credenciais do OAuth 2.0, use as APIs e os serviços do console doGoogle Cloud .
Acesso baseado no contexto
Como parte da etapa de autorização, é possível usar o acesso baseado no contexto para fornecer acesso seguro aos seguintes tipos de recursos:
Console e APIs doGoogle Cloud
- Primeira camada de defesa na proteção do acesso à infraestrutura do Google Cloud.
- Acesso avançado Google Cloud baseado no contexto para usuários.
Máquinas virtuais (VMs)
- Permite o acesso administrativo SSH/RDP às VMs em Google Cloud e em outras nuvens.
- Permite implementar controles robustos baseados no contexto para restringir o acesso apenas a administradores designados.
Aplicativos da Web
- Fornece autorização e autenticação para aplicativos da Web hospedados em Google Cloud e outras nuvens.
- Fornece autorização contínua para evitar acesso não autorizado e perda de dados.
Suas responsabilidades
O IAP protege a autenticação e a autorização de todas as solicitações para o Cloud Run, o App Engine, o Cloud Load Balancing (HTTPS) e o balanceamento de carga HTTP interno.
Para garantir a segurança, é necessário tomar as seguintes precauções:
- Se você estiver ativando a IAP em um balanceador de carga, verifique se os
recursos de back-end podem ser acessados diretamente.
- Se o recurso de back-end for uma VM, configure as regras de firewall para proteger contra tráfego que não vem pelo balanceador de carga. O IAP não protege contra atividades dentro de um projeto, como outra VM dentro dele.
- Se o recurso de back-end for um serviço do Cloud Run, você poderá desativar o URL run.app para garantir que toda a entrada seja feita pelo balanceador de carga. Se você deixar o URL run.app ativado, use os controles de entrada para bloquear o tráfego de fora da sua rede.
- Atualize seu app para usar cabeçalhos assinados ou a API Users do ambiente padrão do App Engine (link em inglês).
A seguir
- Para começar a usar o IAP, conclua uma das seguintes
tarefas:
- Ative o IAP diretamente nos serviços do Cloud Run ou em um balanceador de carga com um back-end do Cloud Run.
- Conclua o guia de início rápido do App Engine para gerenciar o acesso com as Contas do Google.
- Ative o IAP para o Compute Engine.
- Ative o IAP para GKE.
- Ative a opção IAP para apps locais.
- Saiba mais:
- Como autenticar no Compute Engine
- Opções de autenticação de usuário do App Engine
- Como usar o OAuth 2.0 para acessar as APIs do Google
- Google Cloud Guia de autenticação
- Como configurar um balanceador de carga
- Como configurar um balanceador de carga com o Cloud Run (totalmente gerenciado)
- Como restringir a entrada no Cloud Run