Visão geral do Identity-Aware Proxy

Esta página descreve os conceitos básicos do Identity-Aware Proxy (IAP), um serviço global. 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 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 Google Cloud são enviadas pelo Cloud Run, App Engine e 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 Google Cloud projeto, o URL da solicitação e todas as credenciais do IAP 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 apenas se estiverem configuradas corretamente. Saiba mais sobre suas responsabilidades para garantir a segurança.

Se você estiver usando o Cloud Run, poderá ativar o IAP das seguintes maneiras:

  • Diretamente nos seus 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 do 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 diferentes regiões por trás de um único balanceador de carga global. Nessa configuração, o URL atribuído automaticamente não é protegido pelo 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.

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 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 do Google Cloud.

Acesso baseado no contexto

Como parte da etapa de autorização, é possível usar o acesso com base no contexto para fornecer acesso seguro aos seguintes tipos de recursos:

Console do Google Cloud e APIs
  • Primeira camada de defesa para proteger o acesso à infraestrutura de Google Cloud.
  • Acesso Google Cloud avançado baseado no contexto aos usuários.
Máquinas virtuais (VMs)
  • Permite o acesso administrativo SSH/RDP a VMs em Google Cloud e em outras nuvens.
  • Permite implementar controles robustos com base no contexto para restringir o acesso apenas a administradores designados.
Aplicativos da Web
  • Fornece autorização e autenticação para aplicativos da Web hospedados no Google Cloud e em 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 o 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 do projeto.
    • Se o recurso de back-end for um serviço do Cloud Run, você poderá desativar o URL run.app para garantir que todas as entradas sejam feitas pelo balanceador de carga. Se você optar por deixar o URL 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