Configurar o IAP para o Cloud Run

Nesta página, descrevemos como ativar o IAP diretamente em um serviço do Cloud Run e proteger o tráfego destinado a um serviço do Cloud Run fazendo o roteamento para o IAP para autenticação. Ao ativar o IAP diretamente no Cloud Run, é possível proteger o tráfego com um único clique de todos os caminhos de entrada, incluindo URLs run.app padrão e balanceadores de carga.

Ao integrar o IAP ao Cloud Run, é possível gerenciar o acesso de usuários ou grupos das seguintes maneiras:

  • Dentro da organização: configure o acesso para usuários que estão na mesma organização que seu serviço do Cloud Run.
  • Fora da organização: configure o acesso para usuários de organizações diferentes do seu serviço do Cloud Run.
  • Sem organização: configure o acesso em projetos que não fazem parte de nenhuma organização do Google.

Limitações conhecidas

  • Não é possível configurar a IAP no balanceador de carga e no serviço do Cloud Run.
  • O Cloud Run aplica as políticas do IAP antes de realizar verificações do IAM na conta de serviço do IAP. Como o IAP intercepta solicitações e substitui a identidade do autor da chamada original, serviços como o Pub/Sub, que dependem da própria autenticação, podem falhar.

Antes de começar

Funções exigidas

Para receber as permissões necessárias para ativar a IAP, peça ao administrador para conceder a você os seguintes papéis do IAM:

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.

Ativar o IAP no Cloud Run

Recomendamos que você ative o IAP diretamente no Cloud Run.

Ative a IAP no Cloud Run usando o console Google Cloud , a Google Cloud CLI ou o Terraform.

Console

Quando você ativa o IAP para o Cloud Run, ele exige permissões para invocar seu serviço do Cloud Run. Se você estiver ativando o IAP usando o console Google Cloud , essa permissão será concedida automaticamente ao atribuir o papel de invocador do Cloud Run (roles/run.invoker) ao agente de serviço do IAP.

Para ativar o IAP no Cloud Run:

  1. No console do Google Cloud , acesse a página Serviços do Cloud Run:

    Acessar o Cloud Run

  2. Se você estiver configurando um novo serviço, clique em Implantar contêiner, preencha a página inicial de configurações de serviço conforme necessário e selecione Exigir autenticação. Selecione Identity-Aware Proxy (IAP).

  3. Se você estiver modificando um serviço atual, clique nele, na guia Segurança e selecione Exigir autenticação. Selecione IAP.

  4. Opcional. Para conceder acesso aos usuários, siga as instruções para gerenciar o acesso de usuários ou grupos para a IAP. Se você tiver problemas ao configurar o acesso para usuários de fora da sua organização, consulte a seção Solução de problemas.

  5. Para salvar a configuração, clique em Salvar.

  6. Para criar ou implantar o serviço, clique em Criar ou Implantar.

gcloud

Para ativar o IAP diretamente do Cloud Run, adicione a flag --iap ao implantar o app e conceda permissão de invocador ao agente do serviço IAP:

  1. Implante o serviço do Cloud Run usando um dos seguintes comandos:

    Para um novo serviço:

    gcloud run deploy SERVICE_NAME \
      --region=REGION \
      --image=IMAGE_URL \
      --no-allow-unauthenticated \
      --iap

    Se você ativar a IAP pela primeira vez em um projeto sem uma organização, poderá ver o seguinte aviso:

    Deploying services with IAP enabled in a project without an organization
    may require initial setup via the Cloud Console. Please use the Cloud Run
    UI to enable IAP for the first time in the project.
    

    Esse aviso aparece porque não é possível criar clientes OAuth de forma programática. Recomendamos que você primeiro ative o IAP no Cloud Run diretamente do console Google Cloud ou configure um cliente OAuth personalizado e adicione usuários usando a CLI gcloud.

    Para um serviço atual:

    gcloud run services update SERVICE_NAME \
      --region=REGION \
      --iap

    Substitua:

    • SERVICE_NAME: o nome do seu serviço do Cloud Run;
    • REGION: o nome da sua região do Cloud Run. Por exemplo, europe-west1.
    • IMAGE_URL: uma referência à imagem de contêiner, por exemplo, us-docker.pkg.dev/cloudrun/container/hello:latest. Se você usa o Artifact Registry, o repositório REPO_NAME já precisará ter sido criado. O URL segue o formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .
    • PROJECT_NUMBER: o número do projeto do Google Cloud .
  2. Conceda permissão de invocador ao agente de serviço da IAP:

    gcloud run services add-iam-policy-binding SERVICE_NAME \
      --region=REGION \
      --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-iap.iam.gserviceaccount.com \
      --role=roles/run.invoker

    Substitua:

    • SERVICE_NAME: o nome do seu serviço do Cloud Run;
    • REGION: o nome da sua região do Cloud Run. Por exemplo, europe-west1.
    • PROJECT_NUMBER: o número do projeto do Google Cloud .
  3. Opcional. Para conceder acesso ao usuário, consulte Gerenciar o acesso de usuários ou grupos para o IAP.

  4. Para verificar se o serviço está configurado com a IAP ativada, execute o seguinte comando:

    gcloud run services describe SERVICE_NAME

    A saída precisa conter a seguinte string:

    Iap Enabled: true

