URL 필터링 로그

URL 필터링 서비스 로그를 사용하면 네트워크에서 URL 기반 트래픽 필터링을 감사, 확인, 분석할 수 있습니다.

Cloud Next Generation Firewall은 레이어 7 검사가 사용 설정된 트래픽에 대해 URL 기반 필터링을 실행할 때 연결에 관한 세부정보가 포함된 각 연결에 대한 로그 항목을 생성합니다. Cloud NGFW는 Cloud Logging 사용 설정 여부와 관계없이 레이어 7 검사가 있는 방화벽 규칙이 활성화되면 로그 항목을 생성합니다.

URL 필터링 로그를 보고 검사하려면 로그 탐색기에서 networksecurity.googleapis.com/firewall_url_filter 로그를 검색합니다.

이 페이지에서는 Cloud NGFW가 트래픽을 허용하거나 거부할 때 각 연결에 대해 생성하는 URL 필터링 로그의 형식과 구조를 설명합니다.

URL 필터링 로그 형식

Cloud NGFW는 특정 영역의 가상 머신 (VM) 인스턴스와 주고받는 트래픽을 모니터링하기 위해 URL 필터링을 거치는 각 연결에 대해 Cloud Logging에 로그 기록 항목을 만듭니다. 로그 기록은 LogEntry의 JSON 페이로드 필드에 포함됩니다.

일부 로그 필드는 한 필드에 두 가지 이상의 데이터를 포함하는 다중 필드 형식입니다. 예를 들어 connection 필드는 Connection 형식이며 서버 IP 주소 및 포트, 클라이언트 IP 주소 및 포트, 프로토콜 번호가 단일 필드에 포함됩니다.

다음 표에서는 URL 필터링 로그 필드의 형식을 설명합니다.

필드 유형 설명
connection Connection 도메인 및 서버 이름 표시 (SNI) 정보에 따라 허용되거나 거부된 트래픽과 연결된 연결 파라미터를 설명하는 5-튜플입니다.
interceptInstance InterceptInstance 도메인 및 SNI 정보를 기반으로 트래픽이 허용되거나 거부되는 VM 인스턴스의 세부정보입니다.
detectionTime string 방화벽 엔드포인트가 도메인 및 SNI 정보의 일치 항목을 감지한 시간 (UTC)입니다.
uriMatched string 방화벽 엔드포인트가 일치 항목을 감지한 도메인입니다.
interceptVpc VpcDetails 도메인 및 SNI 정보를 기반으로 트래픽이 허용되거나 거부되는 VM 인스턴스와 연결된 가상 프라이빗 클라우드 (VPC) 네트워크의 세부정보입니다.
ruleIndex integer 방화벽 엔드포인트에서 일치하는 항목을 감지한 URL 필터의 색인 또는 순서 번호입니다.
direction string 방화벽 엔드포인트에서 일치 항목을 감지한 트래픽의 방향 (CLIENT_TO_SERVER 또는 SERVER_TO_CLIENT)입니다.
securityProfileGroupDetails SecurityProfileGroupDetails 가로챈 트래픽에 적용된 보안 프로필 그룹의 세부정보입니다.
denyType string 방화벽 엔드포인트가 트래픽을 거부하는 데 사용하는 정보의 유형입니다.
  • SNI: SNI에 대해 감지된 일치로 인해 방화벽 엔드포인트가 트래픽을 거부했습니다.
  • HOST: 호스트 헤더 필드에 있는 도메인 정보와 일치하는 항목이 감지되어 방화벽 엔드포인트에서 트래픽을 거부했습니다.
  • URI: URI와 일치하는 항목이 감지되어 방화벽 엔드포인트에서 트래픽을 거부했습니다.
