Unterstützte Attribute

Wenn Sie Erweiterungen mithilfe von Plug-ins oder Callouts für ext-proc-basierte Backend-Dienste konfigurieren, können Sie die Anfrage- und Verbindungsattribute angeben, die an diese Dienste weitergeleitet werden sollen. Auf dieser Seite werden die unterstützten Attribute beschrieben und es wird angegeben, welche für die einzelnen Erweiterungstypen verfügbar sind.

Wenn Sie Erweiterungen so konfigurieren, dass bestimmte Attribute weitergeleitet werden, haben Sie folgende Möglichkeiten:

  • Dynamische Routingentscheidungen treffen.
  • Anfrageheader mit Clientinformationen anreichern
  • Implementieren Sie benutzerdefinierte Sicherheitsrichtlinien basierend auf dem Clientstandort oder TLS-Parametern.
  • Detaillierte benutzerdefinierte Logs generieren

Sie können Attribute mit dem Feld forwardAttributes in der YAML-Konfiguration für Plug-in- und Callout-Erweiterungen angeben. Ein Beispiel für Traffic-Erweiterungen finden Sie unter Traffic-Erweiterung konfigurieren.

Die Angabe von Attributen mit forwardAttributes wird für Autorisierungs-, Routen- und Traffic-Erweiterungen unterstützt, die mit dem ext_proc-Protokoll für regionale Application Load Balancer implementiert werden.

In der folgenden Tabelle sind die Attribute und die Erweiterungen aufgeführt, die sie unterstützen:

