Como ativar o IAP para o App Engine

Esta página explica como proteger uma instância do App Engine com o Identity-Aware Proxy (IAP).

Antes de começar

Para ativar o IAP para o App Engine, faça o seguinte:

  1. Use um projeto do console Google Cloud com o faturamento ativado.

  2. Verifique se o projeto pertence a uma organização Google Cloud se você quiser usar o cliente OAuth padrão gerenciado pelo Google. Se você não tiver uma organização, crie uma. Para saber mais sobre os benefícios de usar um cliente OAuth personalizado, consulte Configurar clientes OAuth personalizados para o App Engine. O cliente OAuth gerenciado pelo Google só permite acesso a usuários internos.

  3. Configure sua instância do App Engine, se ainda não tiver feito isso. Para um tutorial completo, consulte Como implantar no App Engine.

Ativar o IAP

Console

Se o projeto não pertencer a uma organização, use credenciais OAuth personalizadas.

Ficheiro de inclusão dinâmico

Se não tiver configurado o ecrã de consentimento OAuth do seu projeto, é-lhe pedido que o faça. Para configurar o ecrã de consentimento OAuth, consulte o artigo Configurar o ecrã de consentimento OAuth.

Configurar o acesso à IAP

  1. Aceda à página Identity-Aware Proxy.
    Aceda à página Identity-Aware Proxy
  2. Selecione o projeto que quer proteger com o IAP.
  3. Selecione a caixa de verificação junto ao recurso ao qual quer conceder acesso.
  4. No painel do lado direito, clique em Adicionar diretor.
  5. Na caixa de diálogo Adicionar responsáveis apresentada, introduza os endereços de email dos grupos ou indivíduos que devem ter a função Utilizador da app Web protegida pelo IAP para o projeto.

    Os seguintes tipos de principais podem ter esta função:

    • Conta Google: user@gmail.com
    • Grupo Google: admins@googlegroups.com
    • Conta de serviço: server@example.
    • Domínio do Google Workspace: example.com

    Certifique-se de que adiciona uma Conta Google à qual tem acesso.

  6. Selecione Cloud IAP > Utilizador da app Web protegida pelo IAP na lista pendente Funções.
  7. Clique em Guardar.

Ativar o IAP

  1. Na página Identity-Aware Proxy, em APLICAÇÕES, encontre a aplicação à qual quer restringir o acesso. Para ativar a IAP para um recurso:
  2. Na janela Ativar IAP apresentada, clique em Ativar para confirmar que quer que o IAP proteja o seu recurso. Depois de ativar o IAP, este requer credenciais de início de sessão para todas as ligações ao seu equilibrador de carga. Apenas as contas com a função utilizador da app Web protegida pelo IAP no projeto têm acesso.

gcloud

在设置项目和 IAP 之前,您需要最新版本的 gcloud CLI。如需了解如何安装 gcloud CLI,请参阅安装 gcloud CLI。

  1. 如需进行身份验证,请使用 Google Cloud CLI 并运行以下命令。
    gcloud auth login
  2. 点击显示的网址并登录。
  3. 登录后,复制显示的验证码并将其粘贴到命令行中。
  4. 运行以下命令,指定包含您要使用 IAP 保护的应用的项目。
    gcloud config set project PROJECT_ID
  5. 如需启用 IAP,请运行以下命令。
    gcloud iap web enable --resource-type=app-engine --versions=version
  6. 向项目添加应具有“IAP-secured Web 应用 User”角色的主体。
    gcloud projects add-iam-policy-binding PROJECT_ID \
           --member=PRINCIPAL_IDENTIFIER \
           --role=roles/iap.httpsResourceAccessor
    • 将 PROJECT_ID 替换为您的项目 ID。
    • 将 PRINCIPAL_IDENTIFIER 替换为必需的主账号。可以是网域、群组、服务账号或用户类型。例如, user:myemail@example.com。

启用 IAP 后,您可以使用 gcloud CLI 通过 IAM 角色 roles/iap.httpsResourceAccessor 修改 IAP 访问权限政策。详细了解如何管理角色和权限。

API

  1. Execute o seguinte comando para preparar um ficheiro settings.json.

    cat << EOF > settings.json
    {
    "iap":
      {
        "enabled":true
      }
    }
    EOF
    

  2. Execute o seguinte comando para ativar a IAP.

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d @settings.json \
    "https://appengine.googleapis.com/v1/apps/PROJECT_ID?updateMask=iap"
    

Depois de ativar o IAP, pode usar a CLI do Google Cloud para modificar a política de acesso do IAP através da função do IAM roles/iap.httpsResourceAccessor. Saiba mais sobre a gestão de funções e autorizações.

É possível ativar a IAP em um serviço do App Engine no projeto. Para tornar alguns serviços publicamente acessíveis e exigir autenticação para outros, use diferentes níveis de acesso em todos os serviços. Para saber mais, consulte Gerenciar o acesso com o IAP. Para tornar os serviços acessíveis ao público, conceda o papel de usuário do app da Web protegido pelo IAP a allAuthenticatedUsers.

Testar a autenticação do usuário

  1. Depois que a função é concedida, os principais podem acessar o app fazendo a autenticação com o IAP. Acesse o URL do aplicativo com uma Conta do Google que recebeu o papel de usuário do app da Web protegido pelo IAP (roles/iap.httpsResourceAccessor).

  2. Para testar o acesso, abra uma janela anônima no Chrome, acesse o URL do aplicativo e faça login quando solicitado. Os usuários que recebem o papel de usuário do app da Web protegido pelo IAP (roles/iap.httpsResourceAccessor) e são autenticados podem acessar o app. Os usuários que não recebem o papel necessário ou não conseguem se autenticar não podem acessar o app.