O IAP agora está roteando todo o tráfego destinado ao serviço configurado do Cloud Run para o IAP para autenticação antes de passar para o contêiner.

Terraform

Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.

Para ativar o IAP usando o Terraform, atualize a definição de serviço e adicione uma vinculação de política do IAM para conceder permissão de invocador ao IAP.

  1. Adicione iap_enabled = true a um recurso google_cloud_run_v2_service na configuração do Terraform para ativar o IAP no serviço:

    resource "google_cloud_run_v2_service" "default" {
      name     = "cloudrun-iap-service"
      location = "europe-west1"
      ingress      = "INGRESS_TRAFFIC_ALL"
      iap_enabled  = true
    
      template {
        containers {
          image = "us-docker.pkg.dev/cloudrun/container/hello"
        }
      }
    }
    
  2. Adicione o seguinte para conceder o papel roles/run.invoker ao agente de serviço do IAP.

    resource "google_cloud_run_v2_service_iam_member" "iap_invoker" {
      project = google_cloud_run_v2_service.default.project
      location = google_cloud_run_v2_service.default.location
      name = google_cloud_run_v2_service.default.name
      role   = "roles/run.invoker"
      member = "serviceAccount:service-PROJECT_NUMBER@gcp-sa-iap.iam.gserviceaccount.com"
    }
    

    Substitua PROJECT_NUMBER pelo número do projeto.

  3. Opcional. Para recuperar os dados da política do IAM atual, adicione o seguinte a um recurso google_cloud_run_v2_service_iam_policy na configuração do Terraform.

    data "google_cloud_run_v2_service_iam_policy" "policy" {
      project = google_cloud_run_v2_service.default.project
      location = google_cloud_run_v2_service.default.location
      name = google_cloud_run_v2_service.default.name
    }
    

Gerenciar o acesso de usuários ou grupos

Por padrão, o IAP para Cloud Run usa um cliente OAuth gerenciado pelo Google que permite adicionar identidades na organização com um endereço de e-mail associado a um usuário. Também é possível gerenciar principais de fora da sua organização ou sem uma organização usando o console Google Cloud no IAP. Para isso, crie um cliente OAuth personalizado conforme descrito nas etapas a seguir.

Adicione ou remova o acesso da IAP a um serviço do Cloud Run usando o console, a CLI gcloud ou o Terraform. Google Cloud

Dentro da organização

Console

Para adicionar ou remover o acesso:

  1. No console Google Cloud , acesse a página do Cloud Run:

    Acessar o Cloud Run

  2. Clique no serviço que você quer modificar e em Segurança.

  3. Em IAP, clique em Editar política.

  4. Para adicionar acesso, insira o principal e, opcionalmente, o nível de acesso que você quer adicionar ou deixe o nível de acesso em branco.

  5. Para remover o acesso quando houver apenas um principal na política, clique no ícone Excluir política ao lado de Níveis de acesso.

  6. Para remover principais individuais de uma política, clique no ícone X ao lado do nome do principal que você quer remover.

  7. Para salvar a configuração do usuário, clique em Salvar.