action string 도메인 및 SNI 정보를 기반으로 필터링된 트래픽에 대해 실행된 작업(allow 또는 deny)입니다. 보안 프로필에서 이 작업을 정의합니다. 구성된 작업에 대해 자세히 알아보려면 URL 필터링 보안 프로필을 참고하세요.
applicationLayerDetails ApplicationLayerDetails 애플리케이션 계층 처리와 관련된 세부정보입니다.
sessionLayerDetails SessionLayerDetails 세션 레이어 처리와 관련된 세부정보입니다.

Connection 필드 형식

다음 표에서는 Connection 필드의 형식을 설명합니다.

필드 유형 설명
clientIp string 클라이언트 IP 주소입니다. 클라이언트가 Compute Engine VM인 경우 clientIp는 기본 내부 IP 주소이거나 VM 네트워크 인터페이스의 별칭 IP 범위에 있는 주소입니다. 외부 IP 주소는 표시되지 않습니다. 로그에는 VM 인스턴스의 TCP 덤프와 유사한, IP 헤더에서 확인된 VM 인스턴스의 IP 주소가 표시됩니다.
clientPort integer 클라이언트 포트 번호입니다.
serverIp string 서버 IP 주소입니다. 서버가 Compute Engine VM인 경우 serverIp는 기본 내부 IP 주소이거나 VM 네트워크 인터페이스의 별칭 IP 범위에 있는 주소입니다. 외부 IP 주소는 연결에 사용된 경우에도 표시되지 않습니다.
serverPort integer 서버 포트 번호입니다.
protocol string 연결의 IP 프로토콜입니다.

InterceptInstance 필드 형식

다음 표에서는 InterceptInstance 필드의 형식을 설명합니다.

필드 유형 설명
zone string 가로챈 트래픽과 연결된 VM 인스턴스가 있는 영역의 이름입니다.
vm string 가로챈 트래픽과 연결된 VM 인스턴스의 이름입니다.
projectId string 가로챈 트래픽과 연결된 Google Cloud 프로젝트의 이름입니다.

VpcDetails 필드 형식

다음 표에서는 VpcDetails 필드의 형식을 설명합니다.

필드 유형 설명
vpc string 가로챈 트래픽과 연결된 VPC 네트워크의 이름입니다.
projectId string VPC 네트워크와 연결된 Google Cloud 프로젝트의 이름입니다.

SecurityProfileGroupDetails 필드 형식

다음 표에서는 SecurityProfileGroupDetails 필드의 형식을 설명합니다.

필드 유형 설명
securityProfileGroupId string 트래픽에 적용되는 보안 프로필 그룹 이름입니다.
organizationId string VM 인스턴스가 속한 조직 ID입니다.

ApplicationLayerDetails 필드 형식

다음 표에서는 ApplicationLayerDetails 필드의 형식을 설명합니다.

필드 유형 설명
protocol string 방화벽 엔드포인트가 애플리케이션 레이어에서 사용하는 프로토콜 버전입니다.
  • HTTP0: HTTP 버전이 1 미만임을 나타냅니다. 방화벽 엔드포인트는 첫 번째 호스트 헤더 필드에서 도메인 정보를 읽습니다.
  • HTTP1: HTTP 버전 1.x를 나타냅니다. 방화벽 엔드포인트는 첫 번째 호스트 헤더 필드에서 도메인 정보를 읽습니다.
  • HTTP2: HTTP 버전 2.x를 나타냅니다. 이 프로토콜 버전에서는 호스트 헤더 필드가 선택사항이므로 방화벽 엔드포인트는 authority 의사 헤더나 header, continuation 또는 push_promise 프레임 유형의 헤더 블록에서 도메인 정보를 읽습니다.
uri string 방화벽 엔드포인트가 트래픽에서 읽어오는 도메인 및 하위 도메인 정보입니다.

SessionLayerDetails 필드 형식

다음 표에서는 SessionLayerDetails 필드의 형식을 설명합니다.

