サポートされる属性

プラグインまたはコールアウトを使用して拡張機能を構成する場合は、拡張機能サービスに転送するリクエスト属性と接続属性を指定できます。このページでは、サポートされている属性について説明し、各拡張機能タイプで使用できる属性を特定します。

特定の属性を転送するように拡張機能を構成すると、次のことが可能になります。

  • 動的ルーティングを決定する。
  • クライアント情報を使用してリクエスト ヘッダーを拡充する。
  • クライアントの場所または TLS パラメータに基づいてカスタム セキュリティ ポリシーを実装する。
  • 詳細なカスタムログを生成する。

プラグイン拡張機能とコールアウト拡張機能の YAML 構成の forwardAttributes フィールドで属性を指定できます。たとえば、トラフィック拡張機能については、トラフィック拡張機能を構成するをご覧ください。

次のタイプの拡張機能に forwardAttributes を使用して属性を指定します。

  • グローバル外部アプリケーション ロードバランサの Cloud Load Balancing エッジ拡張機能(LbEdgeExtension)
  • アプリケーション ロードバランサの Cloud Load Balancing ルートとトラフィック拡張機能(LbRouteExtension、LbTrafficExtension)
  • アプリケーション ロードバランサで ext_proc を使用する認可拡張機能(AuthzExtension)
  • Media CDN Edge Cache サービスの Media CDN エッジ拡張機能(CdnEdgeExtension)

リクエストの属性

リクエストから次の属性を抽出して転送できます。

属性 種類 LbEdge LbRoute LbTraffic Authz CdnEdge 説明と動作の違い
request.method 文字列 ✓ ✓ ✓ ✓ ✓ GET や POST などの HTTP リクエスト メソッド。
request.host 文字列 ✓ ✓ ✓ ✓ ✓ request.headers['host'] と同等の利便性。
request.path 文字列 ✓ ✓ ✓ ✓ ✓ リクエストした HTTP URL パス。
request.query 文字列 ✓ ✓ ✓ ✓ ✓ name1=value&name2=value2 形式の HTTP URL クエリ。
request.scheme 文字列 ✓ ✓ ✓ ✓ ✓ HTTP URL スキーム(http または https)。値は小文字です。
request.origin 文字列 — — ✓ ✓ — クロスオリジン リソース シェアリング(CORS)のユースケースの Origin リクエスト ヘッダーの値。
request.user_agent_family 文字列 ✓ — ✓ — — 解析されたユーザー エージェント ファミリー文字列。グローバル外部アプリケーション ロードバランサでのみサポートされます。
request.device_request_type 文字列 ✓ — ✓ — — デバイスの分類カテゴリ。グローバル外部アプリケーション ロードバランサでのみサポートされます。
request.backend_service_name 文字列 — — ✓ ✓ — ターゲット バックエンド サービス。エッジ拡張機能(LbEdgeExtension または CdnEdgeExtension)には適用されません。
request.backend_service_project_number int — — ✓ ✓ — 共有 VPC のバックエンド サービスのプロジェクト番号。エッジ拡張機能には適用されません。
request.mcp_method 文字列 — — — ✓ — Model Context Protocol(MCP)メソッド名。

接続属性

接続から次の属性を抽出して転送できます。

