지원되는 속성

ext-proc 기반 백엔드 서비스의 플러그인 또는 콜아웃을 사용하여 확장 프로그램을 구성할 때 이러한 서비스로 전달할 요청 및 연결 속성을 지정할 수 있습니다. 이 페이지에서는 지원되는 속성을 설명하고 각 확장 프로그램 유형에 사용할 수 있는 속성을 지정합니다.

특정 속성을 전달하도록 확장 프로그램을 구성하면 다음을 수행할 수 있습니다.

  • 동적 라우팅 결정을 내립니다.
  • 클라이언트 정보로 요청 헤더를 보강합니다.
  • 클라이언트 위치 또는 TLS 매개변수를 기반으로 커스텀 보안 정책을 구현합니다.
  • 세부적인 커스텀 로그를 생성합니다.

플러그인 및 콜아웃 확장 프로그램의 YAML 구성에서 forwardAttributes 필드를 사용하여 속성을 지정할 수 있습니다. 예를 들어 트래픽 확장 프로그램의 경우 트래픽 확장 프로그램 구성을 참조하세요.

forwardAttributes를 사용하여 속성을 지정하는 것은 리전 애플리케이션 부하 분산기에서 ext_proc 프로토콜을 사용하여 구현된 승인, 경로, 트래픽 확장 프로그램에서 지원됩니다.

다음 표에는 속성 및 이를 지원하는 확장 프로그램이 나와 있습니다.

