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 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 você não configurou a tela de permissão OAuth do projeto, será solicitado que você faça isso. Para configurar a tela de permissão OAuth, consulte Como configurar a tela de permissão OAuth.
Se você estiver executando o GKE versão 1.24 ou posterior, poderá configurar
o IAP e o GKE usando a API Gateway do Kubernetes. Para isso, conclua
as etapas a seguir e siga 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 BackendConfig e o controlador de entrada do Compute Engine estão sincronizados.
Para verificar se o serviço de back-end está disponível, execute o seguinte comando gcloud:
gcloud compute backend-services list - No painel lateral à direita, clique em Adicionar principal.
-
Na caixa de diálogo Adicionar participantes que é exibida, adicione 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 principais podem ter esse papel:
- Conta do Google: user@gmail.com
- grupo do Google: admins@googlegroups.com
- Conta de serviço: server@example.
- 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 ao qual 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 das permissões
compute.backendServices.update,clientauthconfig.clients.create,clientauthconfig.clients.updateeclientauthconfig.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 de ativar o IAP, 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
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
Execute o comando a seguir para preparar um arquivo
settings.json.cat << EOF > settings.json { "iap": { "enabled":true } } EOFExecute o comando a seguir para ativar o 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 a IAP, use a Google Cloud CLI para modificar a
política de acesso da IAP usando a função do IAM
roles/iap.httpsResourceAccessor. Saiba mais sobre como gerenciar papéis e permissões.
Próximas etapas
- Defina regras de contexto mais avançadas aplicando níveis de acesso.
- Consulte Registros de acesso baseado no contexto nos Registros de auditoria do Cloud.
- Saiba mais sobre o IAP.