Como ativar o IAP para o Cloud Run

Nesta página, explicamos como proteger um serviço do Cloud Run com o Identity-Aware Proxy (IAP).

Limitação conhecida

Uma limitação conhecida é que o IAM precisa ser configurado para conceder a allUsers o papel de invocador no serviço do Cloud Run. Você ainda pode bloquear o acesso no nível da rede para que todas as solicitações externas precisem ser autorizadas via IAP. Para mais informações, consulte Como configurar o Cloud Run para limitar o acesso. Essa limitação está sendo corrigida para que você possa conceder explicitamente o acesso do IAP específico do projeto ao serviço do Cloud Run.

Antes de começar

Para ativar o IAP para o Cloud Run, você precisa do seguinte:

Como ativar o IAP

Console

É necessário fazer isso na tela de consentimento do OAuth do seu projeto. Um endereço de e-mail e um nome de produto são necessários para a tela de permissão do OAuth.

  1. Acesse a tela de consentimento do OAuth.
  2. Em E-mail de suporte, selecione o endereço de e-mail que você quer exibir como um contato público. Ele precisa ser seu endereço de e-mail ou um Grupo do Google que você tenha.
  3. Digite o Nome do aplicativo que você quer exibir.
  4. Adicione detalhes opcionais.
  5. Clique em Save.

Para alterar informações na tela de consentimento do OAuth posteriormente, como o nome do produto ou o endereço de e-mail, repita as etapas anteriores para configurar a tela de consentimento.

Como configurar o acesso do IAP

  1. Acesse a página "Identity-Aware Proxy".
  2. Selecione o projeto que você quer proteger com o IAP.
  3. Em RECURSOS HTTPS, marque a caixa de seleção ao lado do serviço de back-end do balanceador de carga a que você quer adicionar membros.
  4. No painel lateral à direita, clique em Adicionar membro.
  5. Na caixa de diálogo Adicionar membros, insira as contas de grupos ou indivíduos que terão o papel Usuário do app da Web protegido pelo IAP no projeto. Os seguintes tipos de contas podem ser membros:

    • Conta do Google: user@gmail.com: pode ser uma conta do Google Workspace, como usuario@google.com ou outro domínio.
    • grupo do Google: admins@googlegroups.com
    • Conta de serviço: server@example.gserviceaccount.com
    • Domínio do Google Workspace: example.com
  6. Selecione Cloud IAP > IAP-secure Web App User na lista suspensa Papéis.

  7. Clique em Save.

Como ativar o IAP

  1. Na página Identity-Aware Proxy, em RECURSOS HTTPS, encontre o serviço de back-end do balanceador de carga a que você quer restringir o acesso. Para ativar o IAP em um recurso, alterne a chave para a posição "Ativado" ou "Desativado" na coluna. Para ativar o IAP:
  2. Na janela Ativar IAP que é exibida, clique em Ativar para confirmar que você quer proteger seu recurso com o IAP. Depois de ativar o IAP, ele precisará das credenciais de login para todas as conexões com o balanceador de carga. Somente contas com o papel usuário do app da Web protegido pelo IAP no projeto terão acesso.

gcloud

  1. Siga as instruções em Como criar clientes OAuth de maneira programática para IAP para configurar a tela de permissão OAuth e criar o cliente OAuth.
  2. Salve o ID e a chave secreta do cliente OAuth.
  3. Ative o IAP executando o comando com escopo global ou regional, dependendo se o serviço de back-end do balanceador de carga é global ou regional. Use o ID e a chave secreta do cliente OAuth da etapa anterior.

    Escopo global:

    gcloud compute backend-services update BACKEND_SERVICE_NAME --global --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET
    

    Escopo regional:

    gcloud compute backend-services update BACKEND_SERVICE_NAME --region REGION_NAME --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET
    
    Substitua:

    • BACKEND_SERVICE_NAME: o nome do serviço de back-end.
    • CLIENT_ID: o ID do cliente OAuth da etapa anterior.
    • CLIENT_SECRET: a chave secreta do cliente OAuth da etapa anterior.
    • REGION_NAME: a região em que você quer ativar o IAP.

Depois de ativar o IAP, use a CLI do Google Cloud para manipular uma política de acesso do IAP usando o papel Identity and Access Management roles/iap.httpsResourceAccessor. Para mais informações, consulte Como gerenciar papéis e permissões.

Como configurar o Cloud Run para limitar o acesso

Conclua as etapas a seguir para configurar o acesso ao serviço do Cloud Run.

  1. Configure o serviço do Cloud Run e defina a entrada como Balanceamento de carga interno e do Cloud. Consulte Como restringir a entrada do Cloud Run para mais detalhes.

    Nesta etapa, somente clientes internos e o balanceador de carga externo podem chamar o serviço do Cloud Run, e as solicitações diretas da Internet pública são bloqueadas.

  2. Para o serviço Cloud Run, conceda a allUsers o papel Invocador. Veja mais detalhes em Como permitir acesso público (não autenticado).

    Esta etapa é importante para garantir que a configuração do IAP funcione corretamente, já que ela configura o Cloud Run para não autenticar e autorizar solicitações por conta própria. Em vez disso, o IAP conclui a autenticação e a autorização.

Observe que essa configuração permite que todos os clientes considerados internos (por definição, em Restringir a entrada para o Cloud Run) acessem o serviço sem executar a autenticação. Todos os outros clientes que chegam por meio do balanceador de carga externo fazem a autenticação pelo IAP. Essa é uma limitação conhecida que será tratada no futuro.