Nesta página, descrevemos 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 de gerenciamento de identidade e acesso (IAM) correto. 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 pelo IAP, o IAP executa verificações de autenticação e autorização.
![Diagrama do caminho de solicitação para o App Engine ao usar o Cloud IAP](https://cloud.google.com/iap/images/iap-app.png?authuser=9&hl=pt)
![diagrama do caminho de solicitação para o Cloud Run ao usar o Cloud IAP](https://cloud.google.com/iap/images/iap-ingress-app.png?authuser=9&hl=pt)
![Diagrama do caminho de solicitação para o Compute Engine e o Kubernetes Engine ao usar o Cloud IAP](https://cloud.google.com/iap/images/iap-load-balancer.png?authuser=9&hl=pt)
![Diagrama do caminho de solicitação para o Compute Engine e o Kubernetes Engine ao usar o Cloud IAP](https://cloud.google.com/iap/images/iap-load-balancer.png?authuser=9&hl=pt)
![Diagrama do caminho de solicitação para um app local ao usar o Cloud IAP](https://cloud.google.com/iap/images/iap-on-prem.png?authuser=9&hl=pt)
Authentication
As solicitações aos seus recursos do Google Cloud vêm por meio do App Engine, do 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 para o aplicativo ou o serviço de back-end. Caso esteja, as informações sobre o recurso protegido são enviadas ao servidor de autenticação do IAP. Isso inclui informações como o número do projeto no Google Cloud, o URL da solicitação e qualquer credencial do IAP que esteja nos cabeçalhos ou cookies da solicitação.
Em seguida, o IAP verifica as credenciais do navegador do usuário. Se não houver nenhuma, o usuário será redirecionado para um fluxo de login da Conta do Google no OAuth 2.0, que armazena um token em um cookie do navegador para logins futuros. Se for necessário criar uma Conta do Google para usuários existentes, é possível usar o Google Cloud Directory Sync para sincronizar com o Active Directory ou o servidor LDAP.
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. As regras de firewall podem proteger contra o acesso de outra VM, mas somente se configuradas corretamente. Saiba mais sobre suas responsabilidades para garantir a segurança.
Se você estiver usando o Cloud Run, os usuários que podem acessar o URL atribuído automaticamente poderão ignorar a autenticação do IAP. Os controles de entrada podem restringir o acesso no uso do balanceamento de carga, mas somente se estiverem configurados corretamente. Saiba mais sobre suas responsabilidades para garantir a segurança.
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 console do Google Cloud em que o recurso existe, ele estará autorizado a acessar o aplicativo. Para gerenciar a lista de papéis do 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. É possível visualizar e gerenciar credenciais do OAuth 2.0 nos APIs e serviços do console do Google Cloud.
Suas responsabilidades
O IAP protege a autenticação e a autorização de todas as solicitações ao App Engine, ao Cloud Load Balancing (HTTPS) ou ao balanceamento de carga HTTP interno. O IAP não protege contra atividades em um projeto, como outra VM dentro dele.
Para garantir a segurança, é necessário tomar as seguintes precauções:
- Configure o firewall e o balanceador de carga para proteger contra o tráfego que não vem pela infraestrutura de exibição.
- Como alternativa, se você estiver usando o Cloud Run, será possível restringir o acesso usando controles de entrada.
- Use cabeçalhos assinados ou a API Users do ambiente padrão do App Engine.
A seguir
- Comece a usar o IAP concluindo uma das seguintes tarefas:
- Leia o guia de início rápido do App Engine sobre Gerenciar acesso com as Contas do Google.
- Ative o IAP para Compute Engine.
- Ative o IAP para GKE.
- Ative o IAP para apps locais.
- Saiba mais:
- Como autenticar no Compute Engine
- Opções de autenticação de usuários do App Engine
- Como usar o OAuth 2.0 para acessar as APIs do Google
- Guia de autenticação do Google Cloud
- 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