Attribut Beschreibung Erweiterungen
request.origin Der Wert des Ursprungsheaders in einer Anfrage für Anwendungsfälle mit CORS (Cross-Origin Resource Sharing). Verkehr
request.method Die HTTP-Anfragemethode, z. B. GET oder POST. autorisierung, edge, route, traffic
request.mcp_method Die HTTP-Anfragemethode, z. B. GET oder POST. Autorisierung
request.host Eine Convenience-Entsprechung von request.headers['host']. autorisierung, edge, route, traffic
request.path Der angeforderte HTTP-URL-Pfad. autorisierung, edge, route, traffic
request.query Die HTTP-URL-Abfrage im Format name1=value&name2=value2, wie sie in der ersten Zeile der HTTP-Anfrage angezeigt wird. Es wird keine Decodierung durchgeführt. autorisierung, edge, route, traffic
request.scheme Das HTTP-URL-Schema, z. B. HTTP oder HTTPS. Die Werte für dieses Attribut sind kleingeschrieben. autorisierung, edge, route, traffic
request.backend_service_name Der Back-End-Dienst, an den die Anfrage weitergeleitet wird. Autorisierung, Traffic
request.backend_service_project_number Bei Verwendung einer freigegebene VPC die Projektnummer des Backend-Dienstes, an den die Anfrage weitergeleitet wird. Autorisierung, Traffic
request.mcp_param Der MCP-Parameter. Autorisierung
source.ip IP-Adresse des Clients Kante, Route, Verkehr
source.port Der Quellport des Clients Kante, Route, Verkehr
source.client_region Das Land oder die Region, das bzw. die der IP-Adresse des Clients zugeordnet ist. Der Wert ist ein Unicode-CLDR-Regionscode wie US oder FR. Für die meisten Länder entsprechen diese Codes den ISO-3166-2-Codes. Rahmen, Traffic
source.client_region_subdivision Die Unterteilung des Landes, z. B. eine Region oder ein Bundesstaat, die bzw. der der IP-Adresse des Clients zugeordnet ist. Dies ist eine Unicode-CLDR-Unterteilungs-ID, z. B. USCA oder CAON. Diese Unicode-Codes werden von den durch den ISO-Standard 3166-2 definierten Unterteilungen abgeleitet. Edge
source.client_city Der Name der Stadt, aus der die Anfrage stammt, z. B. Mountain View für Mountain View, Kalifornien. Für diese Variable gibt es keine offizielle Liste gültiger Werte. Die Namen der Orte können US-ASCII-Buchstaben, Zahlen, Leerzeichen und die folgenden Zeichen enthalten: !#$%&'*+-.^_`|~ Edge
source.client_city_lat_long Der Breiten- und Längengrad des Orts, aus dem die Anfrage stammt, z. B. 37.386051,-122.083851 für eine Anfrage aus Mountain View. Edge
connection.client_encrypted Der Wert ist true, wenn die Verbindung zwischen dem Client und dem Load Balancer über HTTPS, HTTP/2 oder HTTP/3 verschlüsselt ist. Andernfalls ist er false. Verkehr
connection.protocol Das HTTP-Protokoll, das für die Kommunikation zwischen dem Client und dem Load Balancer verwendet wird. Sie kann HTTP/1.0, HTTP/1.1, HTTP/2, oder HTTP/3 sein. Verkehr
destination.ip Die IP-Adresse des Load-Balancers, zu dem der Client eine Verbindung herstellt Dieser Wert kann nützlich sein, wenn mehrere Load-Balancer gemeinsame Back-Ends haben. Dies entspricht der letzten IP-Adresse im Header X-Forwarded-For. Verkehr
destination.port Die Zielportnummer, zu der der Client eine Verbindung herstellt. Verkehr
connection.sni Angabe des Servernamens (wie in RFC 6066 definiert), falls vom Client während des TLS- oder QUIC-Handshake angegeben. Der Hostname wird in Kleinbuchstaben konvertiert und alle nachgestellten Punkte werden entfernt. autorisierung, edge, traffic
connection.tls_version Die TLS-Version, die während des SSL-Handshakes zwischen dem Client und dem Load-Balancer ausgehandelt wird. Mögliche Werte sind: TLSv1, TLSv1.1, TLSv1.2 und TLSv1.3. Stellt der Client eine Verbindung mit QUIC statt TLS her, so lautet der Wert QUIC. Rahmen, Traffic
connection.sha256_peer_certificate_digest Der hexadezimal codierte SHA256-Hash des Peer-Zertifikats in der Downstream-TLS-Verbindung, falls vorhanden. autorisierung, edge, traffic
connection.tls_cipher_suite Die Cipher Suite, die während des TLS-Handshakes ausgehandelt wird. Der Wert besteht aus vier Hexadezimalziffern, die von der IANA TLS Cipher Suite Registry definiert werden, z. B. 009C für TLS_RSA_WITH_AES_128_GCM_SHA256. Bei QUIC und unverschlüsselten Clientverbindungen ist dieser Wert leer. Verkehr
connection.tls_ja3_fingerprint Der JA3-TLS/SSL-Fingerabdruck, wenn der Client eine Verbindung über HTTPS, HTTP/2 oder HTTP/3 herstellt. Verkehr
connection.tls_ja4_fingerprint Der JA4-TLS/SSL-Fingerabdruck, wenn der Client eine Verbindung über HTTPS, HTTP/2 oder HTTP/3 herstellt. Rahmen, Traffic
connection.client_cert_present Der Wert ist true, wenn der Client während des TLS-Handshakes ein Zertifikat bereitgestellt hat; andernfalls false. Autorisierung, Traffic
connection.client_cert_chain_verified Der Wert ist true, wenn die Clientzertifikatskette mit einem konfigurierten TrustStore verglichen wird. Andernfalls ist er false. Autorisierung, Traffic
connection.client_cert_error Vordefinierte Strings, die Fehlerbedingungen darstellen. Weitere Informationen zu den Fehlerstrings finden Sie unter mTLS-Clientvalidierungsmodi. Autorisierung, Traffic
connection.client_cert_serial_number Die Seriennummer des Clientzertifikats. Wenn die Seriennummer länger als 50 Byte ist, wird client_cert_error auf client_cert_serial_number_exceeded_size_limit und die Seriennummer auf einen leeren String gesetzt. Autorisierung, Traffic
connection.client_cert_spiffe_id Die SPIFFE-ID aus dem Feld „Alternativer Antragstellername“ (SAN) Wenn der Wert ungültig ist oder 2.048 Byte überschreitet, wird die SPIFFE-ID auf einen leeren String gesetzt. Wenn die SPIFFE-ID länger als 2.048 Byte ist, wird client_cert_error auf client_cert_spiffe_id_exceeded_size_limit gesetzt. Autorisierung, Traffic
connection.client_cert_uri_sans Eine durch Kommas getrennte, Base64-codierte Liste der SAN-Erweiterungen vom Typ URI. Die SAN-Erweiterungen werden aus dem Clientzertifikat extrahiert. Die SPIFFE-ID ist nicht im Feld client_cert_uri_sans enthalten. Wenn client_cert_uri_sans länger als 512 Byte ist, wird client_cert_error auf client_cert_uri_sans_exceeded_size_limit gesetzt und die durch Kommas getrennte Liste auf einen leeren String gesetzt. Autorisierung, Traffic
connection.client_cert_dnsname_sans Eine durch Kommas getrennte, Base64-codierte Liste der SAN-Erweiterungen vom Typ DNSName. Die SAN-Erweiterungen werden aus dem Clientzertifikat extrahiert. Wenn client_cert_dnsname_sans länger als 512 Byte ist, wird client_cert_error auf client_cert_dnsname_sans_exceeded_size_limit gesetzt und die durch Kommas getrennte Liste auf einen leeren String gesetzt. Autorisierung, Traffic
connection.client_cert_valid_not_before Der Zeitstempel (RFC 3339-Datumsstring-Format), vor dem das Clientzertifikat ungültig ist, z. B. 2022-07-01T18:05:09+00:00. Autorisierung, Traffic
connection.client_cert_valid_not_after Der Zeitstempel (im RFC 3339-Datumsstringformat), nach dem das Clientzertifikat ungültig ist, z. B. 2022-07-01T18:05:09+00:00. Autorisierung, Traffic
connection.client_cert_issuer_dn Die Base64-codierte DER-Codierung des vollständigen Felds Issuer aus dem Zertifikat. Wenn client_cert_issuer_dn länger als 512 Byte ist, wird der String client_cert_issuer_dn_exceeded_size_limit zu client_cert_error hinzugefügt und client_cert_issuer_dn auf einen leeren String gesetzt. Autorisierung, Traffic
connection.client_cert_subject_dn Die Base64-codierte DER-Codierung des vollständigen Felds Subject aus dem Zertifikat. Wenn client_cert_subject_dn länger als 512 Byte ist, wird der String client_cert_subject_dn_exceeded_size_limit zu client_cert_error hinzugefügt und client_cert_subject_dn auf einen leeren String gesetzt. Autorisierung, Traffic
connection.client_cert_leaf Das untergeordnete Clientzertifikat für eine hergestellte mTLS-Verbindung, bei der das Zertifikat die Validierung bestanden hat. Die Zertifikatscodierung ist RFC 9440-konform. Das binäre DER-Zertifikat ist also Base64-codiert und durch Doppelpunkte auf beiden Seiten getrennt. Wenn client_cert_leaf uncodiert 16 KB überschreitet, wird der String client_cert_validated_leaf_exceeded_size_limit zu client_cert_error hinzugefügt und client_cert_leaf auf einen leeren String gesetzt. Autorisierung, Traffic
connection.client_cert_chain Die durch Kommas getrennte Liste der Zertifikate in Standard-TLS-Reihenfolge der Clientzertifikatskette für eine hergestellte mTLS-Verbindung, bei der das Clientzertifikat die Validierung bestanden hat, ohne das untergeordnete Zertifikat. Die Zertifikatscodierung ist RFC 9440-konform. Wenn die kombinierte Größe von client_cert_leaf und client_cert_chain vor der Base64-Codierung 16 KB überschreitet, wird der String client_cert_validated_chain_exceeded_size_limit zu client_cert_error hinzugefügt und client_cert_chain auf einen leeren String gesetzt. Autorisierung, Traffic