gcloud

Para adicionar ou remover o acesso a um serviço do Cloud Run para usuários ou grupos individuais, execute um dos seguintes comandos:

  • Para conceder o acesso:

    gcloud iap web add-iam-policy-binding \
      --member=user:USER_EMAIL \
      --role=roles/iap.httpsResourceAccessor \
      --region=REGION \
      --resource-type=cloud-run \
      --service=SERVICE_NAME
  • Para remover o acesso:

    gcloud iap web remove-iam-policy-binding \
      --member=user:USER_EMAIL \
      --role=roles/iap.httpsResourceAccessor \
      --region=REGION \
      --resource-type=cloud-run \
      --service=SERVICE_NAME
  • Para ver o acesso de visualização:

    gcloud iap web get-iam-policy \
      --region=REGION \
      --resource-type=cloud-run \
      --service=SERVICE_NAME

Substitua:

  • USER_EMAIL: o endereço de e-mail do usuário.
  • REGION: o nome da sua região do Cloud Run;
  • SERVICE_NAME: o nome do seu serviço do Cloud Run;

Terraform

Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.

  • Para conceder acesso autorizado a uma lista de principais de segurança:

    Use o recurso google_iap_web_cloud_run_service_iam_binding para conceder um papel a uma lista autorizada de principais. Esse recurso garante que apenas os membros na lista recebam a função. Todos os outros principais que receberam a função são removidos.

    1. Adicione o seguinte a um recurso google_iap_web_cloud_run_service_iam_binding na configuração do Terraform.

      resource "google_iap_web_cloud_run_service_iam_binding" "binding" {
        project = "PROJECT_ID"
        location = "REGION"
        cloud_run_service_name = "SERVICE_NAME"
        role = "roles/iap.httpsResourceAccessor"
        members = [
          "PRINCIPAL_A", "PRINCIPAL_B"
        ]
      }
      

      Substitua:

      • PROJECT_ID: o nome do projeto.
      • REGION: a região Google Cloud , por exemplo, europe-west1.
      • SERVICE_NAME: o nome do seu serviço do Cloud Run;
      • PRINCIPAL: um identificador dos principais ou membros, que geralmente tem o seguinte formato: PRINCIPAL_TYPE:ID. Por exemplo, user:my-user@example.com. Para ver uma lista completa dos valores que PRINCIPAL pode ter, consulte a referência de vinculação de políticas.
  • Para conceder acesso a uma única entidade principal:

    Use o recurso google_iap_web_cloud_run_service_iam_member para conceder um papel a um único principal sem afetar outros principais que podem ter o mesmo papel.

    1. Adicione o seguinte a um recurso google_iap_web_cloud_run_service_iam_member na configuração do Terraform.

      resource "google_iap_web_cloud_run_service_iam_member" "member" {
        project = "PROJECT_ID"
        location = "REGION"
        cloud_run_service_name = "SERVICE_NAME"
        role = "roles/iap.httpsResourceAccessor"
        member = "PRINCIPAL"
      }
      

      Substitua:

      • PROJECT_ID: o nome do projeto.
      • REGION: a região Google Cloud , por exemplo, europe-west1.
      • SERVICE_NAME: o nome do seu serviço do Cloud Run;
      • PRINCIPAL: um identificador dos principais ou membros, que geralmente tem o seguinte formato: PRINCIPAL_TYPE:ID. Por exemplo, user:my-user@example.com. Para ver uma lista completa dos valores que PRINCIPAL pode ter, consulte a referência de vinculação de políticas.

Fora da organização

