이 페이지에서는 Google Kubernetes Engine (GKE) 앰비언트 네트워킹에서 실행되는 워크로드의 이그레스 라우팅을 Secure Web Proxy (SWP) 게이트웨이로 구성하는 방법을 보여줍니다.
Secure Web Proxy 게이트웨이를 통해 아웃바운드 트래픽을 라우팅하면 애플리케이션 코드를 수정하지 않고도 URL 필터링, 도메인 허용 목록, TLS 검사와 같은 중앙 집중식 이그레스 보안 정책을 적용할 수 있습니다. 4계층 노드 프록시는 애플리케이션 포드 외부의 아웃바운드 트래픽을 가로채 워크로드 컨테이너가 손상되더라도 포드 외부 보안 격리를 제공합니다.
아키텍처 및 트래픽 흐름
이 배포 모델에서는 GKE 클러스터, Secure Web Proxy 인스턴스, Private Service Connect (PSC) 엔드포인트를 비롯한 인프라의 소유권을 유지합니다.
이그레스 트래픽 흐름은 다음과 같이 작동합니다.
- 워크로드 또는 AI 에이전트 포드가 외부 엔드포인트 또는 인터넷 대상으로 아웃바운드 트래픽을 시작합니다.
- 로컬 레이어 4 앰비언트 노드 프록시가 노드에서 아웃바운드 요청을 가로챕니다.
- 노드 프록시는 이그레스 게이트웨이에 HTTP CONNECT 터널을 설정합니다.
- Secure Web Proxy가 다른 VPC 네트워크에 있는 경우 트래픽이 PSC 서비스 연결을 통과합니다.
- Secure Web Proxy는 터널을 종료하고, 구성된 이그레스 보안 정책을 적용하고, 승인된 요청을 대상으로 전달합니다.
제한사항
Secure Web Proxy 이그레스 라우팅을 설정하기 전에 미리보기의 다음 제한사항을 검토하세요.
- 네임스페이스 전체 정책: 이그레스 라우팅 정책은 네임스페이스 수준에서만 적용됩니다. 라벨 선택기를 사용한 세부적인 포드 선택은 지원되지 않습니다.
- 호스트 이름 필터링에는 TLS 검사가 필요합니다. TLS 검사를 사용 설정하지 않으면 보안 웹 프록시 정책은 IP 주소로만 송신 트래픽을 필터링할 수 있습니다.
- 워크로드 아이덴티티: GKE 앰비언트 네트워킹은 표준 워크로드 아이덴티티를 지원합니다. 이 미리보기에서는 관리 에이전트 ID 풀이 지원되지 않습니다.
- 인증: 앰비언트 노드 프록시와 Secure Web Proxy 간의 연결은 서버 인증서 확인을 건너뜁니다. CONNECT 요청에 클라이언트 인증서와 함께 바운드되지 않은 토큰이 포함됩니다.
- 구성 업데이트 시 리소스 재생성: 기존 Secure Web Proxy 인스턴스 또는 PSC 구성에 적용된 변경사항이 자동으로 전파되지 않습니다.
보안 웹 프록시 또는 PSC 구성을 업데이트하는 경우 변경사항을 적용하려면
GCPEgressPolicy리소스와 보안 웹 프록시 인스턴스를 삭제하고 다시 만들어야 합니다. - TLS 검사 신뢰 앵커: GKE는 Secure Web Proxy 비공개 CA 인증서를 워크로드 컨테이너에 자동으로 삽입하지 않습니다. TLS 검사를 사용하는 경우 트러스트 인증서를 컨테이너 이미지에 수동으로 설치해야 합니다.
기본 요건
이그레스 라우팅을 구성하기 전에 다음이 있는지 확인하세요.
- 앰비언트 네트워킹이 사용 설정된 GKE 클러스터 자세한 내용은 GKE 앰비언트 네트워킹 준비를 참고하세요.
- Cloud de Confiance by S3NS 프로젝트 또는 공유 VPC에서
clientValidationMode: ALLOW_INVALID_OR_MISSING_CLIENT_CERT로 구성된serverTlsPolicy가 있는 배포된 Secure Web Proxy 인스턴스 - 보안 웹 프록시가 GKE 클러스터와 다른 VPC 네트워크에 있는 경우 다음 단계를 따르세요.
- Secure Web Proxy용 PSC 서비스 연결입니다.
- GKE 클러스터 VPC 네트워크에 구성된 PSC 소비자 엔드포인트
이 단계를 완료하려면 다음 역할이 있어야 합니다.
- 에이전트 게이트웨이 / 네트워크 서비스: 에이전트 게이트웨이 리소스를 구성하는
networkservices.agentGateways.*(또는roles/networkservices.admin) - PSC 관리: Private Service Connect 연결을 관리하는
compute.networkAttachments.list(또는roles/compute.networkAdmin) - GKE 관리:
roles/container.clusterAdmin를 사용하여 맞춤 리소스 (GCPBackend,GCPEgressPolicy)를 배포합니다.
TLS 검사를 위한 신뢰 구성
Secure Web Proxy 정책에서 TLS 검사를 사용하여 암호화된 아웃바운드 트래픽을 검사하는 경우 프록시는 비공개 인증 기관 (CA)에서 서명한 인증서를 생성하여 외부 대상을 가장합니다.
워크로드 애플리케이션은 Secure Web Proxy에서 제공하는 비공개 CA 인증서를 신뢰해야 합니다. GKE는 이 인증서를 자동으로 삽입하지 않으므로 SWP CA 인증서 (신뢰 앵커)를 컨테이너의 트러스트 저장소에 설치해야 합니다.
컨테이너 이미지에 CA 인증서를 추가하려면 Dockerfile에 다음 줄을 포함하세요.
COPY swp-ca-cert.pem /usr/local/share/ca-certificates/swp-ca-cert.crt
RUN update-ca-certificates
게이트웨이 엔드포인트 정의
앰비언트 이그레스 라우팅을 구성하는 첫 번째 단계는 게이트웨이 엔드포인트를 만드는 것입니다. 게이트웨이 엔드포인트는 GKE 클러스터 내에서 Secure Web Proxy 엔드포인트를 정의하고 앰비언트 네트워킹에 프록시의 위치를 알립니다.
Secure Web Proxy 또는 Private Service Connect(PSC) 서비스 연결의 URI를 지정하려면 GKE 클러스터에서 GCPBackend 커스텀 리소스를 만드세요.
다음 매니페스트를
swp-backend.yaml로 저장합니다.동일한 VPC
apiVersion: networking.gke.io/v1 kind: GCPBackend metadata: name: swp-backend namespace: ambient-test spec: serviceUris: - //networkservices.googleapis.com/projects/PROJECT_ID/locations/REGION/gateways/SWP_NAME다음을 바꿉니다.
ambient-test: 앰비언트 네트워킹에 등록된 네임스페이스입니다.PROJECT_ID: Cloud de Confiance by S3NS 프로젝트 ID입니다.REGION: Secure Web Proxy 또는 PSC 서비스 연결이 배포된 리전입니다.SWP_NAME: Secure Web Proxy의 이름입니다.
VPC 간
apiVersion: networking.gke.io/v1 kind: GCPBackend metadata: name: swp-backend namespace: ambient-test spec: serviceUris: - //compute.googleapis.com/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME다음을 바꿉니다.
ambient-test: 앰비언트 네트워킹에 등록된 네임스페이스입니다.PROJECT_ID: Cloud de Confiance by S3NS 프로젝트 ID입니다.REGION: Secure Web Proxy 또는 PSC 서비스 연결이 배포된 리전입니다.ATTACHMENT_NAME: 보안 웹 프록시가 다른 VPC 네트워크에 있는 경우 PSC 서비스 연결의 이름입니다.
GCPBackend리소스를 적용합니다.kubectl apply -f swp-backend.yaml
이그레스 트래픽 리디렉션 구성
네임스페이스에서 Secure Web Proxy 게이트웨이로 아웃바운드 트래픽을 라우팅하는 GCPEgressPolicy 커스텀 리소스를 만듭니다. 이를 통해 앰비언트 노드 프록시가 이그레스 라우팅에 필요한 Secure Web Proxy에 대한 HTTP CONNECT 터널을 설정하는 데 필요한 신호가 제공됩니다.
다음 매니페스트를
swp-egress-policy.yaml로 저장합니다.apiVersion: networking.gke.io/v1 kind: GCPEgressPolicy metadata: name: swp-egress-policy namespace: ambient-test spec: to: excludeCIDRRanges: - "CLUSTER_CONTROL_PLANE_CIDR" proxyRef: group: networking.gke.io kind: GCPBackend name: swp-backend다음을 바꿉니다.
ambient-test: 앰비언트 네트워킹에 등록된 네임스페이스입니다.CLUSTER_CONTROL_PLANE_CIDR: Secure Web Proxy를 우회해야 하는 내부 통신의 CIDR 범위입니다 (예: GKE 컨트롤 플레인 IP 주소 범위 또는 내부 VPC 서브넷).
GCPEgressPolicy리소스를 적용합니다.kubectl apply -f swp-egress-policy.yaml정책이 적용되면 네임스페이스의 워크로드에서 나가는 트래픽이 Secure Web Proxy로 리디렉션됩니다.
문제 해결
다음 안내를 사용하여 주변 이그레스 라우팅 문제를 진단하고 해결하세요.
- 트래픽이 Secure Web Proxy에 도달하지 않음:
GCPBackend리소스가 올바른 PSC 서비스 연결 URI를 가리키는지 확인합니다.- PSC 엔드포인트가 생산자 VPC에서 설정되고 수락되었는지 확인합니다.
GCPEgressPolicy의excludeCIDRRanges가 실수로 대상 트래픽과 일치하지 않는지 확인합니다.
- mTLS 연결 실패:
- Secure Web Proxy가 노드 프록시의 연결을 수락하도록 구성되어 있는지 확인합니다.
- TLS 검사 인증서 오류:
- 클라이언트 요청이 인증서 검증 오류 (예:
x509: certificate signed by unknown authority)와 함께 실패하면 보안 웹 프록시 CA 인증서가 워크로드 컨테이너의 시스템 인증서 저장소에 올바르게 설치되어 있는지 확인합니다.
- 클라이언트 요청이 인증서 검증 오류 (예: