이 페이지에서는 보안 웹 프록시 정책의 소스 속성과 대상 속성을 설명합니다. 또한 이 페이지에서는 전송 제어 프로토콜 (TCP) 규칙 기반 프록시와 애플리케이션의 TCP 프록시 규칙을 구성하는 방법을 설명합니다.
보안 웹 프록시 정책은 다음 두 가지 파라미터를 기반으로 합니다.
- 트래픽 소스: 보안 웹 프록시가 서비스 계정, 보안 태그, IP 주소와 같은 속성을 사용하여 트래픽 소스를 식별합니다.
- 허용되는 대상: 보안 웹 프록시가 대상 도메인, 전체 URL 경로 (TLS 검사가 사용 설정된 경우), URL 목록, 대상 포트를 사용하여 허용되는 대상을 결정합니다.
기본적으로 보안 웹 프록시는 보안 웹 프록시 인스턴스의 정책에 특정 규칙을 포함하지 않는 한 프록시를 통한 모든 아웃바운드 웹 트래픽 (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 |
애플리케이션 부하 분산기 | ||
네트워크 부하 분산기 |
2 소스 IP 주소는 고유하며 대신 사용할 수 있습니다.
다음 표에서는 소스 ID 기반 보안 정책을 사용할 때 다양한 가상 프라이빗 클라우드 (VPC) 아키텍처가 지원되는지 여부를 보여줍니다.
VPC | VPC 아키텍처 | 지원 |
---|---|---|
VPC 내 | 프로젝트 간(공유 VPC) | |
VPC 내 | 리전 간 | |
VPC 간 | 피어링 링크 간(피어 VPC) | |
VPC 간 | Private Service Connect 간 | |
VPC 간 | Network Connectivity Center 스포크 간 |
정책의 대상 속성
보안 웹 프록시를 사용하면 대상 도메인 및 전체 URL 경로 (TLS 검사가 사용 설정된 경우)를 기반으로 애플리케이션의 정책을 구성할 수 있습니다.
보안 웹 프록시 인스턴스가 허용된 트래픽 대상을 결정할 수 있도록 하려면 다음 속성을 사용하세요.
- 대상 포트: 보안 웹 프록시 인스턴스가 트래픽을 전송하는 업스트림 포트입니다.
자세한 내용은
SessionMatcher
및ApplicationMatcher
에 사용할 수 있는 속성을 참고하세요. - URL 목록: URL 목록을 사용하여 사용자가 액세스할 수 있는 URL을 정의합니다. 자세한 내용은 URL 목록을 참고하세요.
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) |
부울 |
인수는 |
source.matchServiceAccount(SERVICE_ACCOUNT) |
부울 | True : 소스가 SERVICE_ACCOUNT 와 연결된 경우(예: source.matchServiceAccount('x@my-project.iam.gserviceaccount.com') )
|
inIpRange(IP_ADDRESS, |
부울 | IP_ADDRESS 가 IP_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"
규칙을 사용한 다음ApplicationMatcher
에request.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"
규칙을 사용한 다음ApplicationMatcher
에request.host() == "myownpersonaldomain.com"
규칙을 추가할 수 있습니다.보안 웹 프록시는 먼저 아웃바운드 요청의 SNI 헤더에 대해
SessionMatcher
를 검증합니다.SessionMatcher
규칙이 유효한 경우에만 보안 웹 프록시가ApplicationMatcher
규칙을 검사합니다.