Console

  • Para adicionar usuários de fora da sua organização usando o IAP, conclua o seguinte processo de configuração única:

    1. No console Google Cloud , acesse a página do Cloud Run:

      Acessar o Cloud Run

    2. Clique no serviço que você quer modificar e em Segurança.

    3. Na página de detalhes de segurança do serviço do Cloud Run, em IAP, clique em Editar política.

    4. Clique em Configurar no IAP. Isso abre a página de configurações de recursos no IAP.

    5. Clique em Configurar tela de permissão para configurar a tela de permissão OAuth. No tipo de público-alvo, selecione Externo.

    6. Para uma configuração mais rápida, clique em Gerar credenciais automaticamente.

    7. Ou siga as instruções para criar um ID do cliente OAuth. Selecione OAuth personalizado e insira seu ID do cliente e chave secreta personalizados.

    8. Para salvar a configuração, clique em Salvar.

    Agora volte ao serviço do Cloud Run no Cloud Run para adicionar principais de fora da organização.

  • Para adicionar ou remover o acesso de usuários, siga estas etapas:

    1. No console Google Cloud , acesse a página do Cloud Run:

      Acessar o Cloud Run

    2. Clique no serviço que você quer modificar e em Segurança.

    3. Em IAP, clique em Editar política.

    4. Para adicionar acesso, insira o principal e, opcionalmente, o nível de acesso que você quer adicionar ou deixe o nível de acesso em branco.

    5. Para remover o acesso quando houver apenas um principal na política, clique no ícone Excluir política ao lado de Níveis de acesso.

    6. Para remover principais individuais de uma política, clique no ícone X ao lado do nome do principal que você quer remover.

    7. Para salvar a configuração do usuário, clique em Salvar.

gcloud

Antes de começar

Para adicionar ou remover o acesso a um serviço do Cloud Run para usuários ou grupos individuais, execute um dos seguintes comandos:

  • Para conceder o acesso:

    gcloud iap web add-iam-policy-binding \
      --member=user:USER_EMAIL \
      --role=roles/iap.httpsResourceAccessor \
      --region=REGION \
      --resource-type=cloud-run \
      --service=SERVICE_NAME
  • Para remover o acesso:

    gcloud iap web remove-iam-policy-binding \
      --member=user:USER_EMAIL \
      --role=roles/iap.httpsResourceAccessor \
      --region=REGION \
      --resource-type=cloud-run \
      --service=SERVICE_NAME
  • Para ver o acesso de visualização:

    gcloud iap web get-iam-policy \
      --region=REGION \
      --resource-type=cloud-run \
      --service=SERVICE_NAME

Substitua:

  • USER_EMAIL: o endereço de e-mail do usuário.
  • REGION: o nome da sua região do Cloud Run.
  • SERVICE_NAME: o nome do seu serviço do Cloud Run;

Terraform

Antes de começar

Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.

  • Para conceder acesso autorizado a uma lista de principais de segurança:

    Use o recurso google_iap_web_cloud_run_service_iam_binding para conceder um papel a uma lista autorizada de principais. Esse recurso garante que apenas os membros na lista recebam a função. Todos os outros principais que receberam a função são removidos.

    1. Adicione o seguinte a um recurso google_iap_web_cloud_run_service_iam_binding na configuração do Terraform.

      resource "google_iap_web_cloud_run_service_iam_binding" "binding" {
        project = "PROJECT_ID"
        location = "REGION"
        cloud_run_service_name = "SERVICE_NAME"
        role = "roles/iap.httpsResourceAccessor"
        members = [
          "PRINCIPAL_A", "PRINCIPAL_B"
        ]
      }
      

      Substitua:

      • PROJECT_ID: o nome do projeto.
      • REGION: a região Google Cloud , por exemplo, europe-west1.
      • SERVICE_NAME: o nome do seu serviço do Cloud Run;
      • PRINCIPAL: um identificador dos principais ou membros, que geralmente tem o seguinte formato: PRINCIPAL_TYPE:ID. Por exemplo, user:my-user@example.com. Para ver uma lista completa dos valores que PRINCIPAL pode ter, consulte a referência de vinculação de políticas.
  • Para conceder acesso a uma única entidade principal:

    Use o recurso google_iap_web_cloud_run_service_iam_member para conceder um papel a um único principal sem afetar outros principais que podem ter o mesmo papel.

    1. Adicione o seguinte a um recurso google_iap_web_cloud_run_service_iam_member na configuração do Terraform.

      resource "google_iap_web_cloud_run_service_iam_member" "member" {
        project = "PROJECT_ID"
        location = "REGION"
        cloud_run_service_name = "SERVICE_NAME"
        role = "roles/iap.httpsResourceAccessor"
        member = "PRINCIPAL"
      }
      

      Substitua:

      • PROJECT_ID: o nome do projeto.
      • REGION: a região Google Cloud , por exemplo, europe-west1.
      • SERVICE_NAME: o nome do seu serviço do Cloud Run;
      • PRINCIPAL: um identificador dos principais ou membros, que geralmente tem o seguinte formato: PRINCIPAL_TYPE:ID. Por exemplo, user:my-user@example.com. Para ver uma lista completa dos valores que PRINCIPAL pode ter, consulte a referência de vinculação de políticas.