필드 유형 설명
sni string 방화벽 엔드포인트가 트래픽에서 읽어오는 서버 이름 표시 (SNI)입니다.
protocolVersion string 세션 계층에서 방화벽 엔드포인트가 사용하는 프로토콜 버전입니다.
  • TLS1_0: TLS 버전 1.0을 나타냅니다.
  • TLS1_1: TLS 버전 1.1을 나타냅니다.
  • TLS1_2: TLS 버전 1.2를 나타냅니다.
  • TLS1_3: TLS 버전 1.3을 나타냅니다.

방화벽 로그와의 URL 필터링 로그 상관관계

트래픽이 방화벽 규칙에 의해 평가되면 Cloud NGFW는 방화벽 규칙 로깅 항목을 기록합니다. 이 항목에는 소스 IP 주소, 대상 IP 주소, 트래픽 검사 시간과 같은 필드가 포함됩니다. 이러한 방화벽 규칙 로그를 보려면 로그 보기를 참고하세요.

레이어 7 검사가 사용 설정된 방화벽 정책 규칙에 로깅이 사용 설정된 경우 Cloud NGFW는 먼저 평가된 트래픽에 대한 방화벽 규칙 로깅 항목을 로깅합니다. 그런 다음 레이어 7 검사를 위해 트래픽을 방화벽 엔드포인트로 보냅니다.

방화벽 엔드포인트는 도메인과 SNI를 사용하여 트래픽을 분석하고 연결에 대한 별도의 URL 필터링 로그를 만듭니다. 이 URL 필터링 로그에는 도메인 이름, 트래픽 소스, 트래픽 대상과 같은 필드가 포함됩니다.

URL 필터링 로그를 보려면 로그 탐색기에서 networksecurity.googleapis.com/firewall_url_filter 로그를 검색합니다.

방화벽 규칙 로그URL 필터링 로그의 필드를 비교하여 URL 필터링을 트리거한 연결을 식별하고 적절한 조치를 취하여 해결할 수 있습니다.

예를 들어 다음과 같은 설정으로 구성된 방화벽 정책 규칙이 있습니다.

  • 소스 IP 주소: 192.0.2.0
  • 소스 포트: 47644
  • 대상 IP 주소: 192.0.2.1
  • 대상 포트: 80
  • 로깅: Enabled

이 규칙과 연결된 URL 필터링 로그를 보려면 로그 탐색기 페이지로 이동하세요. 쿼리 창의 쿼리 편집기 필드에 다음 쿼리를 붙여넣습니다.

  resource.type="networksecurity.googleapis.com/FirewallEndpoint"
  jsonPayload.source_ip_address="192.0.2.0"
  jsonPayload.source_port="47644"
  jsonPayload.destination_ip_address="192.0.2.1"
  jsonPayload.destination_port="80"
  

쿼리 결과 섹션에 다음 URL 필터링 로그가 표시됩니다.

    {
      "insertId": "akxp8uf5f0fuv",
      "jsonPayload": {
      "connection": {
      "serverPort": 80,
      "clientPort": 47644,
      "protocol": "TCP",
      "clientIp": "192.0.2.0",
      "serverIp": "192.0.2.1"
    },
      "interceptInstance": {
      "zone": "us-central1-c",
      "vm": "aied-test-dont-delete",
      "projectId": "project_001"
    },
      "detectionTime": "2025-06-02T19:09:27.802711668Z",
      "uriMatched": "",
      "interceptVpc": {
      "projectId": "project_001",
      "vpc": "default"
    },
      "ruleIndex": 0,
      "direction": "CLIENT_TO_SERVER",
      "@type": "type.googleapis.com/google.cloud.networksecurity.logging.v1.URLFilterLog",
      "securityProfileGroupDetails": {
      "securityProfileGroupId": "project_001/spg/my-spg-id",
      "organizationId": "organization_001"
    },
      "denyType": "HOST",
      "action": "DENY",
      "applicationLayerDetails": {
      "protocol": "HTTP1",
      "uri": "server.fwp.com"
    },
      "sessionLayerDetails": {
      "sni": "",
      "protocolVersion": "PROTOCOL_VERSION_UNSPECIFIED"
    }
  },
    "resource": {
    "type": "networksecurity.googleapis.com/FirewallEndpoint",
    "labels": {
      "location": "us-central1-c",
      "resource_container": "organizations/organization_001",
      "id": "pg-ni-latencyayzl8peq"
    }
  },
  "timestamp": "2025-06-02T19:09:35.452299517Z",
  "logName": "projects/project_001/logs/networksecurity.googleapis.com%2Ffirewall_url_filter",
  "receiveTimestamp": "2025-06-02T19:09:35.452299517Z"
}
   