属性 種類 LbEdge LbRoute LbTraffic Authz CdnEdge 説明と動作の違い
source.ip 文字列 ✓ ✓ ✓ ✓ — クライアントの IP アドレス。
source.port int ✓ ✓ ✓ ✓ ✓ クライアントの送信元ポート番号。
source.client_region 文字列 ✓ — ✓ — ✓ クライアント IP アドレスに関連付けられた 2 文字の ISO-3166-1 または CLDR リージョン コード(US や DE など)。
source.client_region_subdivision 文字列 ✓ — ✓ — — 地域サブディビジョン コード(州や都道府県など)。 グローバル外部アプリケーション ロードバランサでのみサポートされます。
source.client_city 文字列 ✓ — ✓ — — クライアントの IP アドレスに関連付けられている都市。グローバル外部アプリケーション ロードバランサでのみサポートされます。
source.client_city_lat_long 文字列 ✓ — ✓ — — クライアントの都市に関連付けられた緯度と経度。グローバル外部アプリケーション ロードバランサでのみサポートされます。
destination.ip 文字列 — — ✓ ✓ — クライアントが接続するロードバランサの IP アドレス。
destination.port int — — ✓ ✓ — クライアントが接続する宛先ポート番号。
connection.client_encrypted bool — — ✓ ✓ — クライアントとロードバランサ間の接続が暗号化されている場合(HTTPS、HTTP/2、または HTTP/3 を使用)は true、それ以外の場合は false です。
connection.protocol 文字列 — — ✓ ✓ — 通信に使用される HTTP プロトコル(HTTP/1.0、HTTP/1.1、HTTP/2、HTTP/3)。
connection.sni 文字列 ✓ — ✓ ✓ ✓ ダウンストリーム TLS 接続のリクエストされた Server Name Indication(SNI)。
connection.tls_version 文字列 ✓ — ✓ ✓ ✓ クライアントとネゴシエートされた TLS バージョン(TLSv1、TLSv1.1、TLSv1.2、TLSv1.3、QUIC)。
connection.tls_cipher_suite 文字列 — — ✓ ✓ — TLS handshake 中にネゴシエートされた 4 桁の 16 進数の暗号スイート(例: 009C)。
connection.tls_ja3_fingerprint 文字列 — — ✓ — — JA3 TLS/SSL フィンガープリント(クライアントが HTTPS、HTTP/2、HTTP/3 を使用して接続している場合)。
connection.tls_ja4_fingerprint 文字列 ✓ — ✓ — — JA4 TLS/SSL フィンガープリント(クライアントが HTTPS、HTTP/2、HTTP/3 を使用して接続している場合)。
connection.client_rtt_msec int — — ✓ ✓ — クライアントのラウンドトリップ時間(RTT)(ミリ秒単位)。
connection.sha256_peer_certificate_digest 文字列 ✓ — ✓ ✓ — 16 進数でエンコードされた SHA-256 ピア証明書ハッシュ。
connection.client_cert_present bool — — ✓ ✓ — TLS handshake 中にクライアントが証明書を提供した場合は true、それ以外は false。
connection.client_cert_chain_verified bool — — ✓ ✓ — 構成された TrustStore に対してクライアント証明書チェーンが検証された場合は true、それ以外の場合は false。
connection.client_cert_error 文字列 — — ✓ ✓ — mTLS エラー条件を表す事前定義の文字列。詳細については、mTLS クライアント検証モードをご覧ください。
connection.client_cert_serial_number 文字列 — — ✓ ✓ — クライアント証明書のシリアル番号。
connection.client_cert_spiffe_id 文字列 — — ✓ ✓ — サブジェクト代替名(SAN)フィールドの SPIFFE ID。
connection.client_cert_uri_sans 文字列 — — ✓ ✓ — クライアント証明書から抽出された URI SAN 拡張機能のカンマ区切り Base64 エンコード リスト。
connection.client_cert_dnsname_sans 文字列 — — ✓ ✓ — クライアント証明書から抽出された DNSName SAN 拡張機能のカンマ区切り Base64 エンコード リスト。
connection.client_cert_valid_not_before 文字列 — — ✓ ✓ — クライアント証明書が無効になる前のタイムスタンプ(RFC 3339 形式)。
connection.client_cert_valid_not_after 文字列 — — ✓ ✓ — クライアント証明書が有効でなくなった後のタイムスタンプ(RFC 3339 形式)。
connection.client_cert_issuer_dn 文字列 — — ✓ ✓ — 証明書の Issuer フィールドの Base64 でエンコードされた DER エンコード。
connection.client_cert_subject_dn 文字列 — — ✓ ✓ — 証明書の Subject フィールドの Base64 でエンコードされた DER エンコード。
connection.client_cert_leaf 文字列 — — ✓ ✓ — 確立され、検証された mTLS 接続の Base64 でエンコードされたクライアント リーフ証明書(RFC 9440)。
connection.client_cert_chain 文字列 — — ✓ ✓ — 標準の TLS 順序で Base64 でエンコードされたカンマ区切りのクライアント証明書チェーン(リーフ証明書を除く)(RFC 9440)。

制限事項

  • 属性の可用性: すべての属性がすべての拡張機能タイプでサポートされているわけではありません。詳しくは、このページの表をご覧ください。

  • 必須の構成: 拡張機能に属性を送信するには、拡張機能の構成の forwardAttributes フィールドに属性を明示的にリストする必要があります。このフィールドに属性をリストしない場合、ロードバランサまたは Media CDN はその特定の属性を拡張機能に転送しません。

  • サイズの上限: 1 つの拡張機能に最大 16 個の属性を構成できます。

  • mTLS 属性: クライアント証明書属性(connection.client_cert_*)は、mTLS を有効にしてクライアントが証明書を提示した場合にのみ、拡張機能に渡されるデータに入力されます。