Nenhuma organização

Console

Para adicionar ou remover o acesso:

  1. No console Google Cloud , acesse a página do Cloud Run:

    Acessar o Cloud Run

  2. Clique no serviço que você quer modificar e em Segurança.

  3. Em IAP, clique em Editar política.

  4. Para adicionar acesso, insira o principal e, opcionalmente, o nível de acesso que você quer adicionar ou deixe o nível de acesso em branco.

  5. Para remover o acesso quando houver apenas um principal na política, clique no ícone Excluir política ao lado de Níveis de acesso.

  6. Para remover principais individuais de uma política, clique no ícone X ao lado do nome do principal que você quer remover.

  7. Para salvar a configuração do usuário, clique em Salvar.

gcloud

Antes de começar

Para adicionar ou remover o acesso a um serviço do Cloud Run para usuários ou grupos individuais, execute um dos seguintes comandos:

  • Para conceder o acesso:

    gcloud iap web add-iam-policy-binding \
      --member=user:USER_EMAIL \
      --role=roles/iap.httpsResourceAccessor \
      --region=REGION \
      --resource-type=cloud-run \
      --service=SERVICE_NAME
  • Para remover o acesso:

    gcloud iap web remove-iam-policy-binding \
      --member=user:USER_EMAIL \
      --role=roles/iap.httpsResourceAccessor \
      --region=REGION \
      --resource-type=cloud-run \
      --service=SERVICE_NAME
  • Para ver o acesso de visualização:

    gcloud iap web get-iam-policy \
      --region=REGION \
      --resource-type=cloud-run \
      --service=SERVICE_NAME

Substitua:

  • USER_EMAIL: o endereço de e-mail do usuário.
  • REGION: o nome da sua região do Cloud Run.
  • SERVICE_NAME: o nome do seu serviço do Cloud Run;

Terraform

Antes de começar

Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.

  • Para conceder acesso autorizado a uma lista de principais de segurança:

    Use o recurso google_iap_web_cloud_run_service_iam_binding para conceder um papel a uma lista autorizada de principais. Esse recurso garante que apenas os membros na lista recebam a função. Todos os outros principais que receberam a função são removidos.

    1. Adicione o seguinte a um recurso google_iap_web_cloud_run_service_iam_binding na configuração do Terraform.

      resource "google_iap_web_cloud_run_service_iam_binding" "binding" {
        project = "PROJECT_ID"
        location = "REGION"
        cloud_run_service_name = "SERVICE_NAME"
        role = "roles/iap.httpsResourceAccessor"
        members = [
          "PRINCIPAL_A", "PRINCIPAL_B"
        ]
      }
      

      Substitua:

      • PROJECT_ID: o nome do projeto.
      • REGION: a região Google Cloud , por exemplo, europe-west1.
      • SERVICE_NAME: o nome do seu serviço do Cloud Run;
      • PRINCIPAL: um identificador dos principais ou membros, que geralmente tem o seguinte formato: PRINCIPAL_TYPE:ID. Por exemplo, user:my-user@example.com. Para ver uma lista completa dos valores que PRINCIPAL pode ter, consulte a referência de vinculação de políticas.
  • Para conceder acesso a uma única entidade principal:

    Use o recurso google_iap_web_cloud_run_service_iam_member para conceder um papel a um único principal sem afetar outros principais que podem ter o mesmo papel.

    1. Adicione o seguinte a um recurso google_iap_web_cloud_run_service_iam_member na configuração do Terraform.

      resource "google_iap_web_cloud_run_service_iam_member" "member" {
        project = "PROJECT_ID"
        location = "REGION"
        cloud_run_service_name = "SERVICE_NAME"
        role = "roles/iap.httpsResourceAccessor"
        member = "PRINCIPAL"
      }
      

      Substitua:

      • PROJECT_ID: o nome do projeto.
      • REGION: a região Google Cloud , por exemplo, europe-west1.
      • SERVICE_NAME: o nome do seu serviço do Cloud Run;
      • PRINCIPAL: um identificador dos principais ou membros, que geralmente tem o seguinte formato: PRINCIPAL_TYPE:ID. Por exemplo, user:my-user@example.com. Para ver uma lista completa dos valores que PRINCIPAL pode ter, consulte a referência de vinculação de políticas.

