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 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 app. Com o IAP, é possível configurar o acesso ao aplicativo com base em grupos: um recurso pode ser acessível para funcionários e inacessível para prestadores de serviços ou acessível apenas para 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 está sujeito a controles de acesso refinados implementados pelo produto em uso, sem a necessidade de usar uma VPN. Quando um usuário tenta acessar um recurso protegido pelo IAP, o IAP executa verificações de autenticação e autorização.

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

Autenticação

As solicitações para os recursos do Google Cloud vêm do Cloud Run, do App Engine e 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 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 do 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 o IAP:

  • Conta do Google:os 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 de 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 podem proteger contra o acesso de código em execução na mesma VM que o aplicativo protegido pelo IAP. As regras de firewall podem proteger contra o acesso de outra VM, mas apenas se forem 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 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 com 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 for executado com 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. Como alternativa, se você 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 console doGoogle Cloud em que o recurso está, 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 do 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. Para conferir e gerenciar as credenciais do OAuth 2.0, use as APIs e os 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 para proteger o acesso à infraestrutura do Google Cloud.
  • Acesso contextual avançado Google Cloud aos usuários.
Máquinas virtuais (VMs)
  • Ativa 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 no Google Cloud e em outras nuvens.

  • Oferece autorização contínua para evitar o acesso não autorizado e a 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 proteção contra tráfego que não seja do 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, será possível 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 run.app ativado, use controles de entrada para bloquear o tráfego de fora da rede.

  • Atualize o app para usar cabeçalhos assinados ou a API Users do ambiente padrão do App Engine.

A seguir