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 que permite controlar o acesso de funcionários no nível do recurso, em vez de 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 (em inglês). Esse controlador recebe as 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 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. BackendConfig é uma definição de recurso personalizado (CRD, na sigla em inglês) que é definida no repositório kubernetes/ingress-gce (ambos os links em inglês).
O controlador do Kubernetes Ingress 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 que você defina uma configuração separada para cada serviço de back-end de balanceamento de carga HTTP(S).
Antes de começar
Para ativar o IAP para o GKE, você precisará destes elementos:
- Um Google Cloud projeto do console com faturamento ativado.
- Um grupo com uma ou mais instâncias do GKE, exibido por um balanceador de carga HTTPS. O balanceador de carga precisa ser criado automaticamente quando você cria um objeto de entrada em um cluster do GKE.
- Saiba mais sobre como criar uma entrada 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ê ainda não tiver configurado a tela de consentimento do OAuth do seu projeto, precisará fazer isso. Para configurar a tela de consentimento do OAuth, consulte Como configurar a tela de consentimento do OAuth.
Se você estiver executando clusters do GKE na versão 1.24 ou mais recente, será possível configurar
o IAP e o GKE usando a API Kubernetes Gateway. Para fazer isso, siga
as etapas abaixo e depois 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 controlador de entrada do Compute Engine BackendConfig foi 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 à direita, clique em Adicionar principal.
-
Na caixa de diálogo Adicionar membros que é exibida, insira 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 administradores 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
Para configurar um BackendConfig para o IAP, adicione 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: true
Associar 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: beta.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 será 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.