프록시를 통해 인증 기관 연결 구성

이 가이드에서는 사이드카 삽입 워크로드에서 직접 연결을 사용할 수 없을 때(예: 방화벽 또는 기타 제한된 기능 때문에) 프록시를 통해 인증 기관(CA) 연결을 구성하는 방법을 설명합니다. 이 구성은 Certificate Authority Service를 사용하는 Cloud Service Mesh 설치에만 적용됩니다.

일반적인 클러스터 내 Cloud Service Mesh 설치에서는 CA 서비스(예: meshca.googleapis.comprivateca.googleapis.com)에 직접 연결할 수 있는 애플리케이션 포드에 사이드카를 배포합니다. 직접 연결을 사용할 수 없는 시나리오에서는 명시적 CONNECT 기반 HTTPS 프록시를 구성해야 합니다.

기본 요건

프록시를 통해 CA 연결을 구성하기 전에 다음이 있는지 확인합니다.

  • 모든 사이드카 삽입 포드에서 HTTPS 프록시로의 네트워크 연결을 설정합니다.
  • 배포된 HTTPS 프록시에 대한 액세스 권한을 모든 Google Cloud 서비스에 부여합니다.

ProxyConfig 커스텀 리소스 구성

  1. 사이드카 프록시에 삽입하여 HTTPS 프록시를 가리키도록 Istio ProxyConfig 커스텀 리소스(CR)를 구성합니다. 예를 들면 다음과 같습니다.

    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>
    

    각 항목의 의미는 다음과 같습니다.

    • CA_PLUGIN_PROXY_URL은 사이드카가 프록시로 CONNECT 핸드셰이크를 설정하기 위해 사용하는 구성이며, CA를 대상으로 하는 모든 트래픽을 관련 엔드포인트로 전달합니다.
    • proxy-serviceproxy-ns 네임스페이스에 배포되며 proxy-port 포트에서 CONNECT 핸드셰이크를 리슨합니다. 이 환경 변수의 형식은 표준 HTTPS_PROXY 환경 변수와 유사합니다.
  2. Cloud Service Mesh 컨트롤 플레인이 설치되면 Cloud Service Mesh 라벨이 지정된 네임스페이스의 워크로드를 다시 시작하기 전에 클러스터에 적절한 ProxyConfig CR(1단계에서 구성됨)을 적용하여 사이드카에 구성이 올바르게 삽입되도록 합니다. 이 구성은 사이드카가 서명된 워크로드 인증서를 CA에서 가져올 때 필요합니다. 이를 통해 사이드카 삽입 포드가 시작될 수 있습니다.