Ative o IAP para o Compute Engine

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

Antes de começar

Para ativar o IAP para o Compute Engine, precisa do seguinte:

Se ainda não tiver a instância do Compute Engine configurada, consulte o artigo Configurar o IAP para o Compute 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 a funcionalidade de IAP. Se quiser permitir o acesso a utilizadores externos à sua organização, consulte o artigo Ative o IAP para aplicações externas.

Pode ativar o IAP num serviço de back-end do Compute Engine ou numa regra de encaminhamento do Compute Engine. Quando ativa o IAP num serviço de back-end do Compute Engine, apenas esse serviço de back-end está protegido pelo IAP. Quando ativa o IAP numa regra de encaminhamento do Compute Engine, todas as instâncias do Compute Engine por detrás da regra de encaminhamento são protegidas pelo IAP.

Ative o IAP numa regra de encaminhamento

Pode ativar a IAP numa regra de encaminhamento através da framework de políticas de autorização do balanceador de carga.

gcloud

  1. Execute o seguinte comando para preparar um ficheiro policy.yaml. A política permite que os clientes com um intervalo de endereços IP de 10.0.0.1/24 ativem o IAP numa regra de encaminhamento.
$ cat << EOF > policy.yaml
action: CUSTOM
description: authz policy with Cloud IAP
name: AUTHZ_POLICY_NAME
httpRules:
  - from:
      sources:
      - ipBlocks:
        - prefix: "10.0.0.1"
          length: 24
customProvider:
  cloudIap: {}
target:
  loadBalancingScheme: EXTERNAL_MANAGED
  resources:
  - https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/LOCATION/forwardingRules/FORWARDING_RULE_ID
EOF
  1. Execute o seguinte comando para ativar o IAP numa regra de encaminhamento.
gcloud beta network-security authz-policies import AUTHZ_POLICY_NAME \
--source=policy.yaml \
--location=LOCATION \
--project=PROJECT_ID

Substitua o seguinte:

  • PROJECT_ID: O Google Cloud ID do projeto.
  • LOCATION: a região onde o recurso está localizado.
  • FORWARDING_RULE_ID: o ID do recurso da regra de encaminhamento.
  • AUTHZ_POLICY_NAME: o nome da política de autorização.

API

  1. Execute o seguinte comando para preparar um ficheiro policy.json.
    cat << EOF > policy.json
    {
    "name": "AUTHZ_POLICY_NAME",
    "target": {
      "loadBalancingScheme": "INTERNAL_MANAGED",
      "resources": [
        "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/LOCATION/forwardingRules/FORWARDING_RULE_ID"
      ],
    },
    "action": "CUSTOM",
    "httpRules": [
      {
        "from": {
          "sources": {
            "ipBlocks": [
              {
                "prefix": "10.0.0.1",
                "length": 24
              }
            ]
          }
        }
      }
    ],
    "customProvider": {
      "cloudIap": {}
    }
    }
    EOF
    
  2. Execute o seguinte comando para ativar o IAP numa regra de encaminhamento.

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d @policy.json \
    "https://networksecurity.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/authzPolicies"
    

    Substitua o seguinte:

    • PROJECT_ID: O Google Cloud ID do projeto.
    • LOCATION: a região onde o recurso está localizado.
    • FORWARDING_RULE_ID: o ID do recurso da regra de encaminhamento.
    • AUTHZ_POLICY_NAME: o nome da política de autorização.

Depois de ativar a IAP numa regra de encaminhamento, pode aplicar autorizações a recursos.

Ative o IAP num serviço de back-end do Compute Engine

Pode ativar a IAP num serviço de back-end do Compute Engine através desse serviço de back-end.

consola

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

Se você ainda não tiver configurado a tela de consentimento do OAuth do seu projeto, precisará fazer isso. Para configurar a tela de consentimento do OAuth, consulte Como configurar a tela de consentimento do OAuth.

Se você estiver executando clusters do GKE na versão 1.24 ou mais recente, será possível configurar o IAP e o GKE usando a API Kubernetes Gateway. Para fazer isso, siga as etapas abaixo e depois as instruções em Configurar o IAP. Não configure BackendConfig.

Como configurar o acesso do IAP

  1. Acesse a página Identity-Aware Proxy.
    Acessar a página "Identity-Aware Proxy"
  2. Selecione o projeto que você quer proteger com o IAP.
  3. Marque a caixa de seleção ao lado do recurso que você quer conceder acesso.

    Se você não encontrar um recurso, verifique se ele foi criado e se o controlador de entrada do Compute Engine BackendConfig foi sincronizado.

    Para verificar se o serviço de back-end está disponível, execute o seguinte comando gcloud:

    gcloud compute backend-services list
  4. No painel à direita, clique em Adicionar principal.
  5. Na caixa de diálogo Adicionar membros que é exibida, insira os endereços de e-mail 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 administradores podem ter esse papel:

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

    Inclua uma Conta do Google a que você tenha acesso.

  6. Selecione Cloud IAP > Usuário do app da Web protegido pelo IAP na lista suspensa Papéis.
  7. Clique em Salvar.

Como ativar o IAP

  1. Na página Identity-Aware Proxy, em APLICATIVOS, encontre o balanceador de carga que exibe o instance group a que você quer restringir o acesso. Para ativar o IAP para um recurso,
    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 disso, será necessário usar credenciais de login para todas as conexões com o balanceador de carga. O acesso será concedido apenas às contas com o papel usuário do app da Web protegido pelo IAP no projeto.

gcloud

Before you set up your project and IAP, you need an up-to-date version of the gcloud CLI. For instructions on how to install the gcloud CLI, see Install the gcloud CLI.

  1. To authenticate, use the Google Cloud CLI and run the following command.
    gcloud auth login
  2. To sign in, follow the URL that appears.
  3. After you sign in, copy the verification code that appears and paste it in the command line.
  4. Run the following command to specify the project that contains the resource that you want to protect with IAP.
    gcloud config set project PROJECT_ID
  5. To enable IAP, run either the globally or regionally scoped command.

    Global scope
    gcloud compute backend-services update BACKEND_SERVICE_NAME --global --iap=enabled
    Regional scope
    gcloud compute backend-services update BACKEND_SERVICE_NAME --region REGION_NAME --iap=enabled

After you enable IAP, you can use the gcloud CLI to modify the IAP access policy using the IAM role roles/iap.httpsResourceAccessor. Learn more about managing roles and permissions.

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://compute.googleapis.com/compute/v1/projects/PROJECT_ID/REGION/backendServices/BACKEND_SERVICE_NAME"
    

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.