Nesta página, você aprenderá como proteger uma instância do Google Kubernetes Engine (GKE) com o Identity-Aware Proxy (IAP).
Visão geral
O IAP integra-se ao GKE por meio do objeto Ingress. Essa integração permite controlar o acesso de funcionários no nível do recurso sem usar uma VPN.
Em um cluster do GKE, o tráfego de entrada é processado pelo balanceamento de carga HTTP(S), um componente do Cloud Load Balancing. Normalmente, o balanceador de carga HTTP(S) é configurado pelo controlador Ingress do Kubernetes. O controlador de Entrada recebe informações de configuração de um objeto Entrada do Kubernetes associado a um ou mais objetos de Serviço. Cada objeto Service contém informações de roteamento que são usadas para direcionar uma solicitação de entrada para um determinado pod e porta.A partir do Kubernetes versão 1.10.5-gke.3, adicione configurações do balanceador de carga associando um serviço a um objeto BackendConfig. O BackendConfig é uma definição de recurso personalizado 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 balanceador de carga de acordo. Um BackendConfig contém informações de configuração específicas do Cloud Load Balancing e permite definir uma configuração separada para cada serviço de back-end do balanceamento de carga HTTP(S).Antes de começar
Para ativar o IAP para o GKE, você precisará destes elementos:
- Um projeto do console do Google Cloud com o faturamento ativado.
- Um grupo com uma ou mais instâncias do GKE, exibido por um balanceador de carga HTTPS. O balanceador de carga é gerado automaticamente quando você cria um objeto Entrada em um cluster do GKE.
- Saiba mais sobre como criar um Ingress para HTTPS.
- Um nome de domínio registrado no endereço do seu balanceador de carga.
- O código do app para verificar se todas as solicitações têm uma identidade.
- Saiba mais sobre como conseguir a identidade do usuário.
Como ativar o IAP
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.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 configurar o BackendConfig
É possível configurar um BackendConfig para o IAP adicionando um bloco iap.
Como incluir um bloco iap em BackendConfig
Para configurar o BackendConfig para o IAP, especifique o valor enabled. Verifique se você tem a permissão compute.backendServices.update e adicione o bloco iap ao BackendConfig.
Para as versões 1.16.8-gke.3 e mais recentes do GKE, use a versão da API cloud.google.com/v1.
Se você estiver usando 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: trueAssociar uma porta de serviço a um BackendConfig
Você também precisa associar as portas de serviço ao BackendConfig para acionar a ativação do IAP. Uma forma de fazer isso é tornar todas as portas de serviço como padrão para seu BackendConfig. Para isso, inclua a anotação a seguir no recurso Service:
metadata:
annotations:
cloud.google.com/backend-config: '{"default": "CONFIG_DEFAULT"}'Verificar o BackendConfig
Para testar a configuração, execute kubectl get event. Se aparecer a mensagem "no BackendConfig for service port exists", significará que a porta de serviço foi associada ao seu BackendConfig, mas o recurso BackendConfig não foi encontrado. Esse erro poderá ocorrer se o recurso BackendConfig ainda não tiver sido criado, se ele tiver sido criado no namespace errado ou se a referência na anotação do Service tiver sido digitada com incorretamente.
Como desativar o IAP
Para desativar o IAP, defina enabled como false no BackendConfig. Se você excluir o bloco do IAP do BackendConfig, as configurações serão mantidas. Por exemplo, se o IAP estiver
ativado e você excluir o bloco, o IAP ainda vai estar ativado.
A seguir
- Saiba como configurar o Cloud CDN no GKE.
- Saiba como configurar o Cloud Armor para GKE.
- Saiba mais sobre o recurso BackendConfig.
- Saiba como autenticar com um JWT de conta de serviço