Nesta página, você aprenderá 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, você precisará destes elementos:
- Um projeto do console do Google Cloud com o 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 com o IAP ativado. 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 é 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 comando a seguir para preparar um arquivo
policy.yaml. A política permite que clientes com um intervalo de endereços IP de10.0.0.0/24ativem o IAP em uma 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.0" length: 24 customProvider: cloudIap: {} target: loadBalancingScheme: EXTERNAL_MANAGED resources: - https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/LOCATION/forwardingRules/FORWARDING_RULE_ID EOFExecute o comando a seguir para ativar o IAP em uma regra de encaminhamento.
gcloud network-security authz-policies import AUTHZ_POLICY_NAME \ --source=policy.yaml \ --location=LOCATION \ --project=PROJECT_ID
Substitua:
PROJECT_ID: o ID do projeto do Google Cloud .
LOCATION: a região em que 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 comando a seguir para preparar um arquivo
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.0", "length": 24 } ] } } } ], "customProvider": { "cloudIap": {} } } EOFExecute o comando a seguir para ativar o IAP em uma 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/v1/projects/PROJECT_ID/locations/LOCATION/authzPolicies"
Substitua:
PROJECT_ID: o ID do projeto do Google Cloud .
LOCATION: a região em que 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 meio desse serviço.
Console
O cliente OAuth gerenciado pelo Google não está disponível ao ativar o IAP usando o console doGoogle 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, de 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.
- 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 balanceador 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 balanceador de carga.
-
Precisa das autorizações
compute.backendServices.update,clientauthconfig.clients.create,clientauthconfig.clients.update, 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 pela 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 o IAP, você precisa de uma versão atualizada da CLI gcloud. Para instruções sobre como instalar a CLI gcloud, consulte Instalar a gcloud CLI.
-
Para se autenticar, use a Google Cloud CLI e execute o comando a seguir.
gcloud auth login - Para fazer login, siga o URL que aparece.
- Depois de fazer login, copie o código de verificação que aparece e cole-o na linha de comando.
-
Execute o comando a seguir para especificar o projeto que contém o recurso que você quer proteger com o IAP.
gcloud config set project PROJECT_ID -
Para ativar o IAP, execute o comando com escopo global ou regional.
Escopo global Escopo regionalgcloud compute backend-services update BACKEND_SERVICE_NAME --global --iap=enabledgcloud compute backend-services update BACKEND_SERVICE_NAME --region REGION_NAME --iap=enabled
Depois de ativar o IAP, use a CLI gcloud para modificar
a política de acesso do IAP usando o papel do IAM
roles/iap.httpsResourceAccessor. Saiba mais sobre como gerenciar papéis e permissões.
API
Run the following command to prepare a
settings.jsonfile.cat << EOF > settings.json { "iap": { "enabled":true } } EOFRun the following command to enable 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"
After you enable IAP, you can use the Google Cloud CLI to modify the
IAP access policy using the IAM role
roles/iap.httpsResourceAccessor. Learn more about
managing roles and permissions.