Visão geral do Identity-Aware Proxy

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 Identity and Access Management (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.

App Engine
Diagrama do caminho de solicitação para o App Engine ao usar o Cloud IAP
Cloud Run
diagrama do caminho de solicitação para o Cloud Run 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 vêm por meio do App Engine, do Cloud Load Balancing (Balanceamento de carga HTTP(S) externo e interno). O código de infraestrutura de exibição desses produtos verifica se o IAP está ativado para o app ou para 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 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, os usuários que podem acessar o URL atribuído automaticamente podem ignorar a autenticação do IAP. Os controles de entrada podem restringir o acesso ao uso do balanceamento de carga, mas apenas se 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 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 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 ver e gerenciar as credenciais do OAuth 2.0 nos serviços de APIs 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, o Cloud Load Balancing (HTTPS) ou o balanceamento de carga HTTP interno. O IAP não protege contra atividades em um projeto, como outra VM dentro do 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.
    • 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