כשמגדירים תוספים באמצעות פלאגינים או קריאות ל-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. |
קצה הרשת, תנועה (רק למאזני עומסים גלובליים חיצוניים של אפליקציות ולמאזני עומסים חיצוניים אזוריים של אפליקציות) |
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. |
edge, traffic |
connection.sha256_peer_certificate_digest |
גיבוב SHA256 עם קידוד הקסדצימלי של אישור העמית בחיבור ה-TLS במורד הזרם, אם קיים. | הרשאה, קצה, תנועה |
connection.tls_cipher_suite |
סט האלגוריתמים להצפנה שנקבע במהלך לחיצת היד בפרוטוקול TLS. הערך
הוא ארבע ספרות הקסדצימליות שמוגדרות על ידי מאגר הנתונים של IANA TLS Cipher Suite
– לדוגמה, 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 בקידוד Base64 מסוג URI. תוספי ה-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 בקידוד Base64 מסוג DNSName. תוספי ה-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 חורג מ-16KB, המחרוזת client_cert_validated_chain_exceeded_size_limit מתווספת ל-client_cert_error, והערך של client_cert_chain מוגדר כמחרוזת ריקה. |
הרשאה, תנועה |
מגבלות
זמינות המאפיינים: לא כל המאפיינים נתמכים בכל סוגי התוספים. מידע נוסף מופיע בטבלה שבדף הזה.
הגדרות נדרשות: כדי לשלוח מאפיינים לתוסף, צריך לציין במפורש את המאפיינים בשדה
forwardAttributesבהגדרות התוסף. אם לא מציינים מאפיין בשדה הזה, מאזן העומסים לא מעביר את המאפיין הספציפי הזה לתוסף.מגבלות גודל: אפשר להגדיר עד 16 מאפיינים לתוסף יחיד.
מאפייני mTLS: מאפייני אישור הלקוח (
connection.client_cert_*) מאוכלסים בנתונים שמועברים לתוסף רק אם הפעלתם mTLS והלקוח מציג אישור.