Visão geral do Identity-Aware Proxy

Nesta página, você conhecerá os conceitos básicos do Identity-Aware Proxy (IAP).

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 membros, 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.

App Engine
Diagrama do caminho de solicitação para o App Engine ao usar o Cloud IAP
Compute Engine
Diagrama do caminho de solicitação para o Compute Engine e o Kubernetes Engine ao usar o Cloud IAP
GKE
Diagrama do caminho de solicitação para o Compute Engine e o Kubernetes Engine ao usar o Cloud IAP
Localmente
Diagrama do caminho de solicitação para um app local ao usar o Cloud IAP

Autenticação

As solicitações para seus recursos do Google Cloud passam pelo App Engine ou pelo Cloud Load Balancing (HTTPS). O código da infraestrutura de exibição desses produtos verifica se o IAP está ativado no app ou 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. 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.

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 Cloud em que está o recurso, ele está 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 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 do Cloud.

Suas responsabilidades

O IAP protege a autenticação e a autorização de todas as solicitações para o App Engine ou para o Cloud Load Balancing HTTP(S). No entanto, ele não protege contra atividades internas, como o uso de outra VM dentro do mesmo projeto.

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.
  • Use cabeçalhos assinados ou a API Users do ambiente padrão do App Engine.

A seguir