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:
- Um Google Cloud projeto da consola com a faturação ativada.
- Um grupo de uma ou mais instâncias do Compute Engine, publicado por um equilibrador de carga.
- Saiba como configurar um balanceador de carga HTTPS externo.
- Saiba como configurar um balanceador de carga HTTP interno.
- Um nome de domínio registado no endereço do seu equilibrador de carga.
- Código da aplicação para verificar se todos os pedidos têm uma identidade.
- Saiba como obter a identidade do utilizador.
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
- Execute o seguinte comando para preparar um ficheiro
policy.yaml
. A política permite que os clientes com um intervalo de endereços IP de10.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
- 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
- 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
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
-
Acesse a página Identity-Aware Proxy.
Acessar a página "Identity-Aware Proxy" - Selecione o projeto que você quer proteger com o IAP.
-
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
- No painel à direita, clique em Adicionar principal.
-
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.
- Selecione Cloud IAP > Usuário do app da Web protegido pelo IAP na lista suspensa Papéis.
- Clique em Salvar.
Como ativar o IAP
-
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:- É necessário que pelo menos um protocolo na configuração de front-end do balanceador de carga seja HTTPS. Saiba mais sobre como configurar um balanceador de carga.
-
Você precisa ter as permissões
compute.backendServices.update
,clientauthconfig.clients.create
eclientauthconfig.clients.getWithSecret
. Elas são concedidas por alguns papéis, como o de editor do projeto. Para saber mais, consulte Como gerenciar o acesso a recursos protegidos pelo IAP.
- 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.
-
To authenticate, use the Google Cloud CLI and run the following command.
gcloud auth login
- To sign in, follow the URL that appears.
- After you sign in, copy the verification code that appears and paste it in the command line.
-
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
-
To enable IAP, run either the globally or regionally scoped command.
Global scope Regional scopegcloud compute backend-services update BACKEND_SERVICE_NAME --global --iap=enabled
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
Execute o seguinte comando para preparar um ficheiro
settings.json
.cat << EOF > settings.json { "iap": { "enabled":true } } EOF
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.