Proteger apps do App Engine com o IAP

Esta página explica como implementar uma aplicação do ambiente padrão ou flexível do App Engine e protegê-la com o Identity-Aware Proxy (IAP). O início rápido inclui código de exemplo para uma app Web do ambiente padrão do App Engine que valida o nome de um utilizador com sessão iniciada.

Se planear publicar recursos a partir de uma rede de fornecimento de conteúdo (RFC), consulte o guia de práticas recomendadas para ver informações importantes.

Para proteger recursos que não estão no Google Cloud, consulte o artigo Proteger apps e recursos no local.

Antes de começar

Para ativar o CNA para o App Engine, precisa do seguinte:

  • Um Google Cloud projeto da consola com a faturação ativada.

Se ainda não tiver a instância do App Engine configurada, consulte o artigo Implementar o App Engine para ver um guia completo.

O IAP usa um cliente OAuth gerido pela Google para autenticar os utilizadores. Apenas os utilizadores na organização podem aceder à aplicação com IAP ativada. Se quiser permitir o acesso a utilizadores externos à sua organização, consulte o artigo Ative o IAP para aplicações externas.

Ativar CNA

Consola

O cliente OAuth gerido pela Google não está disponível quando ativa as CAs através da Google Cloud consola.

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.gserviceaccount.com
    • 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

Antes de configurar o projeto e as CAs, precisa de uma versão atualizada da CLI gcloud. Para ver instruções sobre como instalar a CLI gcloud, consulte o artigo Instale a CLI gcloud.

  1. Para autenticar, use a CLI do Google Cloud e execute o seguinte comando.
    gcloud auth login
  2. Clique no URL apresentado e inicie sessão.
  3. Depois de iniciar sessão, copie o código de validação apresentado e cole-o na linha de comandos.
  4. Execute o seguinte comando para especificar o projeto que contém as aplicações que quer proteger com o IAP.
    gcloud config set project PROJECT_ID
  5. Para ativar a IAP, execute o seguinte comando.
    gcloud iap web enable --resource-type=app-engine --versions=version
  6. Adicione os principais que devem ter a função de utilizador da app Web protegida pelo IAP ao projeto.
    gcloud projects add-iam-policy-binding PROJECT_ID \
           --member=PRINCIPAL_IDENTIFIER \
           --role=roles/iap.httpsResourceAccessor
    • Substitua PROJECT_ID pelo ID do seu projeto.
    • Substitua PRINCIPAL_IDENTIFIER pelos principais necessários. Pode ser um tipo de domínio, grupo, conta de serviço ou utilizador. Por exemplo, user:myemail@example.com.

Depois de ativar o IAP, pode usar a CLI gcloud 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.

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.

Teste a autenticação de utilizadores

  1. Aceda ao URL da app a partir de uma Conta Google que adicionou ao IAP com a função de utilizador da app Web protegida pelo IAP, conforme descrito acima. Deve ter acesso sem restrições à app.

  2. Use uma janela de navegação anónima no Chrome para aceder à app e iniciar sessão quando lhe for pedido. Se tentar aceder à app com uma conta que não esteja autorizada com a função Utilizador da app Web protegida pelo IAP, é apresentada uma mensagem a indicar que não tem acesso.

Passos seguintes