כשמגדירים תוספים באמצעות פלאגינים או קריאות ל-ext-proc-based backend services, אפשר לציין את מאפייני הבקשה והחיבור להעברה לשירותים האלה. בדף הזה מפורטים המאפיינים הנתמכים ומוסבר אילו מאפיינים זמינים לכל סוג של תוסף.
אם מגדירים תוספים להעברת מאפיינים ספציפיים, אפשר להשיג את הדברים הבאים:
- לקבל החלטות לגבי ניתוב דינמי.
- הוספת מידע על הלקוח לכותרות הבקשות.
- הטמעה של מדיניות אבטחה בהתאמה אישית על סמך מיקום הלקוח או פרמטרים של TLS.
- יצירת יומנים מפורטים בהתאמה אישית.
אפשר לציין מאפיינים באמצעות השדה forwardAttributes בקובץ ההגדרות של YAML
עבור תוספים ונכסי יתרונות מרכזיים. לדוגמה, במאמר הגדרת תוסף תנועה מוסבר על תוספי תנועה.
אפשר לציין מאפיינים עם forwardAttributes בתוספים של הרשאות, קצה, מסלול ותנועה. אפשר להטמיע את forwardAttributes באמצעות תוספים של Wasm או באמצעות callouts (עם הפרוטוקול ext_proc) במוצרים הבאים:
- מאזני עומסים חיצוניים אזוריים של אפליקציות (ALB)
- מאזני עומסים פנימיים אזוריים של אפליקציות (ALB)
- מאזני עומסים גלובליים חיצוניים של אפליקציות (ALB)
- מאזני עומסים פנימיים של אפליקציות (ALB) חוצי-אזורים
בטבלה הבאה מפורטים המאפיינים הנתמכים וההרחבות:
| מאפיין | תיאור | תוספים |
|---|---|---|
request.origin |
הערך של כותרת המקור בבקשה לתרחישי שימוש של שיתוף משאבים בין מקורות (CORS). | תנועה |
request.method |
ה-method של בקשת ה-HTTP, כמו GET או POST. |
הרשאה, קצה, מסלול, תנועה |
request.mcp_method |
ה-method של בקשת ה-HTTP, כמו GET או POST. |
הרשאה |
request.host |
נוחות ששווה ל-request.headers['host']. |
הרשאה, קצה, מסלול, תנועה |
request.path |
נתיב כתובת ה-URL של ה-HTTP שהתבקש. | הרשאה, קצה, מסלול, תנועה |
request.query |
שאילתת כתובת ה-URL של HTTP, בפורמט name1=value&name2=value2,
כמו שהיא מופיעה בשורה הראשונה של בקשת ה-HTTP. לא מתבצע פענוח. |
הרשאה, קצה, מסלול, תנועה |
request.scheme |
סכימת כתובת ה-URL של HTTP, כמו HTTP או HTTPS. הערכים של המאפיין הזה הם באותיות קטנות. |
הרשאה, קצה, מסלול, תנועה |
request.backend_service_name |
שירות הקצה העורפי שאליו מועברת הבקשה. | הרשאה, תנועה |
request.backend_service_project_number |
כשמשתמשים ב-VPC משותף, מספר הפרויקט של שירות ה-Backend שאליו מועברת הבקשה. | הרשאה, תנועה |
request.mcp_param |
פרמטר ה-MCP. | הרשאה |
request.user_agent_family |
סוג הדפדפן של הלקוח, שנגזר מערכי הכותרת User-Agent. הערכים האלה מתייחסים למחרוזת הטקסט הגולמי שמועברת על ידי לקוחות HTTP נכנסים (כמו דפדפני אינטרנט, אפליקציות לנייד או כלים אוטומטיים) בכותרת בקשת ה-HTTP הרגילה User-Agent. |
קצה הרשת, תנועה (רק למאזני עומסים גלובליים חיצוניים של אפליקציות ולמאזני עומסים חיצוניים אזוריים של אפליקציות) |
request.device_request_type |
סוג המכשיר של הלקוח. הערכים האפשריים של המאפיין הזה הם APPLE, APPLEWEBKIT, BLACKBERRY, DOCOMO, GECKO, GOOGLE, KHTML, KOREAN, MICROSOFT, MSIE, NETFRONT, NOKIA, OBIGO, OPERA, OPENWAVE, OTHER, POLARIS, SEMC, SMIT, TELECA או USER_DEFINED. |
קצה הרשת, תנועה (רק למאזני עומסים גלובליים חיצוניים של אפליקציות ולמאזני עומסים חיצוניים אזוריים של אפליקציות) |
request.header_order |
הסדר של כותרות ה-HTTP בבקשת הלקוח כמחרוזת של שמות כותרות מופרדים בפסיקים – לדוגמה, host,accept,cookie. המאפיין הזה תומך בכותרות הבאות:
accept, accept-charset,
accept-encoding, accept-language,
connection, content-length,
content-type, cookie, host,
if-modified-since, ping-from,
ping-to, pragma, referer,
user-agent, via ו-
x-forwarded-for. |
תנועה (רק למאזני עומסים גלובליים חיצוניים של אפליקציות) |
response.cdn_cache_id |
קוד המיקום והמזהה של מופע הזיכרון שמשמשים להצגת הבקשה. זהו אותו הערך שמופיע בשדה jsonPayload.cacheId ביומני הבקשות של Cloud CDN.
|
תנועה (רק למאזני עומסים גלובליים חיצוניים של אפליקציות) |
response.cdn_cache_status |
הסטטוס הנוכחי של מופע הזיכרון למטמון שמשמש להצגת הבקשה. הערכים האפשריים של המאפיין הזה הם hit, miss, revalidated, stale, uncacheable או disabled. |
תנועה (רק למאזני עומסים גלובליים חיצוניים של אפליקציות) |
source.ip |
כתובת ה-IP של הלקוח. | קצה, מסלול, תנועה |
source.port |
יציאת המקור של הלקוח. | קצה, מסלול, תנועה |
source.client_region |
המדינה או האזור שמשויכים לכתובת ה-IP של הלקוח.
הערך הוא קוד אזור Unicode CLDR, כמו US
או FR. ברוב המדינות, הקודים האלה תואמים ישירות לקודי ISO-3166-2. |
קצה הרשת, תנועה (רק למאזני עומסים גלובליים חיצוניים של אפליקציות ולמאזני עומסים חיצוניים אזוריים של אפליקציות) |
source.client_region_subdivision |
חלוקת המשנה (לדוגמה, מחוז או מדינה) של המדינה שמשויכת לכתובת ה-IP של הלקוח. זהו מזהה חלוקה משנית של Unicode CLDR, כמו USCA או CAON. קודי ה-Unicode האלה נגזרים מחלוקות המשנה שמוגדרות בתקן ISO-3166-2. |
קצה, תנועה (רק למאזני עומסים גלובליים חיצוניים של אפליקציות) |
source.client_city |
שם העיר שממנה נשלחה הבקשה. לדוגמה, Mountain View למאונטיין ויו, קליפורניה.
אין רשימה קנונית של ערכים תקינים למשתנה הזה.
שמות של ערים יכולים להכיל אותיות, מספרים, רווחים ותווים מסוג US-ASCII הבאים: !#$%&'*+-.^_`|~. |
קצה, תנועה (רק למאזני עומסים גלובליים חיצוניים של אפליקציות) |
source.client_city_lat_long |
קו הרוחב וקו האורך של העיר שממנה הגיעה הבקשה – לדוגמה, 37.386051,-122.083851 עבור בקשה שהגיעה ממאונטיין ויו. |
קצה, תנועה (רק למאזני עומסים גלובליים חיצוניים של אפליקציות) |
connection.client_encrypted |
הערך הוא true אם החיבור בין הלקוח לבין מאזן העומסים מוצפן (באמצעות HTTPS, HTTP/2 או HTTP/3). אחרת, הערך הוא false. |
תנועה |
connection.client_rtt_msec |
זמן השידור המשוער של הלוך ושוב בין מאזן העומסים לבין לקוח HTTP(S), באלפיות השנייה. זהו פרמטר של זמן הלוך ושוב ממוצע (SRTT) (כפי שמוגדר ב-RFC 2988) שנמדד על ידי ערימת ה-TCP של מאזן העומסים. | תנועה (רק למאזני עומסים גלובליים חיצוניים של אפליקציות) |
connection.client_protocol |
פרוטוקול ה-HTTP שמשמש לתקשורת בין הלקוח לבין מאזן העומסים. אפשר להשתמש באחד מהערכים הבאים: HTTP/1.0, HTTP/1.1, HTTP/2 או HTTP/3. |
תנועה |
connection.server_ip_address |
כתובת ה-IP של מאזן העומסים שאליו הלקוח מתחבר.
הערך הזה יכול להיות שימושי כשכמה מאזני עומסים חולקים קצה עורפי משותף. הכתובת הזו זהה לכתובת ה-IP האחרונה בכותרת X-Forwarded-For. |
תנועה |
connection.server_port |
מספר יציאת היעד שאליה הלקוח מתחבר. | תנועה |
connection.sni |
האינדיקציה של שם השרת (כפי שמוגדר ב-RFC 6066), אם הלקוח מספק אותה במהלך לחיצת היד של TLS או QUIC. שם המארח מומר לאותיות קטנות, ומוסרת כל נקודה בסוף. | הרשאה, קצה, תנועה |
connection.tls_version |
גרסת TLS שנקבעה במשא ומתן בין הלקוח לבין איזון העומסים במהלך לחיצת היד בפרוטוקול SSL. הערכים האפשריים כוללים:
TLSv1, TLSv1.1, TLSv1.2 ו-TLSv1.3. אם הלקוח מתחבר באמצעות QUIC
במקום TLS, הערך הוא QUIC. |
קצה, תנועה |
connection.sha256_peer_certificate_digest |
גיבוב SHA256 עם קידוד הקסדצימלי של אישור הרשת השכנה בחיבור ה-TLS במורד הזרם, אם קיים. | הרשאה, קצה, תנועה |
connection.tls_cipher_suite |
סט האלגוריתמים להצפנה שנקבע במהלך לחיצת היד בפרוטוקול TLS. הערך
הוא ארבע ספרות הקסדצימליות שמוגדרות על ידי מאגר נתוני סט האלגוריתמים להצפנה (cipher suite) ב-TLS של IANA – למשל, 009C עבור
TLS_RSA_WITH_AES_128_GCM_SHA256. הערך הזה ריק
בחיבורי לקוח ב-QUIC ובחיבורים לא מוצפנים. |
תנועה |
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_cert_present |
הערך הוא true אם הלקוח סיפק אישור במהלך לחיצת היד של TLS, אחרת הערך הוא false. |
הרשאה, תנועה |
connection.client_cert_chain_verified |
הערך הוא true אם שרשרת אישורי הלקוח אומתה מול TrustStore שהוגדר, אחרת הערך הוא false. |
הרשאה, תנועה |
connection.client_cert_error |
מחרוזות מוגדרות מראש שמייצגות תנאי שגיאה. מידע נוסף על מחרוזות השגיאה זמין במאמר בנושא מצבי אימות של לקוח mTLS. | הרשאה, תנועה |
connection.client_cert_serial_number |
המספר הסידורי של אישור הלקוח. אם המספר הסידורי
ארוך מ-50 בייט, הערך של client_cert_error מוגדר
ל-client_cert_serial_number_exceeded_size_limit,
והמספר הסידורי מוגדר למחרוזת ריקה. |
הרשאה, תנועה |
connection.client_cert_spiffe_id |
מזהה SPIFFE משדה השם החלופי לנושא (SAN). אם הערך לא תקין או חורג מ-2,048 בייט, מזהה ה-SPIFFE מוגדר כמחרוזת ריקה. אם מזהה ה-SPIFFE ארוך מ-2048 בייטים, הערך של client_cert_error מוגדר ל-client_cert_spiffe_id_exceeded_size_limit. |
הרשאה, תנועה |
connection.client_cert_uri_sans |
רשימה מופרדת בפסיקים של תוספי SAN מסוג URI בקידוד Base64. תוספי ה-SAN מחולצים מתוך
אישור הלקוח. מזהה ה-SPIFFE לא נכלל בשדה client_cert_uri_sans. אם
האורך של client_cert_uri_sans גדול מ-512 בייטים, הערך של client_cert_error מוגדר כ-client_cert_uri_sans_exceeded_size_limit, והרשימה שמופרדת באמצעות פסיקים מוגדרת כמחרוזת ריקה. |
הרשאה, תנועה |
connection.client_cert_dnsname_sans |
רשימה מופרדת בפסיקים של תוספי SAN מסוג DNSName בקידוד Base64. תוספי ה-SAN מחולצים מתוך
אישור הלקוח. אם הערך של client_cert_dnsname_sans
ארוך מ-512 בייטים, הערך של client_cert_error מוגדר ל-client_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 |
קידוד DER בקידוד Base64 של השדה המלא Issuer
מהאישור. אם המחרוזת client_cert_issuer_dn
ארוכה מ-512 בייטים, המחרוזת client_cert_issuer_dn_exceeded_size_limit מתווספת ל-client_cert_error, והמחרוזת client_cert_issuer_dn מוגדרת כמחרוזת ריקה. |
הרשאה, תנועה |
connection.client_cert_subject_dn |
קידוד DER בקידוד Base64 של השדה המלא Subject
מהאישור. אם המחרוזת 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 גדול מ-16 KB ללא קידוד, המחרוזת client_cert_validated_leaf_exceeded_size_limit מתווספת ל-client_cert_error והערך של client_cert_leaf מוגדר כמחרוזת ריקה. |
הרשאה, תנועה |
connection.client_cert_chain |
רשימת האישורים המופרדת בפסיקים, בסדר TLS רגיל,
של שרשרת אישורי הלקוח לחיבור mTLS שנוצר,
שבו אישור הלקוח עבר אימות, לא כולל את אישור העלה. הקידוד של האישור תואם לתקן RFC 9440. אם הגודל המשולב של
client_cert_leaf ושל client_cert_chain
לפני קידוד Base64 חורג מ-16 KB, המחרוזת
client_cert_validated_chain_exceeded_size_limit מתווספת ל-client_cert_error, והערך של
client_cert_chain מוגדר כמחרוזת ריקה. |
הרשאה, תנועה |
מגבלות
זמינות המאפיינים: לא כל המאפיינים נתמכים בכל סוגי התוספים. מידע נוסף מופיע בטבלה שבדף הזה.
הגדרה נדרשת: כדי לשלוח מאפיינים לתוסף, צריך לציין במפורש את המאפיינים בשדה
forwardAttributesשל הגדרת התוסף. אם לא תציינו מאפיין בשדה הזה, מאזן העומסים לא יעביר את המאפיין הספציפי הזה לתוסף.מגבלות גודל: אפשר להגדיר עד 16 מאפיינים לתוסף יחיד.
מאפייני mTLS: מאפייני אישור הלקוח (
connection.client_cert_*) מאוכלסים בנתונים שמועברים לתוסף רק אם הפעלתם mTLS והלקוח מציג אישור.