Desativar o IAP no Cloud Run

É possível desativar a IAP usando o console Google Cloud ou a CLI gcloud.

Console

Para desativar o IAP no Cloud Run, faça o seguinte:

  1. No console Google Cloud , acesse a página do Cloud Run:

    Acessar o Cloud Run

  2. Clique no serviço que você quer modificar.

  3. Clique em Segurança e desmarque IAP. Seu serviço é protegido pela política do IAM. No entanto, se você não estiver usando o IAM, torne seu serviço acessível ao público selecionando Permitir acesso público.

  4. Para salvar a configuração, clique em Salvar.

gcloud

Para desativar o IAP diretamente do Cloud Run, adicione a flag --no-iap ao implantar o app da seguinte maneira:

  1. Implante o serviço do Cloud Run usando um dos seguintes comandos:

    Para um novo serviço:

    gcloud run deploy SERVICE_NAME \
      --region=REGION \
      --image=IMAGE_URL \
      --no-iap

    Para um serviço atual:

    gcloud run services update SERVICE_NAME \
      --region=REGION \
      --no-iap

    Substitua:

    • SERVICE_NAME: o nome do seu serviço do Cloud Run;
    • REGION: o nome da sua região do Cloud Run.
    • IMAGE_URL: uma referência à imagem de contêiner, por exemplo, us-docker.pkg.dev/cloudrun/container/hello:latest. Se você usa o Artifact Registry, o repositório REPO_NAME já precisará ter sido criado. O URL segue o formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .
  2. Para verificar se o serviço não está mais configurado com o IAP ativado, execute o seguinte comando:

    gcloud run services describe SERVICE_NAME

    A saída não deve mais conter a seguinte string:

    Iap Enabled: true

O IAP não roteia mais todo o tráfego destinado ao serviço configurado do Cloud Run para o IAP para autenticação antes de passar para o contêiner.

Configurar um cliente OAuth personalizado

Recomendamos usar o console Google Cloud ao ativar o IAP pela primeira vez. Assim, você gera credenciais automaticamente e não precisa criar um cliente OAuth personalizado manualmente. Quando você ativa o IAP no Cloud Run diretamente do console Google Cloud , o IAP configura automaticamente o cliente OAuth personalizado para você no nível do projeto.

Se você estiver usando a CLI gcloud para gerenciar o acesso de usuários sem uma organização, ative o IAP no Cloud Run diretamente no console Google Cloud ou siga as etapas desta seção para criar manualmente um cliente OAuth personalizado.

Para cenários avançados, como personalizar a tela de permissão ou gerenciar clientes OAuth no nível da organização, siga estas etapas.

Configurar a marca

  1. No console Google Cloud , acesse a página Branding do OAuth:

    Acessar a página "Branding"

  2. Clique em Primeiros passos.

  3. Preencha o formulário Informações do app e clique em Próxima.

  4. Em Público, selecione Externo.

  5. Preencha o restante do formulário e clique em Criar.

