יצירת כותרות בהתאמה אישית בשירותי קצה עורפי

בדף הזה מוסבר איך להגדיר כותרות בהתאמה אישית בשירותים לקצה העורפי שמשמשים את מאזן העומסים הקלאסי של אפליקציות (ALB).

כותרות מותאמות אישית של בקשות ותגובות מאפשרות לציין כותרות נוספות שמאזן העומסים יכול להוסיף לבקשות ולתגובות HTTP(S). בהתאם למידע שזוהה על ידי מאזן העומסים, הכותרות האלה יכולות לכלול את המידע הבא:

  • זמן האחזור ללקוח
  • המיקום הגיאוגרפי של כתובת ה-IP של הלקוח
  • הפרמטרים של חיבור ה-TLS

כותרות בקשה בהתאמה אישית נתמכות בשירותי קצה עורפי, וכותרות תגובה בהתאמה אישית נתמכות בשירותי קצה עורפי ובקטגוריות קצה עורפי.

כברירת מחדל, מאזן העומסים מוסיף כותרות מסוימות לכל הבקשות והתגובות מסוג HTTP(S)‎ שהוא מעביר כשרת proxy בין לקוחות לקצוות עורפיים. מידע נוסף זמין במאמר שרתי proxy לחלוקת העומס.

לפני שמתחילים

  • אם צריך, מעדכנים לגרסה העדכנית של Google Cloud CLI:

    gcloud components update
    

איך פועלות כותרות בהתאמה אישית

כותרות בהתאמה אישית פועלות באופן הבא:

  • כשמאזן העומסים מעביר בקשה לקצה העורפי, הוא מוסיף כותרות לבקשה.

    מאזן העומסים מוסיף כותרות של בקשות בהתאמה אישית רק לבקשות של הלקוח, ולא לבדיקות התקינות. אם ה-backend דורש כותרת ספציפית לאימות שחסרה בחבילת בדיקת התקינות, יכול להיות שבדיקת התקינות תיכשל.

  • מאזן העומסים מגדיר את כותרות התגובה לפני שהוא מחזיר את התגובות ללקוח.

כדי להפעיל כותרות בהתאמה אישית, צריך לציין רשימה של כותרות במאפיין של שירות לקצה העורפי או של קטגוריית קצה עורפי.

מציינים כל כותרת כמחרוזת header-name:header-value. הכותרת חייבת להכיל נקודתיים שמפרידות בין השם והערך של הכותרת.

שמות הכותרות צריכים לעמוד בדרישות הבאות:

  • שם הכותרת חייב להיות הגדרה תקינה של שם שדה כותרת HTTP (לפי RFC 7230).
  • שם הכותרת לא יכול להיות X-User-IP או CDN-Loop.
  • אסור להשתמש בכותרות הבאות מסוג hop-by-hop: ‏Keep-Alive, ‏Transfer-Encoding, ‏TE, ‏Connection, ‏Trailer ו-Upgrade. בהתאם ל-RFC 2616, הכותרות האלה לא נשמרות במטמונים ולא מופצות על ידי שרתי ה-proxy לחלוקת העומס.
  • שם הכותרת לא יכול להתחיל ב-X-Google, ‏X-Goog-, ‏X-GFE או X-Amz-.
  • שם של כותרת לא יכול להופיע יותר מפעם אחת ברשימת הכותרות שנוספו.

ערכי הכותרות צריכים לעמוד בדרישות הבאות:

  • ערך הכותרת חייב להיות הגדרה תקינה של שדה כותרת HTTP לפי RFC 7230, בלי צורות מיושנות.
  • ערך הכותרת יכול להיות ריק.
  • ערך הכותרת יכול לכלול משתנה אחד או יותר, מוקף בסוגריים מסולסלים, שמתרחב לערכים שמספק מאזן העומסים. מידע נוסף זמין במאמר משתנים שנתמכים בערכי כותרות.

