Nesta página, você aprenderá como proteger uma instância do Compute Engine com o Identity-Aware Proxy (IAP).
Para proteger recursos que não estão no Google Cloud, consulte Como proteger apps e recursos no local.
Antes de começar
Para ativar o IAP para o Compute Engine, você precisará destes elementos:
- Um Google Cloud projeto do console com faturamento ativado.
- Um grupo de uma ou mais instâncias do Compute Engine, exibidas por um balanceador de carga.
- Saiba mais sobre Como configurar um balanceador de carga HTTPS externo.
- Saiba mais sobre como configurar um balanceador de carga HTTP interno.
- um nome de domínio registrado no endereço do balanceador de carga.
- o código do aplicativo para verificar se todas as solicitações têm uma identidade.
- Saiba mais sobre como conseguir a identidade do usuário.
Se você ainda não configurou a instância do Compute Engine, consulte Como configurar o IAP para o Compute Engine para um tutorial completo.
O IAP usa um cliente OAuth gerenciado pelo Google para autenticar usuários. Somente os usuários da organização podem acessar o aplicativo ativado para IAPs. Se você quiser permitir o acesso a usuários de fora da sua organização, consulte Ativar o IAP para aplicativos externos.
É possível ativar o IAP em um serviço de back-end do Compute Engine ou em uma regra de encaminhamento do Compute Engine. Quando você ativa o IAP em um serviço de back-end do Compute Engine, somente esse serviço de back-end é protegido pelo IAP. Quando você ativa o IAP em uma regra de encaminhamento do Compute Engine, todas as instâncias do Compute Engine por trás da regra de encaminhamento são protegidas pelo IAP.
Ativar o IAP em uma regra de encaminhamento
É possível ativar o IAP em uma regra de encaminhamento usando o 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 o IAP em uma regra de encaminhamento, é possível aplicar permissões aos recursos.
Ativar o IAP em um serviço de back-end do Compute Engine
É possível ativar o IAP em um serviço de back-end do Compute Engine por esse serviço de back-end.
Console
O cliente OAuth gerenciado pelo Google não está disponível ao ativar o IAP usando o console Google Cloud .
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.
Se estiver a executar clusters do GKE na versão 1.24 ou posterior, pode configurar o IAP e o GKE através da API Kubernetes Gateway. Para o fazer, conclua os passos seguintes e, em seguida, siga as instruções em Configurar CAsI.
Não configure o dispositivo BackendConfig
.
Configurar o acesso à IAP
-
Aceda à
página Identity-Aware Proxy.
Aceda à página Identity-Aware Proxy - Selecione o projeto que quer proteger com o IAP.
-
Selecione a caixa de verificação junto ao recurso ao qual quer conceder acesso.
Se não vir um recurso, certifique-se de que o recurso foi criado e que o controlador de entrada do Motor de Cálculo do Google BackendConfig está 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 do lado direito, clique em Adicionar diretor.
-
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.
- Selecione Cloud IAP > Utilizador da app Web protegida pelo IAP na lista pendente Funções.
- Clique em Guardar.
Ativar o IAP
-
Na página Identity-Aware Proxy, em APLICAÇÕES,
encontre o equilibrador de carga que serve o instance group ao qual quer restringir
o acesso. Para ativar a IAP para um recurso:
Para ativar as CNAs:- Pelo menos, um protocolo na configuração de front-end do balanceador de carga tem de ser HTTPS. Saiba como configurar um equilibrador de carga.
-
Precisa das autorizações
compute.backendServices.update
,clientauthconfig.clients.create
, eclientauthconfig.clients.getWithSecret
. Estas autorizações são concedidas por funções, como a função de editor do projeto. Para saber mais, consulte o artigo Gerir o acesso a recursos protegidos pelo IAP.
- 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.
-
Para autenticar, use a CLI do Google Cloud e execute o seguinte comando.
gcloud auth login
- Para iniciar sessão, siga o URL apresentado.
- Depois de iniciar sessão, copie o código de validação apresentado e cole-o na linha de comandos.
-
Execute o seguinte comando para especificar o projeto que contém o recurso que quer proteger com o IAP.
gcloud config set project PROJECT_ID
-
Para ativar as CAs, execute o comando com âmbito global ou regional.
Âmbito global Âmbito regionalgcloud compute backend-services update BACKEND_SERVICE_NAME --global --iap=enabled
gcloud compute backend-services update BACKEND_SERVICE_NAME --region REGION_NAME --iap=enabled
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
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.
Próximas etapas
- Defina regras de contexto mais avançadas aplicando níveis de acesso.
- Para as solicitações de acesso, ative os registros de auditoria do Cloud.
- Saiba mais sobre o IAP.