속성 설명 확장 프로그램
request.origin 교차 출처 리소스 공유 (CORS) 사용 사례에 대한 요청의 원본 헤더 값입니다. 교통정보
request.method `GET` 또는 ` ` `POST`와 같은 HTTP 요청 메서드입니다. 승인, Edge, 경로, 교통정보
request.mcp_method `GET` 또는 ` ` `POST`와 같은 HTTP 요청 메서드입니다. 승인
request.host request.headers['host']와 동일한 편의 기능입니다. 승인, Edge, 경로, 교통정보
request.path 요청한 HTTP URL 경로입니다. 승인, Edge, 경로, 교통정보
request.query HTTP 요청의 첫 번째 행에 표시되는 name1=value&name2=value2, 형식의 HTTP URL 쿼리입니다. 디코딩은 실행되지 않습니다. 승인, Edge, 경로, 교통정보
request.scheme `HTTP` 또는 ` ` `HTTPS`와 같은 HTTP URL 스키마입니다. 이 속성의 값은 소문자입니다. 승인, Edge, 경로, 교통정보
request.backend_service_name 요청이 전달될 백엔드 서비스입니다. 승인, 교통정보
request.backend_service_project_number 공유 VPC를 사용하는 경우 요청이 전달될 백엔드 서비스의 프로젝트 번호입니다. 승인, 교통정보
request.mcp_param MCP 매개변수입니다. 승인
source.ip 클라이언트의 IP 주소입니다. Edge, 경로, 교통정보
source.port 클라이언트의 소스 포트입니다. Edge, 경로, 교통정보
source.client_region 클라이언트의 IP 주소와 연결된 국가 또는 리전입니다. 값은 유니코드 CLDR 리전 코드입니다(예: US 또는 FR). 대부분의 국가에서 이 코드는 ISO-3166-2 코드와 바로 대응합니다. Edge, 교통정보
source.client_region_subdivision 클라이언트의 IP 주소와 연결된 국가의 구획입니다 (예: 주 또는 시/도) . 이는 유니코드 CLDR 구획 ID입니다(예: USCA 또는 CAON). 이러한 유니코드 코드는 ISO-3166-2 표준에 정의된 구획에서 파생된 것입니다. Edge
source.client_city 요청이 시작된 도시의 이름입니다(예: 캘리포니아주 마운틴뷰의 경우 Mountain View). 이 변수의 유효한 값에 대한 표준 목록은 없습니다. 도시 이름에는 US-ASCII 문자, 숫자, 공백, 다음 문자가 포함될 수 있습니다. !#$%&'*+-.^_`|~. Edge
source.client_city_lat_long 요청이 시작된 도시의 위도와 경도입니다(예: 마운틴뷰에서 요청한 경우 37.386051,-122.083851 ). Edge
connection.client_encrypted 클라이언트와 부하 분산기 간의 연결이 암호화된 경우(HTTPS, HTTP/2 또는 HTTP/3 사용) 값은 true이고, 그렇지 않으면 false입니다. 교통정보
connection.protocol 클라이언트와 부하 분산기 간의 통신에 사용되는 HTTP 프로토콜입니다. HTTP/1.0, HTTP/1.1, HTTP/2 또는 HTTP/3 중 하나일 수 있습니다. 교통정보
destination.ip 클라이언트가 연결되는 부하 분산기의 IP 주소입니다. 이 값은 여러 부하 분산기에서 공통 백엔드를 공유할 때 유용합니다. 헤더의 마지막 IP 주소와 동일합니다.X-Forwarded-For 교통정보
destination.port 클라이언트가 연결되는 대상 포트 번호입니다. 교통정보
connection.sni TLS 또는 QUIC 핸드셰이크 중에 클라이언트가 제공한 경우 서버 이름 표시 (RFC 6066에 정의된 대로)입니다. 호스트 이름이 소문자로 변환되고 모든 후행 점이 삭제됩니다. 승인, Edge, 교통정보
connection.tls_version SSL 핸드셰이크 중 클라이언트와 부하 분산기 사이에 협상된 TLS 버전입니다. 가능한 값은 TLSv1, TLSv1.1, TLSv1.2, 및 TLSv1.3입니다. 클라이언트가 TLS 대신 QUIC 를 사용하여 연결하면 값은 QUIC입니다. Edge, 교통정보
connection.sha256_peer_certificate_digest 다운스트림 TLS 연결에 피어 인증서가 있는 경우 피어 인증서의 16진수 인코딩 SHA-256 해시입니다. 승인, Edge, 교통정보
connection.tls_cipher_suite TLS 핸드셰이크 중에 협상된 암호 모음입니다. 값은 IANA TLS 암호화 스위트 레지스트리에서 정의한 네 자리 16진수입니다(예: TLS_RSA_WITH_AES_128_GCM_SHA256의 경우 009C). QUIC 및 암호화되지 않은 클라이언트 연결의 경우 이 값은 비어 있습니다. 교통정보
connection.tls_ja3_fingerprint 클라이언트가 HTTPS, HTTP/2 또는 HTTP/3을 사용하여 연결하는 경우 JA3 TLS/SSL 디지털 지문입니다. 교통정보
connection.tls_ja4_fingerprint 클라이언트가 HTTPS, HTTP/2 또는 HTTP/3을 사용하여 연결하는 경우 JA4 TLS/SSL 디지털 지문입니다. Edge, 교통정보
connection.client_cert_present TLS 핸드셰이크 중 클라이언트가 인증서를 제공한 경우 값은 true이고, 그렇지 않으면 false입니다. 승인, 교통정보
connection.client_cert_chain_verified 클라이언트 인증서 체인이 구성된 TrustStore에 대해 확인된 경우 값은 true이고, 그렇지 않으면 false입니다. 승인, 교통정보
connection.client_cert_error 오류 조건을 나타내는 사전 정의된 문자열입니다. 오류 문자열에 대한 자세한 내용은 mTLS 클라이언트 검증 모드를 참조하세요. 승인, 교통정보
connection.client_cert_serial_number 클라이언트 인증서의 일련번호입니다. 일련번호가 50바이트보다 길면 client_cert_errorclient_cert_serial_number_exceeded_size_limit로 설정되고 일련번호가 빈 문자열로 설정됩니다. 승인, 교통정보
connection.client_cert_spiffe_id 제목 대체 이름 (SAN) 필드의 SPIFFE ID입니다. 값이 유효하지 않거나 2, 048바이트를 초과할 경우 SPIFFE ID가 빈 문자열로 설정됩니다. SPIFFE ID가 2048 바이트보다 길면 client_cert_errorclient_cert_spiffe_id_exceeded_size_limit로 설정됩니다. 승인, 교통정보
connection.client_cert_uri_sans 쉼표로 구분된 Base64로 인코딩된 SAN 확장 프로그램 목록입니다. 유형 URI. SAN 확장 프로그램은 클라이언트 인증서에서 추출됩니다. SPIFFE ID는 client_cert_uri_sans 필드에 포함되지 않습니다. client_cert_uri_sans가 512바이트보다 길면 client_cert_errorclient_cert_uri_sans_exceeded_size_limit로 설정되고 쉼표로 구분된 목록이 빈 문자열로 설정됩니다. 승인, 교통정보
connection.client_cert_dnsname_sans 쉼표로 구분된 Base64로 인코딩된 SAN 확장 프로그램 목록입니다. 유형 DNSName. SAN 확장 프로그램은 클라이언트 인증서에서 추출됩니다. client_cert_dnsname_sans 가 512바이트보다 길면 client_cert_errorclient_cert_dnsname_sans_exceeded_size_limit로 설정되고 쉼표로 구분된 목록이 빈 문자열로 설정됩니다. 승인, 교통정보
connection.client_cert_valid_not_before 클라이언트 인증서가 유효하지 않은 이전의 타임스탬프(RFC 3339 날짜 문자열 형식)입니다(예: 2022-07-01T18:05:09+00:00). 승인, 교통정보
connection.client_cert_valid_not_after 클라이언트 인증서가 유효하지 않은 이후의 타임스탬프(RFC 3339 날짜 문자열 형식)입니다(예: 2022-07-01T18:05:09+00:00). 승인, 교통정보
connection.client_cert_issuer_dn 인증서의 전체 Issuer 필드에서 Base64로 인코딩된 DER 인코딩입니다. client_cert_issuer_dn 이 512바이트보다 길면 client_cert_issuer_dn_exceeded_size_limit 문자열이 client_cert_error에 추가되고 client_cert_issuer_dn이 빈 문자열로 설정됩니다. 승인, 교통정보
connection.client_cert_subject_dn 인증서의 전체 Subject 필드에서 Base64로 인코딩된 DER 인코딩입니다. client_cert_subject_dn 이 512바이트보다 길면 client_cert_subject_dn_exceeded_size_limit 문자열이 client_cert_error에 추가되고 client_cert_subject_dn이 빈 문자열로 설정됩니다. 승인, 교통정보
connection.client_cert_leaf 인증서가 유효성 검사를 통과한 설정된 mTLS 연결의 클라이언트 리프 인증서입니다. 인증서 인코딩은 RFC 9440을 준수합니다. 즉, 바이너리 DER 인증서 가 Base64로 인코딩되고 양쪽에서 콜론으로 구분됩니다. client_cert_leaf가 인코딩되지 않은 16KB를 초과하면 client_cert_validated_leaf_exceeded_size_limit 문자열이 client_cert_error에 추가되고 client_cert_leaf가 빈 문자열로 설정됩니다. 승인, 교통정보
connection.client_cert_chain 리프 인증서를 포함하지 않은 클라이언트 인증서가 검증을 통과한 설정된 mTLS 연결의 클라이언트 인증서 체인에 대한 표준 TLS 순서의 쉼표로 구분된 인증서 목록입니다. 인증서 인코딩은 RFC 9440을 준수합니다. Base64 인코딩 전 client_cert_leafclient_cert_chain 의 결합된 크기가 16KB를 초과하면 client_cert_validated_chain_exceeded_size_limit 문자열이 client_cert_error에 추가되고 client_cert_chain이 빈 문자열로 설정됩니다. 승인, 교통정보