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 pelo proxy por principais, também conhecidos como usuários, que têm o papel do 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.
Autenticação
As solicitações aos seus recursos do Google Cloud chegam pelo Cloud Run, App Engine e Cloud Load Balancing (balanceamento de carga HTTP(S) externo e interno). O código da infraestrutura de disponibilização desses produtos verifica se o IAP está ativado para o 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 as credenciais do IAP nos cabeçalhos da solicitação ou em cookies.
Em seguida, o IAP verifica se o usuário fez login. Se o usuário não estiver conectado, o navegador dele 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 usuários do Google Cloud em um provedor de identidade externo são redirecionados pelo login do IdP para acessar o Google Cloud.
Identity Platform:seus clientes que usam e-mail e senhas ou logins em redes 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. As regras de firewall podem proteger contra o acesso de outra VM, mas apenas se estiverem configuradas corretamente. Saiba mais sobre suas responsabilidades para garantir a segurança.
Se você estiver usando o Cloud Run, é possível ativar o IAP das seguintes maneiras:
- Diretamente nos serviços do Cloud Run. Isso permite que o 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 o 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 quiser sincronizar suas identidades externas com as próprias Contas do Google, use o Google Cloud Directory Sync 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 de Usuário do web app com proteção do IAP no projeto do consoleGoogle Cloud em que o recurso existe, ele terá autorização para acessar o aplicativo. Para gerenciar a lista de papéis de Usuário do web app com proteção do IAP, use o painel do IAP no console Google Cloud .
Quando você ativa o IAP para um recurso, ele cria automaticamente um ID do cliente e uma chave secreta 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 conferir e gerenciar as credenciais do OAuth 2.0 nas APIs e 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
- Oferece 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 o 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 passa pelo balanceador de carga. O IAP não protege contra atividades dentro de um projeto, como outra VM dentro do projeto.
- Se o recurso de back-end for um serviço do Cloud Run, você poderá desativar o URL do aplicativo run.app para garantir que toda a entrada seja feita pelo balanceador de carga. Se você optar por deixar o URL do aplicativo run.app ativado, use os controles de entrada para bloquear o tráfego de fora da sua rede.
- Atualize o app para usar cabeçalhos assinados ou a API Users do ambiente padrão do App Engine.
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 Compute Engine.
- Ative a 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
- Google Cloud Guia de autenticação
- Como configurar um balanceador de carga
- Configurar um balanceador de carga com o Cloud Run (totalmente gerenciado)
- Como restringir a entrada no Cloud Run