Esta página explica como proteger uma instância do Google Kubernetes Engine (GKE) com o Identity-Aware Proxy (IAP).
Para proteger recursos que não estão no Google Cloud, consulte o artigo Proteger apps e recursos no local.
Vista geral
A CNA está integrada através do Ingress para o GKE. Esta integração permite-lhe controlar o acesso ao nível do recurso para os funcionários em vez de usar uma VPN.
Num cluster do GKE, o tráfego de entrada é processado pelo balanceamento de carga de HTTP(S), um componente do Cloud Load Balancing. O balanceador de carga HTTP(S) é normalmente configurado pelo controlador de entrada do Kubernetes. O controlador de entrada recebe informações de configuração de um objeto Ingress do Kubernetes associado a um ou mais objetos Service. Cada objeto Service contém informações de encaminhamento que são usadas para direcionar um pedido recebido para uma porta e um pod específicos.
A partir da versão 1.10.5-gke.3 do Kubernetes, pode adicionar a configuração do balanceador de carga associando um serviço a um objeto BackendConfig. O BackendConfig é uma definição de recurso personalizado (CRD) que é definida no repositório kubernetes/ingress-gce.
O controlador de entrada do Kubernetes lê as informações de configuração do BackendConfig e configura o equilibrador de carga em conformidade. Um BackendConfig contém informações de configuração específicas do Cloud Load Balancing e permite-lhe definir uma configuração separada para cada serviço de back-end do HTTP(S) Load Balancing.
Antes de começar
Para ativar o IAP para o GKE, precisa do seguinte:
- Um Google Cloud projeto da consola com a faturação ativada.
- Um grupo de uma ou mais instâncias do GKE, publicado por um equilibrador de carga HTTPS. O balanceador de carga deve ser criado automaticamente quando
cria um objeto Ingress num cluster do GKE.
- Saiba como criar um Ingress para HTTPS.
- Um nome de domínio registado no endereço do seu equilibrador de carga.
- Código da app para verificar se todos os pedidos têm uma identidade.
- Saiba como obter a identidade do utilizador.
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.
Ativar CNA
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.
Configurar o BackendConfig
Pode configurar um BackendConfig para IAP adicionando um bloco iap
.
Adicionar um bloco iap
ao BackendConfig
Para configurar o BackendConfig para IAP, tem de especificar o valor enabled
. Certifique-se
de que tem a autorização compute.backendServices.update
e adicione o bloco iap
ao BackendConfig.
Para as versões 1.16.8-gke.3 e superiores do GKE, use a versão da API cloud.google.com/v1
.
Se estiver a usar uma versão anterior do GKE, use cloud.google.com/v1beta1
.
apiVersion: cloud.google.com/v1 kind: BackendConfig metadata: name: CONFIG_DEFAULT namespace: my-namespace spec: iap: enabled: true
Associe uma porta de serviço a um BackendConfig
Também tem de associar portas de serviço ao seu BackendConfig para acionar a ativação da IAP. Uma forma de fazer esta associação é definir todas as portas do serviço como predefinição para o BackendConfig, o que pode fazer adicionando a seguinte anotação ao recurso do serviço:
metadata: annotations: beta.cloud.google.com/backend-config: '{"default": "CONFIG_DEFAULT"}'
Valide o BackendConfig
Para testar a configuração, execute kubectl get event
. Se vir a mensagem
"no BackendConfig for service port exists
", significa que associou
com êxito uma porta de serviço ao seu BackendConfig, mas não foi encontrado o recurso
BackendConfig. Este erro pode ocorrer se não tiver criado o recurso BackendConfig,
o tiver criado no espaço de nomes errado ou tiver escrito incorretamente a referência na anotação do serviço.
Desativar o IAP
Para desativar as CNA, tem de definir enabled
como false
no BackendConfig. Se eliminar o bloco IAP do BackendConfig, as definições persistem. Por exemplo, se a IAP estiver ativada e eliminar o bloqueio, a IAP continua ativada.
Passos seguintes
- Defina regras de contexto mais detalhadas aplicando níveis de acesso.
- Veja pedidos de acesso ativando os registos de auditoria do Cloud.
- Saiba mais sobre as compras na app.
- Saiba como configurar a RFC no GKE.
- Saiba como configurar o Cloud Armor para o GKE.
- Saiba mais sobre o recurso BackendConfig.