보안 웹 프록시 정책 개요

이 페이지에서는 보안 웹 프록시 정책의 소스 속성대상 속성을 설명합니다. 또한 이 페이지에서는 전송 제어 프로토콜 (TCP) 규칙 기반 프록시와 애플리케이션의 TCP 프록시 규칙을 구성하는 방법을 설명합니다.

보안 웹 프록시 정책은 다음 두 가지 파라미터를 기반으로 합니다.

기본적으로 보안 웹 프록시는 보안 웹 프록시 인스턴스의 정책에 특정 규칙을 포함하지 않는 한 프록시를 통한 모든 아웃바운드 웹 트래픽 (HTTP 또는 HTTPS)을 거부하도록 설정됩니다.

정책의 소스 속성

보안 웹 프록시 인스턴스가 트래픽 소스를 식별할 수 있도록 하려면 다음 속성을 사용하세요.

  • 서비스 계정: 서비스 계정을 사용하여 트래픽 소스를 식별하고 보안 웹 프록시 정책을 구성합니다.
  • 보안 태그: Resource Manager 태그를 사용하여 Google Cloud 리소스에 대한 액세스를 제어합니다.
  • IP 주소: 보안 웹 프록시가 아웃바운드 트래픽에 사용하는 엔터프라이즈 IP 주소 (또는 고정 Google Cloud IP 주소)를 할당합니다.

지원되는 ID

소스 ID 기반 보안 정책 (서비스 계정 및 보안 태그)을 사용하여 여러 Google Cloud 서비스의 웹 트래픽을 보호할 수 있습니다. 다음 표에는 소스 ID 기반 보안 정책을 사용할 때 다양한 Google Cloud 서비스가 지원되는지 여부가 나와 있습니다.

Google Cloud 서비스 서비스 계정 지원 보안 태그 지원
VM
GKE 노드
GKE 컨테이너 1 1
Cloud Run용 직접 VPC 1
서버리스 VPC 액세스 커넥터 2 2
Cloud VPN 1 1
온프레미스 Cloud Interconnect 1 1
애플리케이션 부하 분산기
네트워크 부하 분산기
1 Google Cloud에서는 지원되지 않습니다.
2 소스 IP 주소는 고유하며 대신 사용할 수 있습니다.

다음 표에서는 소스 ID 기반 보안 정책을 사용할 때 다양한 가상 프라이빗 클라우드 (VPC) 아키텍처가 지원되는지 여부를 보여줍니다.

VPC VPC 아키텍처 지원
VPC 내 프로젝트 간(공유 VPC)
VPC 내 리전 간
VPC 간 피어링 링크 간(피어 VPC)
VPC 간 Private Service Connect 간
VPC 간 Network Connectivity Center 스포크 간

정책의 대상 속성

보안 웹 프록시를 사용하면 대상 도메인 및 전체 URL 경로 (TLS 검사가 사용 설정된 경우)를 기반으로 애플리케이션의 정책을 구성할 수 있습니다.

보안 웹 프록시 인스턴스가 허용된 트래픽 대상을 결정할 수 있도록 하려면 다음 속성을 사용하세요.

HTTP 기반 대상 트래픽의 경우 애플리케이션에 host() 대상 속성을 사용할 수 있습니다.

HTTPS 기반 대상 트래픽의 경우 애플리케이션에 다양한 request.* 대상 관련 속성 (예: request.method)을 사용할 수 있습니다.

HTTP 및 HTTPS 트래픽에 사용할 수 있는 대상 속성에 대한 자세한 내용은 속성을 참고하세요.

TCP 프록시 규칙

보안 웹 프록시 인스턴스를 사용하면 웹 프로토콜과 연결되지 않은 트래픽을 비롯한 전송 제어 프로토콜 (TCP) 트래픽의 프록시 규칙을 구성할 수 있습니다. 예를 들어 80 (HTTP) 또는 443 (HTTPS) 이외의 포트에서 트래픽을 전송하는 웹사이트 또는 애플리케이션의 트래픽을 허용하거나 차단할 수 있습니다.

워크로드 (예: 애플리케이션 및 서비스)에서 보안 웹 프록시를 다음 홉으로 사용하는 경우 TCP 프록시 규칙을 적용하는 것이 좋습니다. 이는 경로 기반 리디렉션 프로세스를 사용하면 HTTP(S)가 아닌 트래픽과 웹이 아닌 트래픽이 보안 웹 프록시 인스턴스로 전달되기 때문입니다. 이렇게 하면 악성 트래픽이 애플리케이션에 도달하는 것을 차단하고 네트워크에 액세스할 수 있는 애플리케이션 또는 웹사이트를 제어할 수 있습니다.