לכלי שורת הפקודה gcloud יש דגל לציון כותרות של בקשות, שהוא --custom-request-header. חשוב להקיף את שם הכותרת ואת ערך הכותרת במירכאות בודדות ישרות (') עם הדגל הזה.

הפורמט הכללי של הדגל הוא:

    --custom-request-header='HEADER_NAME:[HEADER_VALUE]'

הדוגמה הבאה מציגה ערך של כותרת עם שני משתנים, client_region ו-client_city, שמוקפים בסוגריים מסולסלים.

    --custom-request-header='X-Client-Geo-Location:{client_region},{client_city}'

ללקוחות שנמצאים במאונטיין ויו, קליפורניה, מאזן העומסים מוסיף כותרת באופן הבא:

X-Client-Geo-Location:US,Mountain View

כדי ליצור שירות לקצה העורפי עם כותרות בהתאמה אישית, ראו הגדרת כותרות של בקשות בהתאמה אישית.

משתנים שנתמכים בערכי הכותרת

כדי להוסיף מטא-נתונים דינמיים ספציפיים לבקשה לכותרות בהתאמה אישית, אתם יכולים להשתמש במשתנים הבאים. כשמקיפים את המשתנים האלה בסוגריים מסולסלים ({}) בערך של כותרת, מאזן העומסים מרחיב אותם לערכים שלהם בזמן אמת, כמו המיקום הגיאוגרפי של הלקוח, פרמטרים של חיבור או סטטוס מטמון, לפני שהוא מעביר את הכותרת לקצה העורפי או ללקוח.

משתנה תיאור
cdn_cache_id קוד המיקום והמזהה של המכונה במטמון ששימשה למילוי הבקשה. זהו אותו ערך שמאוכלס בשדה jsonPayload.cacheId של יומני הבקשות של Cloud CDN ב-Logging.
cdn_cache_status סטטוס המטמון הנוכחי. הערכים יכולים להיות hit,‏ miss,‏ revalidated,‏ stale,‏ uncacheable או disabled לכל אובייקט שמוצג על ידי קצה עורפי שמופעל בו Cloud CDN.
origin_request_header משקף את הערך של הכותרת Origin בבקשה לתרחישי שימוש של שיתוף משאבים ממקורות שונים (CORS).
client_rtt_msec זמן השידור המשוער של הלוך ושוב בין מאזן העומסים לבין לקוח ה-HTTP(S), באלפיות השנייה. זהו הפרמטר של זמן הלוך ושוב מוחלק (SRTT) שנמדד על ידי מחסנית ה-TCP של מאזן העומסים, לפי RFC 2988. ‫Smoothed RTT הוא אלגוריתם שמטפל בשינויים ובחריגות שיכולים להתרחש במדידות RTT.
client_region המדינה (או האזור) שמשויכת לכתובת ה-IP של הלקוח. זהו קוד אזור של Unicode CLDR, כמו US או FR. (ברוב המדינות, הקודים האלה תואמים ישירות לקודי ISO-3166-2).
client_region_subdivision חלוקת משנה, למשל מחוז או מדינה, של המדינה שמשויכת לכתובת ה-IP של הלקוח. זהו מזהה של חלוקת משנה של Unicode CLDR, כמו USCA או CAON. (קודי ה-Unicode האלה נגזרים מחלוקות המשנה שמוגדרות בתקן ISO-3166-2).
client_city שם העיר שממנה נשלחה הבקשה, לדוגמה, Mountain View עבור מאונטיין ויו, קליפורניה. אין רשימה קנונית של ערכים חוקיים למשתנה הזה. שמות הערים יכולים להכיל אותיות, מספרים ורווחים מסוג US-ASCII, ואת התווים הבאים: !#$%&'*+-.^_`|~.
client_city_lat_long קו הרוחב וקו האורך של העיר שממנה נשלחה הבקשה, לדוגמה, 37.386051,-122.083851 לבקשה מ-Mountain View.
client_ip_address כתובת ה-IP של הלקוח. בדרך כלל, זוהי כתובת ה-IP של הלקוח, שהיא הכתובת הלפני אחרונה בכותרת X-Forwarded-For, אלא אם הלקוח משתמש בשרת proxy או שהכותרת X-Forwarded-For שונתה.
client_port יציאת המקור של הלקוח.
client_encrypted true אם החיבור בין הלקוח למאזן העומסים מוצפן (באמצעות HTTPS, ‏ HTTP/2 או HTTP/3), אחרת false.
client_protocol פרוטוקול ה-HTTP שמשמש לתקשורת בין הלקוח לבין מאזן העומסים. אחד מהערכים הבאים: HTTP/1.0, HTTP/1.1, HTTP/2 או HTTP/3.
device_request_type

המכשיר של הלקוח, נגזר מערכי הכותרת User-Agent.

אלה הערכים האפשריים: DESKTOP, GAME_CONSOLE, GAME_CONSOLE, MOBILE, SET_TOP_BOX, SMART_SPEAKER, SMART_TV, TABLET, UNDETERMINED, WEARABLE.

server_ip_address כתובת ה-IP של מאזן העומסים שאליו הלקוח מתחבר. זה יכול להיות שימושי כשכמה מאזני עומסים משתפים קצוות עורפיים משותפים. ‫הכתובת הזו זהה לכתובת ה-IP האחרונה בכותרת X-Forwarded-For.
server_port מספר היציאה של היעד שאליו הלקוח מתחבר.
tls_sni_hostname ציון שם השרת (כפי שמוגדר ב-RFC 6066), אם הוא סופק על ידי הלקוח במהלך לחיצת היד של TLS או QUIC. שם המארח מומר לאותיות קטנות וכל נקודה בסוף מוסרת.
tls_version גרסת ה-TLS שנקבעה בין הלקוח למאזן העומסים במהלך לחיצת היד של ה-SSL. ערכים אפשריים: TLSv1, TLSv1.1, TLSv1.2 ו-TLSv1.3. אם הלקוח מתחבר באמצעות QUIC במקום TLS, הערך הוא QUIC.
tls_cipher_suite סט האלגוריתמים להצפנה (cipher suite) שנקבע במהלך לחיצת היד בפרוטוקול TLS. הערך הוא ארבע ספרות הקסדצימליות שמוגדרות על ידי IANA TLS Cipher Suite Registry, לדוגמה, 009C עבור TLS_RSA_WITH_AES_128_GCM_SHA256. הערך הזה ריק ב-QUIC ובחיבורים לא מוצפנים של לקוחות.
tls_ja3_fingerprint טביעת אצבע של JA3 TLS/SSL אם הלקוח מתחבר באמצעות HTTPS,‏ HTTP/2 או HTTP/3.
tls_ja4_fingerprint טביעת אצבע של JA4 TLS/SSL אם הלקוח מתחבר באמצעות HTTPS,‏ HTTP/2 או HTTP/3.
user_agent_family

סוג הדפדפן של הלקוח, שנגזר מערכי הכותרת User-Agent.

אלה הערכים האפשריים: APPLE, APPLEWEBKIT, BLACKBERRY, DOCOMO, GECKO, GOOGLE, KHTML, KOREAN, MICROSOFT, MSIE, NETFRONT, NOKIA, OBIGO, OPERA, OPENWAVE, OTHER, POLARIS, SEMC, SMIT, TELECA, USER_DEFINED.

asn מספר המערכת האוטונומית (ASN) שמשויך לכתובת ה-IP של הלקוח.
cloud_trace_id מזהה המעקב שחולץ (או נוצר) מכותרת בקשת ה-HTTP.
hostname שם המארח המקורי שצוין על ידי הלקוח בכותרת של בקשת ה-HTTP‏ Host. הערך מומר לאותיות קטנות, וכל נקודה בסוף מוסרת.

אם מאזן העומסים לא יכול לקבוע את הערכים של המשתנים, הוא מרחיב אותם למחרוזות ריקות. לדוגמה:

  • משתנים של מיקום גיאוגרפי כשמיקום כתובת ה-IP לא ידוע
  • פרמטרים של TLS כשלא משתמשים ב-TLS
  • הערך של {origin_request_header} כשהבקשה לא כוללת כותרת Origin
  • הכותרת {cdn_cache_status} כשהיא נכללת ב-request header

הערכים הגיאוגרפיים (אזורים, חלוקות משנה וערים) הם אומדנים שמבוססים על כתובת ה-IP של הלקוח. מדי פעם Google מעדכנת את הנתונים שמספקים את הערכים האלה כדי לשפר את הדיוק ולשקף שינויים גיאוגרפיים ופוליטיים. גם אם הכותרת המקורית של X-Forwarded-For מכילה נתוני מיקום תקינים, Google מעריכה את מיקומי הלקוחות באמצעות פרטי כתובת ה-IP של המקור שכלולים בחבילות שהתקבלו על ידי מאזן העומסים.

כותרות שמתווספות על ידי מאזן העומסים מחליפות את הכותרות הקיימות עם אותו שם. שמות הכותרות לא תלויי-רישיות. כששמות של כותרות מועברים לקצה העורפי של HTTP/2, פרוטוקול HTTP/2 מקודד את שמות הכותרות באותיות קטנות.

בערכי הכותרות, רווחים לבנים בתחילת הטקסט ובסופו לא משמעותיים ולא מועברים לקצה העורפי. כדי לאפשר סוגריים מסולסלים בערכי הכותרות, מאזן העומסים מפרש שני סוגריים מסולסלים פותחים ({{) כסוגר פותח אחד ({), ושני סוגריים מסולסלים סוגרים (}}) כסוגר סוגר אחד (}).

כותרות מותאמות אישית של Mutual TLS (mTLS)

משתני הכותרת הנוספים הבאים זמינים אם מוגדר Mutual TLS‏ (mTLS) ב-TargetHttpsProxy של מאזן העומסים.

משתנה תיאור
client_cert_present true אם הלקוח סיפק אישור במהלך לחיצת היד בפרוטוקול TLS, אחרת false.
client_cert_chain_verified true אם שרשרת אישורי הלקוח מאומתת מול TrustStore שהוגדר, אחרת false.
client_cert_error מחרוזות מוגדרות מראש שמייצגות את תנאי השגיאה. למידע נוסף על מחרוזות השגיאה, ראו מצבי אימות לקוח mTLS.
client_cert_sha256_fingerprint טביעת אצבע SHA-256 בקידוד Base64 של אישור הלקוח.
client_cert_serial_number המספר הסידורי של אישור הלקוח. אם המספר הסידורי ארוך מ-50 בייטים, הערך של client_cert_error מוגדר כ-client_cert_serial_number_exceeded_size_limit והמספר הסידורי מוגדר כמחרוזת ריקה.
client_cert_spiffe_id

מזהה SPIFFE משדה השם החלופי של הבעלים (SAN). אם הערך לא תקין או חורג מ-2,048 בייטים, מזהה ה-SPIFFE מוגדר כמחרוזת ריקה.

אם מזהה ה-SPIFFE ארוך מ-2,048 בייטים, הערך של client_cert_error מוגדר כ-client_cert_spiffe_id_exceeded_size_limit.

client_cert_uri_sans

רשימה מופרדת בפסיקים בקידוד Base64 של תוספי SAN מסוג URI. תוספי ה-SAN מחולצים מאישור הלקוח. מזהה ה-SPIFFE לא נכלל בשדה client_cert_uri_sans.

אם הערך של client_cert_uri_sans ארוך מ-512 בייטים, הערך של client_cert_error מוגדר כ-client_cert_uri_sans_exceeded_size_limit, והרשימה המופרדת בפסיקים מוגדרת כמחרוזת ריקה.

client_cert_dnsname_sans

רשימה מופרדת בפסיקים בקידוד Base64 של תוספי SAN מסוג DNSName. תוספי ה-SAN מחולצים מאישור הלקוח.

אם הערך של client_cert_dnsname_sans ארוך מ-512 בייטים, הערך של client_cert_error מוגדר כ-client_cert_dnsname_sans_exceeded_size_limit, והרשימה המופרדת בפסיקים מוגדרת כמחרוזת ריקה.

client_cert_valid_not_before חותמת זמן (פורמט מחרוזת תאריך RFC 3339) שלפניה אישור הלקוח לא תקף. לדוגמה, 2022-07-01T18:05:09+00:00.
client_cert_valid_not_after חותמת זמן (פורמט מחרוזת תאריך RFC 3339) שאחריה אישור הלקוח לא תקף. לדוגמה, 2022-07-01T18:05:09+00:00.
client_cert_issuer_dn

קידוד DER בקידוד Base64 של שדה המנפיק המלא מהאישור.

אם הערך של client_cert_issuer_dn ארוך מ-512 בייטים, המחרוזת client_cert_issuer_dn_exceeded_size_limit מתווספת ל-client_cert_error, והערך של client_cert_issuer_dn מוגדר כמחרוזת ריקה.

client_cert_subject_dn

קידוד DER בקידוד Base64 של שדה הנושא המלא מהאישור.

אם הערך של client_cert_subject_dn ארוך מ-512 בייטים, המחרוזת client_cert_subject_dn_exceeded_size_limit מתווספת ל-client_cert_error, והערך של client_cert_subject_dn מוגדר כמחרוזת ריקה.

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 מוגדר כמחרוזת ריקה.

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 מוגדר כמחרוזת ריקה.

הגדרת כותרות של בקשות בהתאמה אישית

המסוף

כדי להוסיף כותרות של בקשות בהתאמה אישית לשירות קיים לקצה העורפי:

  1. נכנסים לדף הסיכום של איזון העומסים.
    כניסה לדף Load balancing
  2. לוחצים על Backends.
  3. לוחצים על השם של שירות לקצה העורפי.
  4. לוחצים על Edit ‏.
  5. לוחצים על Advanced configurations (Session affinity, connection draining timeout, security policies).
  6. בקטע כותרות של בקשות בהתאמה אישית, לוחצים על הוספת כותרת.
  7. מזינים את Header name ואת Header value של ה-request header המותאם אישית.
  8. מזינים כותרות נוספות של בקשות בהתאמה אישית.
  9. לוחצים על Save.

כדי להסיר כותרת בקשה בהתאמה אישית משירות לקצה העורפי:

  1. נכנסים לדף הסיכום של איזון העומסים.
    כניסה לדף Load balancing
  2. לוחצים על Backends.
  3. לוחצים על השם של שירות לקצה העורפי.
  4. לוחצים על Edit ‏.
  5. לוחצים על Advanced configurations (Session affinity, connection draining timeout, security policies).
  6. לוחצים על הסמל X לצד השם של ה-request header בהתאמה אישית שרוצים להסיר.
  7. לוחצים על Save.

gcloud

כדי לציין כותרות של בקשות בהתאמה אישית, משתמשים בפקודה gcloud compute backend-services create או gcloud compute backend-services update עם הדגל --custom-request-header.

כדי ליצור שירות לקצה העורפי עם כותרות של בקשות בהתאמה אישית:

gcloud compute backend-services create BACKEND_SERVICE_NAME \
    --global-health-checks \
    --global \
    --protocol HTTPS \
    --health-checks https-basic-check \
    --custom-request-header='HEADER_NAME:[HEADER_VALUE]'

כדי להוסיף עוד כותרות לבקשה, מציינים שם וערך ייחודיים לכותרת על ידי חזרה על הדגל --custom-request-header.

כדי להוסיף כותרות בהתאמה אישית לשירות קיים לקצה העורפי:

gcloud compute backend-services update BACKEND_SERVICE_NAME \
    --global \
    --custom-request-header='HEADER_1_NAME:[HEADER_1_VALUE]' \
    --custom-request-header='HEADER_2_NAME:[HEADER_2_VALUE]'

השלב הקודם מחליף את כל הכותרות שכבר קיימות בשירות לקצה העורפי בכותרות הבקשה שציינתם בפקודה.

כדי להסיר את כל הכותרות משירות לקצה העורפי:

gcloud compute backend-services update BACKEND_SERVICE_NAME \
    --global \
    --no-custom-request-headers

API

שולחים בקשת PATCH ל-method‏ backendServices.patch:

PATCH https://compute./compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE_NAME
"customRequestHeaders": [
   "client_city:Mountain View"
]

Terraform

במאמר דוגמאות ל-Terraform למאזני עומסים חיצוניים גלובליים של אפליקציות מופיע סקריפט של Terraform שיוצר מאזן עומסים של אפליקציות עם כותרות בהתאמה אישית.

הגדרת כותרות תגובה בהתאמה אישית

המסוף

כדי להוסיף כותרות תגובה בהתאמה אישית לשירות קצה עורפי קיים:

  1. נכנסים לדף הסיכום של איזון העומסים.
    כניסה לדף Load balancing
  2. לוחצים על Backends.
  3. לוחצים על השם של שירות לקצה העורפי.
  4. לוחצים על Edit ‏.
  5. לוחצים על Advanced configurations (Session affinity, connection draining timeout, security policies).
  6. בקטע כותרות תגובה בהתאמה אישית, לוחצים על הוספת כותרת.
  7. מזינים את שם הכותרת ואת ערך הכותרת של כותרת התגובה בהתאמה אישית.
  8. מזינים כותרות תגובה נוספות בהתאמה אישית.
  9. לוחצים על Save.

כדי להסיר כותרת תגובה בהתאמה אישית משירות לקצה העורפי:

  1. נכנסים לדף הסיכום של איזון העומסים.
    כניסה לדף Load balancing
  2. לוחצים על Backends.
  3. לוחצים על השם של שירות לקצה העורפי.
  4. לוחצים על Edit ‏.
  5. לוחצים על Advanced configurations (Session affinity, connection draining timeout, security policies).
  6. לוחצים על הסמל X לצד השם של כותרת התגובה בהתאמה אישית שרוצים להסיר.
  7. לוחצים על Save.

gcloud

בשירותים לקצה העורפי, משתמשים בפקודה gcloud compute backend-services create או gcloud compute backend-services update עם הדגל --custom-response-header.

לקטגוריות קצה עורפי, משתמשים בפקודה gcloud compute backend-buckets create או gcloud compute backend-buckets update עם הדגל --custom-response-header.

gcloud compute backend-services (create | update) BACKEND_SERVICE_NAME
    --custom-response-header='HEADER_NAME:[HEADER_VALUE]'
gcloud compute backend-buckets (create | update) BACKEND_BUCKET_NAME
    --custom-response-header='HEADER_NAME:[HEADER_VALUE]'

דוגמה עם הכותרת X-Frame-Options:

gcloud compute backend-buckets update gaming-lab \
    --custom-response-header='X-Frame-Options: DENY'

דוגמה עם הכותרת Strict-Transport-Security:

בדוגמה הבאה מוסבר איך להוסיף כותרת תגובה בהתאמה אישית כדי לתמוך ב-HTTP Strict Transport Security‏ (HSTS):

gcloud compute backend-services update customer-bs-name \
    --global \
    --custom-response-header='Strict-Transport-Security: max-age=63072000'

API

לקטגוריות של קצה עורפי, משתמשים בקריאה ל-API‏ Method: backendBuckets.insert או Method: backendBuckets.update.

בשירותים לקצה העורפי, משתמשים בקריאה ל-API‏ Method: backendServices.insert או Method: backendServices.update.

משתמשים באחת מהקריאות הבאות ל-API:

POST https://compute./compute/v1/projects/PROJECT_ID/global/backendBuckets

PUT https://compute./compute/v1/projects/PROJECT_ID/global/backendBuckets/BACKEND_BUCKET_NAME

POST https://compute./compute/v1/projects/PROJECT_ID/global/backendServices

PUT https://compute./compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE_NAME

מוסיפים את קטע הקוד הבא לגוף הבקשה ב-JSON:

"customResponseHeaders":HEADER_NAME:[HEADER_VALUE]

Terraform

במאמר דוגמאות ל-Terraform למאזני עומסים חיצוניים גלובליים של אפליקציות מופיע סקריפט של Terraform שיוצר מאזן עומסים של אפליקציות עם כותרות בהתאמה אישית.

הגדרת כותרות תגובה ל-Cloud Storage

אם אתם צריכים להגדיר כותרות HTTP בתגובות מ-Cloud Storage, כמו מדיניות משאבים ממקורות שונים, כותרות X-Frame-Options או X-XSS-Protection, ב-Google Cloud יש אפשרות להשתמש בכותרות בהתאמה אישית ל-Cloud CDN עם Cloud Storage. כדי לעשות את זה, אפשר להגדיר כותרות בהתאמה אישית ברמת קטגוריית הקצה העורפי של מאזן העומסים, כמו שמתואר בדף הזה.

כותרות תגובה בהתאמה אישית שמוגדרות ברמת קטגוריית הקצה העורפי מתווספות לתגובות רק אם בקשת הלקוח נשלחת לכתובת ה-IP של מאזן העומסים. כותרות בהתאמה אישית לא מתווספות לתגובות אם הבקשה של הלקוח נשלחה ישירות ל-Cloud Storage API.

שימוש בכותרות בהתאמה אישית ב-Google Cloud Armor

אתם יכולים להגדיר כותרת תגובה בהתאמה אישית עם המשתנה {cloud_trace_id} בשירות לקצה העורפי, כדי להחזיר מזהה מעקב ייחודי ללקוחות, גם כשבקשה נדחית על ידי מדיניות אבטחה של Cloud Armor. אתם יכולים להשתמש במזהה המעקב הזה כדי לחפש את הרשומה המתאימה ביומן הבקשות ב-Logging. למידע נוסף, קראו את המאמר זיהוי בקשות חסומות ביומנים וקישור ביניהן.

כשמגדירים מדיניות אבטחה ב-Cloud Armor, אפשר גם להגדיר את Cloud Armor כך שיוסיף כותרת בקשה וערך בהתאמה אישית. אם מדיניות האבטחה של Cloud Armor מוגדרת להוסיף את אותו שם של כותרת בהתאמה אישית כמו הכותרות בהתאמה אישית של מאזן העומסים החיצוני הגלובלי של אפליקציות (ALB) או של מאזן העומסים הקלאסי של אפליקציות (ALB), ערך הכותרת שצוין במדיניות האבטחה של Cloud Armor יוחלף בערך שמאוכלס על ידי מאזן העומסים. אם אתם לא רוצים שהמדיניות של Cloud Armor תוחלף, ודאו שאתם לא משתמשים באותו שם.

מגבלות

המגבלות הבאות חלות על כותרות בהתאמה אישית שמשמשות במאזני עומסים גלובליים:

  • הגודל הכולל של כל כותרות הבקשות בהתאמה אישית (שילוב של שם וערך, לפני הרחבת המשתנה) לכל שירות לקצה העורפי לא יכול לחרוג מ-8KB או מ-16 כותרות של בקשות.
  • הגודל הכולל של כל כותרות התגובה בהתאמה אישית (שילוב של שם וערך, לפני הרחבת המשתנה) לכל שירות לקצה העורפי לא יכול לחרוג מ-8KB או מ-16 כותרות תגובה.

המאמרים הבאים