프록시 트랜잭션 로그는 보안 웹 프록시가 처리하는 각 요청에 관한 자세한 정보를 제공합니다. 이러한 로그에는 보안 웹 프록시가 사용자와 인터넷 간에 중재하는 모든 트랜잭션의 레코드가 포함됩니다. 이 페이지에서는 보안 웹 프록시 인스턴스에서 생성하는 트랜잭션 로그에 액세스하고 이를 해석하는 방법을 설명합니다.
프록시 트랜잭션 로그 항목 유형
프록시 트랜잭션 로그 항목에는 세 가지 유형이 있습니다.
이러한 로그는 다음 작업에 유용합니다.
- 보안 분석 및 위협 감지
- 연결 및 정책 문제 해결
- 웹 액세스 감사
- 보안 웹 프록시 성능 분석
HttpRequest
이러한 로그 항목에는 다음 정보가 포함됩니다.
| 이름 | 유형 | 설명 |
|---|---|---|
requestMethod
|
문자열 | 요청 메서드 유형(예: GET, HEAD, PUT, POST)입니다.
|
requestUrl
|
문자열 | 요청된 URL의 스키마 (http 또는 https), 호스트 이름, 경로, 쿼리 부분 예를 들면 http://example.com/some/info?color=red와 같습니다.
|
requestSize
|
문자열(int64 형식) |
요청 헤더와 요청 본문을 포함하는 HTTP 요청 메시지의 크기(바이트)입니다. |
status
|
정수 | 응답을 나타내는 HTTP 또는 HTTPS 상태 코드입니다. 예를 들면 200 OK 또는 404 Not Found입니다.
|
responseSize
|
문자열(int64 형식) | 헤더와 본문을 포함하여 클라이언트로 다시 전송되는 HTTP 상태 코드의 크기(바이트)입니다. |
userAgent
|
문자열 | 클라이언트가 전송하는 사용자 에이전트입니다(예: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Q312461;
.NET CLR 1.0.3705)).
|
remoteIp
|
문자열 | HTTP 요청을 실행한 클라이언트의 IP 주소 (IPv4 또는 IPv6)입니다. 이 필드에는 포트 정보가 포함될 수 있습니다. 예를 들면 192.168.1.1, 10.0.0.1:80, FE80::0202:B3FF:FE1E:8329입니다.
|
serverIp
|
문자열 | 요청이 전송된 원본 서버의 IP 주소 (IPv4 또는 IPv6)입니다. 이 필드에는 포트 정보가 포함될 수 있습니다. 예를 들면 192.168.1.1, 10.0.0.1:80, FE80::0202:B3FF:FE1E:8329입니다.
|
referrer
|
문자열 | HTTP/1.1 헤더 필드 정의에 정의된 요청의 리퍼러 URL입니다. |
latency
|
문자열(기간 형식) | 요청이 수신된 시점부터 응답이 전송될 때까지 서버의 요청 처리 지연 시간입니다.
지연 시간은 최대 9자리 소수의 초 단위 기간이며 |
cacheLookup
|
불리언 | 캐시 조회가 시도되었는지 여부를 나타냅니다. |
cacheHit
|
불리언 | 항목이 캐시에서 제공되었는지 여부를 나타냅니다 (검증 유무에 관계없음). |
cacheValidatedWithOriginServer
|
불리언 | 캐시에서 제공되기 전에 원본 서버로 응답이 검증되었는지 여부를 나타냅니다. 이 필드는 cacheHit이 True인 경우에만 의미가 있습니다.
|
cacheFillBytes
|
문자열(int64 형식) | 삽입된 HTTP 상태 코드 바이트 수입니다. |
protocol
|
문자열 | 요청에 사용된 프로토콜(예: HTTP/1.1, HTTP/2, websocket)입니다.
|
LoadBalancerLogEntry
이러한 로그 항목에는 다음 정보가 포함됩니다.
| 이름 | 유형 | 설명 |
|---|---|---|
insertId
|
문자열 | 고유한 로그 ID입니다. |
jsonPayload.@type
|
문자열 | 로그 유형입니다. 로그 유형 값은 항상 type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry입니다.
|
jsonPayload.enforcedGatewaySecurityPolicy.hostname
|
문자열 | 요청과 연결된 호스트 이름입니다. |
jsonPayload.enforcedGatewaySecurityPolicy.matchedRules.action
|
문자열 | 요청에 대해 취해진 조치입니다. |
jsonPayload.enforcedGatewaySecurityPolicy.matchedRules.rule
|
문자열 | 요청에 적용된 규칙의 이름입니다. |
jsonPayload.enforcedGatewaySecurityPolicy.clientServiceAccount
|
문자열 | 요청과 연결된 서비스 계정입니다. |
jsonPayload.enforcedGatewaySecurityPolicy.clientSecureTags
|
문자열 | 요청과 연결된 보안 태그입니다. |
GatewayLogEntry
이러한 로그 항목에는 다음 정보가 포함됩니다.
| 이름 | 유형 | 설명 |
|---|---|---|
resource_container
|
문자열 | 게이트웨이와 연결된 컨테이너입니다. |
location
|
문자열 | 게이트웨이가 정의된 리전의 이름입니다. |
network_name
|
문자열 | 게이트웨이가 생성된 Virtual Private Cloud (VPC) 네트워크의 이름입니다. |
gateway_type
|
문자열 | 게이트웨이의 enum 유형입니다. 보안 웹 프록시의 경우 값은 SECURE_WEB_GATEWAY여야 합니다.
|
gateway_name
|
문자열 | 게이트웨이 리소스의 이름입니다. |
프록시 트랜잭션 로그 형식
프록시 트랜잭션 로그는 로그 이름이 projects/PROJECT_ID/logs/networksecurity.googleapis.com%2Fswg_policy_event인 Cloud Logging에 기록됩니다.
각 로그 항목의 JSON 페이로드에는 트랜잭션에 관한 세부정보가 포함되어 있습니다. 로그 항목에는 다음 주요 필드가 포함됩니다.
| 이름 | 유형 | 설명 |
|---|---|---|
destination_ip |
문자열 | 대상의 확인된 IP 주소입니다. |
instance |
문자열 | 요청을 처리한 보안 웹 프록시 인스턴스의 이름입니다. |
mtls_info |
객체 | mTLS 핸드셰이크에 관한 정보입니다(해당하는 경우). |
policy_evaluation_results |
객체 | 일치한 규칙과 결과 작업(예: allow 또는 deny)에 관한 정보입니다. |
request_host |
문자열 | 요청된 호스트 이름입니다. |
request_method |
문자열 | HTTP 메서드(예: GET 또는 POST) |
request_path |
문자열 | 요청 경로입니다. |
request_port |
정수 | 대상 포트. |
request_protocol |
문자열 | HTTP 프로토콜 버전입니다. |
request_scheme |
문자열 | URL 요청의 스키마입니다(예: http 또는 https). |
request_time |
타임스탬프 | 프록시가 요청을 수신한 날짜와 시간입니다. 타임스탬프는 ISO 8601 형식으로 지정됩니다. YYYY-MM-DDTHH:MM:SS.MsMsMsZoneOffset 예를 들면 2025-06-03T11:52:26.452Z입니다. |
response_code |
정수 | 클라이언트에 반환되는 HTTP 상태 코드입니다. |
response_size |
정수 | 응답 본문의 크기(바이트 단위)입니다. |
response_time |
타임스탬프 | 프록시가 클라이언트에 응답을 전송한 날짜와 시간입니다.
타임스탬프는 ISO 8601 형식으로 지정됩니다.
YYYY-MM-DDTHH:MM:SS.MsMsMsZoneOffset 예를 들면 2025-06-03T11:52:26.452Z입니다. |
source_ip |
문자열 | 클라이언트 IP 주소입니다. |
source_port |
정수 | 클라이언트 소스 포트입니다. |
tls_cipher_suite |
문자열 | TLS 연결에 사용되는 암호화 기술입니다. |
tls_version |
문자열 | 연결에 사용된 TLS 버전입니다. |
프록시 트랜잭션 로그 모니터링
Google Cloud 콘솔에서 로그 탐색기 페이지로 이동합니다.
Google Cloud 프로젝트를 선택합니다.
다음 쿼리를 사용하여 모든 보안 웹 프록시 트랜잭션 로그를 확인합니다.
logName="projects/PROJECT_ID/logs/networksecurity.googleapis.com%2Fswg_policy_event"
PROJECT_ID를 타겟Google Cloud 프로젝트의 ID로 바꿉니다.다음은 특정 세부정보를 확인하는 데 사용할 수 있는 몇 가지 샘플 쿼리입니다.
거부된 요청을 모두 찾습니다.
logName="projects/PROJECT_ID/logs/networksecurity.googleapis.com%2Fswg_policy_event" jsonPayload.policy_evaluation_results.policy_action="DENY"
특정 소스 IP 주소의 요청을 찾습니다.
logName="projects/PROJECT_ID/logs/networksecurity.googleapis.com%2Fswg_policy_event" jsonPayload.source_ip="192.0.2.1"
특정 호스트에 대한 요청을 찾습니다.
logName="projects/PROJECT_ID/logs/networksecurity.googleapis.com%2Fswg_policy_event" jsonPayload.request_host="example.com"
프록시 트랜잭션 로그 라우팅
로그 싱크를 사용하여 프록시 트랜잭션 로그를 Cloud Storage, BigQuery, Pub/Sub과 같은 다른 대상으로 라우팅할 수 있습니다. 자세한 내용은 로그 항목 라우팅을 참고하세요.