애플리케이션의 TCP 프록시 규칙 구성

TCP 프록시 규칙을 구현하고 애플리케이션의 트래픽 허용 또는 차단 규칙을 만들려면 대상 포트를 지정해야 합니다. 선택적으로 다음 SessionMatcher 속성을 포함하여 허용 또는 차단 규칙의 기준을 세부적으로 조정할 수 있습니다.

속성 속성 유형 설명
source.ip 문자열 요청을 보낸 클라이언트의 IP 주소입니다.
source.port 문자열 요청을 보낸 클라이언트 포트입니다.
destination.port 문자열 보안 웹 프록시 인스턴스가 트래픽을 전송하는 업스트림 포트입니다.
source.matchTag(SECURE_TAG) 부울

True: 소스가 SECURE_TAG와 연결된 경우

인수는 source.matchTag('tagValues/123456')와 같은 보안 태그의 영구 ID입니다.

source.matchServiceAccount(SERVICE_ACCOUNT) 부울 True: 소스가 SERVICE_ACCOUNT와 연결된 경우(예: source.matchServiceAccount('x@my-project.iam.gserviceaccount.com'))
inIpRange(IP_ADDRESS,
IP_RANGE)
부울 IP_ADDRESSIP_RANGE 내에 포함된 경우 True입니다(예: inIpRange(source.ip, '1.2.3.0/24')). IPv6 주소의 서브넷 마스크는 /64보다 클 수 없습니다.

제한사항

보안 웹 프록시는 사용자 데이터그램 프로토콜 (UDP) 애플리케이션의 TCP 프록시 규칙을 구성하는 기능을 지원하지 않습니다. 따라서 보안 웹 프록시는 UDP 기반 애플리케이션의 트래픽을 차단합니다.

호스트 일치 규칙

보안 웹 프록시 인스턴스의 이그레스 규칙을 구성할 때는 아웃바운드 요청의 대상 호스트에 따라 규칙을 정의해야 합니다. 또한 보안 웹 프록시 인스턴스의 배포 모드에 따라 호스트 일치가 작동하는 방식도 고려해야 합니다.

명시적 프록시 모드

  • 암호화되지 않은 HTTP 요청의 경우 SessionMatcher에서 host() == "myownpersonaldomain.com" 규칙을 사용할 수 있습니다. 보안 웹 프록시는 HTTP 요청의 CONNECT 헤더에 있는 host 필드에 대해 이 규칙을 검증합니다.

  • TLS 검사를 사용 설정하고 Application Matcher에 따라 규칙을 설정하려면 TRUE로 평가되는 SessionMatcher 규칙을 설정해야 합니다. 예를 들어 SessionMatcher에서 host() == "myownpersonaldomain.com" 규칙을 사용한 다음 ApplicationMatcherrequest.host() == "myownpersonaldomain.com" 규칙을 추가할 수 있습니다.

    보안 웹 프록시는 먼저 HTTP 요청의 CONNECT 헤더에 있는 host 필드에 대해 SessionMatcher를 검증합니다. SessionMatcher 규칙이 유효한 경우에만 보안 웹 프록시가 ApplicationMatcher 규칙을 검사합니다.

다음 홉 모드

  • 암호화되지 않은 HTTP 요청의 경우 SessionMatcher에서 host() == "myownpersonaldomain.com" 규칙을 사용할 수 있습니다. 보안 웹 프록시는 표준 HTTP 요청 헤더의 host 필드에 대해 이 규칙을 검사합니다.

    하지만 요청이 TLS로 암호화된 경우 보안 웹 프록시는 아웃바운드 요청의 서버 이름 표시 (SNI) 헤더에 대해 동일한 규칙을 검증합니다.

  • TLS 검사를 사용 설정하고 ApplicationMatcher에 따라 규칙을 설정하려면 TRUE로 평가되는 SessionMatcher 규칙을 설정해야 합니다. 예를 들어 SessionMatcher에서 host() == "myownpersonaldomain.com" 규칙을 사용한 다음 ApplicationMatcherrequest.host() == "myownpersonaldomain.com" 규칙을 추가할 수 있습니다.

    보안 웹 프록시는 먼저 아웃바운드 요청의 SNI 헤더에 대해 SessionMatcher를 검증합니다. SessionMatcher 규칙이 유효한 경우에만 보안 웹 프록시가 ApplicationMatcher 규칙을 검사합니다.