Configurar a conectividade da autoridade certificadora por um proxy

Neste guia, explicamos como configurar a conectividade da autoridade certificadora (CA) por meio de um proxy quando a conectividade direta das cargas de trabalho injetadas por sidecar não está disponível (por exemplo, devido a firewalls ou outros recursos restritivos). Essa configuração só é aplicável a instalações do Cloud Service Mesh que usam o Certificate Authority Service.

Em uma instalação típica do Cloud Service Mesh no cluster, você implanta sidecars em pods de aplicativo em que a conectividade direta com os serviços de CA (como meshca.googleapis.com e privateca.googleapis.com) está disponível. Em cenários em que uma conexão direta não está disponível, é necessário configurar um proxy HTTPS explícito baseado em CONNECT.

Pré-requisitos

Antes de configurar a conectividade da CA por um proxy, confirme se você:

  • Estabeleceu a conectividade de rede de todos os pods injetados por sidecar com o proxy HTTPS.
  • Concedeu acesso ao proxy HTTPS implantado para todos os serviços do Google Cloud.

Configurar um recurso personalizado de ProxyConfig

  1. Configure um recurso personalizado (CR) de ProxyConfig do Istio para injetar no proxy sidecar a fim de apontar para o proxy HTTPS. Exemplo:

    apiVersion: networking.istio.io/v1beta1
    kind: ProxyConfig
    metadata:
     labels:
      istio.io/rev: <istio-rev>   # To target proxies mapped to a specific control plane if needed.
     name: test-proxy-inject
     namespace: istio-system      # To ensure side-cars injected into all namespaces process this CR
    spec:
     environmentVariables:
      CA_PLUGIN_PROXY_URL: http://<proxy-service>.<proxy-ns>:<proxy-port>
    

    onde:

    • CA_PLUGIN_PROXY_URL é a configuração consumida pelos sidecars para estabelecer um handshake de CONNECT com o proxy, que encaminha todo o tráfego destinado a CA para o endpoint relevante.
    • proxy-service é implantado no namespace proxy-ns e ouve handshakes de CONNECT na porta proxy-port. O formato dessa variável de ambiente é semelhante ao da variável de ambiente HTTPS_PROXY padrão.
  2. Depois que o plano de controle do Cloud Service Mesh for instalado, aplique o CR ProxyConfig apropriado (configurado na etapa 1) no cluster antes de reiniciar as cargas de trabalho em namespaces rotulados pelo Cloud Service Mesh para garantir que a configuração seja injetada corretamente nos sidecars. Essa configuração é necessária para que os sidecars recebam certificados de carga de trabalho assinados da CA, o que garante que o pod injetado do sidecar seja iniciado.