Criar manualmente um cliente OAuth personalizado

  • Se esta for a primeira vez que você configura a plataforma de autenticação do Google:

    1. No console Google Cloud , acesse a página Clientes:

      Acesse "Clientes"

    2. Clique em Começar na página de visão geral da plataforma de autenticação do Google, se solicitado.

      1. Preencha os detalhes das informações do app e clique em Próxima.
      2. Selecione Externo para o tipo de público-alvo.
      3. Preencha as dados de contato, aceite os termos e clique em Criar.
      4. Clique em Criar cliente.
      5. Em Tipo de aplicativo, selecione Aplicativo da Web e preencha o nome do seu cliente OAuth.
      6. No campo URIs de redirecionamento autorizados, adicione o seguinte URI:
        https://iap.googleapis.com/v1/oauth/clientIds/CLIENT_ID:handleRedirect
        Substitua CLIENT_ID pelo ID do cliente OAuth.
      7. Clique em Criar.
      8. Anote o ID do cliente e a chave secreta e clique em OK.
  • Se você já configurou a plataforma de autenticação do Google:

    1. No console Google Cloud , acesse a página Clientes:

      Acesse "Clientes"

    2. Clique em Criar cliente.

    3. Em Tipo de aplicativo, selecione Aplicativo da Web e preencha o nome do seu cliente OAuth.

    4. Preencha os detalhes das informações do app.

    5. No campo URIs de redirecionamento autorizados, adicione o seguinte URI:

      https://iap.googleapis.com/v1/oauth/clientIds/CLIENT_ID:handleRedirect
      Substitua CLIENT_ID pelo ID do cliente OAuth.

    6. Clique em Criar.

    7. Anote o ID do cliente e a chave secreta e clique em OK.

Aplicar o cliente OAuth ao IAP

É possível aplicar o cliente OAuth no nível do projeto ou da organização.

  • No nível do projeto, siga estas etapas:

    1. Crie um arquivo chamado iap_settings.yaml e adicione o seguinte conteúdo:

      access_settings:
        oauth_settings:
          client_id: CLIENT_ID
          client_secret: CLIENT_SECRET
    2. Execute o comando gcloud iap settings set para aplicar o cliente OAuth no nível do projeto:

      gcloud iap settings set iap_settings.yaml --project=PROJECT_ID

    Substitua:

    • CLIENT_ID: o ID do cliente OAuth que você salvou na etapa anterior.
    • CLIENT_SECRET: o segredo que você salvou na etapa anterior.
    • PROJECT_ID: ID do projeto.
  • No nível da organização, siga estas etapas:

    1. Para aplicar o cliente OAuth no nível da organização, execute o comando gcloud iap settings set:

      gcloud iap settings set iap_settings.yaml --organization=ORGANIZATION_NUMBER

      Substitua:

      • CLIENT_ID: o ID do cliente OAuth que você salvou na etapa anterior.
      • CLIENT_SECRET: o segredo que você salvou na etapa anterior.
      • ORGANIZATION_NUMBER: o número da sua organização.

Solução de problemas

Na seção a seguir, descrevemos como solucionar problemas do IAP com o Cloud Run.

Erros de acesso fora da organização

Confira abaixo os erros que podem ocorrer ao configurar o acesso para usuários fora da sua organização.

Acesso de usuários de fora da organização: desativado

Para garantir que o acesso de fora da organização esteja desativado, recomendamos que você faça isso no nível do projeto. Os controles em outros níveis (serviço, pasta ou organização) podem aparecer desativados, mesmo que o acesso esteja disponível.

A marca está definida como interna.

O acesso fora da organização não é compatível quando a marca do cliente OAuth personalizado está definida como interna.

Para atualizar a configuração da marca para "externa" e ativar o acesso para principais fora da organização com o IAP, siga estas etapas:

  1. No console Google Cloud , acesse a página Público-alvo da plataforma de autenticação do Google:

    Acesse "Público".

  2. Em Tipo de usuário, clique em Tornar externo.

A falha do agente de serviço causa um erro de definição do IAM

Ativar o IAP em um novo projeto pela primeira vez pode causar o seguinte erro:

Setting IAM permissions failed

Isso ocorre porque o agente de serviço do Cloud Run falhou. Para resolver o problema, ative o IAP de novo ou defina a política do IAM manualmente.

A seguir