마찬가지로 이 규칙과 연결된 방화벽 로그를 보려면 로그 탐색기 페이지로 이동하세요. 쿼리 창의 쿼리 편집기 필드에 다음 쿼리를 붙여넣습니다.

    jsonPayload.rule_details.action="APPLY_SECURITY_PROFILE_GROUP"
    jsonPayload.connection.src_ip="192.0.2.0"
    jsonPayload.connection.src_port="47644"
    jsonPayload.connection.dest_ip="192.0.2.1"
    jsonPayload.connection.dest_port="80"
   

쿼리 결과 섹션에 다음 방화벽 로그가 표시됩니다.

    {
      insertId: "qn82vdg109q3r9"
      jsonPayload: {
      connection: {
      }
      dest_ip: "192.0.2.1"
      dest_port: 80
      protocol: 6
      src_ip: "192.0.2.0"
      src_port: 47644
      disposition: "INTERCEPTED"
      ►instance: {4}
      ▸ remote_instance: {4}
      ▸ remote_vpc: {3}
      rule_details: {
      action: "APPLY_SECURITY_PROFILE_GROUP"
      apply_security_profile_fallback_action: "UNSPECIFIED"
      direction: "INGRESS"
      ▸ ip_port_info: [1]
      ▼
      priority: 6000
      reference: "network: fwplus-vpc/firewallPolicy: fwplus-fwpolicy"
      source_range: [
      1
      0: "192.0.2.0/24"
      target_secure_tag: [
      0: "tagValues/281479199099651"
      ]
      }
      vpc: {
      project_id: "project_001"
      subnetwork_name: "fwplus-us-central1-subnet"
      vpc_name: "fwplus-vpc"
      }
      }
      logName: "projects/project_001/logs/compute.googleapis.com%2Ffirewall",
      receiveTimestamp: "2023-11-28T19:08:46.749244092Z"
      resource: {2}
      timestamp: "2023-11-28T19:08:40.207465099Z"
    }
   

URL 필터링 로그와 방화벽 로그 쿼리를 모두 사용하여 두 로그 간의 상관관계를 확인할 수 있습니다. 다음 표에서는 방화벽 로그 필드를 해당 URL 필터링 로그 필드에 매핑합니다.

방화벽 로그 필드 URL 필터링 로그 필드 설명
src_ip clientIp 방화벽 로그의 소스 IP 주소는 URL 필터링 로그의 클라이언트 IP 주소와 상관관계가 있어 필터링된 트래픽의 출처를 식별합니다.
src_port clientPort 방화벽 로그의 소스 포트는 URL 필터링 로그의 클라이언트 포트와 상관관계가 있어 필터링된 트래픽에서 사용되는 소스 포트를 식별합니다.
dest_ip serverIp 방화벽 로그의 대상 IP 주소는 URL 필터링 로그의 서버 IP 주소와 상관관계가 있어 필터링된 트래픽의 대상을 정확히 파악합니다.
dest_port serverPort 방화벽 로그의 대상 포트는 URL 필터링 로그의 서버 포트와 상관관계가 있어 필터링된 트래픽에서 사용되는 대상 포트를 식별합니다.

다음 단계