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

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

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

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

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

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

כותרות מותאמות אישית במיפוי כתובות URL

מאזני עומסים גלובליים חיצוניים של אפליקציות תומכים בתכונה דומה לשינוי כותרות במפת URL. אפשר לנהל כותרות בהתאמה אישית בשירותי קצה עורפי (כפי שמתואר בדף הזה), אבל מומלץ להוסיף את השינויים בכותרות למפת URL כדי שכל השינויים בכותרות יתבצעו במקום אחד.

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

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

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

    gcloud components update
    

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

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

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

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

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

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

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

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

  • שם הכותרת חייב להיות הגדרה תקינה של שם שדה כותרת HTTP (לפי RFC 7230).
  • אפשר להגדיר את הכותרת Host, אבל היא כפופה למגבלות מסוימות.
  • שם הכותרת לא יכול להיות authority. זוהי מילת מפתח מיוחדת ששמורה ל-Google Cloud. אי אפשר לשנות את הכותרת הזו במאזני עומסים מבוססי Envoy, כמו מאזן העומסים הגלובלי החיצוני של אפליקציות. במקום זאת, מומלץ ליצור כותרות מותאמות אישית אחרות כדי לא להפריע לשמות כותרות שמורים.
  • שם הכותרת לא יכול להיות 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

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

כותרות מארח

כשמגדירים כותרת Host בהתאמה אישית באמצעות מאזן עומסים חיצוני גלובלי של אפליקציות (ALB), חלות ההגבלות הבאות:

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

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

המשתנים הבאים יכולים להופיע בערכים של כותרות בהתאמה אישית.

משתנה תיאור
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. ה-RTT המוחלק הוא אלגוריתם שמטפל בשינויים ובאנומליות שיכולים להתרחש במדידות של ה-RTT.
client_region המדינה (או האזור) שמשויכת לכתובת ה-IP של הלקוח. זהו קוד אזור Unicode CLDR, כמו US או FR. (ברוב המדינות, הקודים האלה תואמים ישירות לקודי ISO-3166-2).
client_region_subdivision חלוקת משנה, למשל מחוז או מדינה, של המדינה שמשויכת לכתובת ה-IP של הלקוח. זהו מזהה חלוקה משנית של CLDR ב-Unicode, כמו USCA או CAON. (קודי ה-Unicode האלה נגזרים מחלוקות המשנה שמוגדרות בתקן ISO-3166-2).
client_city שם העיר שממנה נשלחה הבקשה, לדוגמה, Mountain View למאונטיין ויו, קליפורניה. אין רשימה קנונית של ערכים תקינים למשתנה הזה. שמות הערים יכולים להכיל אותיות, מספרים, רווחים ותווים מסוג US-ASCII, וגם את התווים הבאים: !#$%&'*+-.^_`|~.
client_city_lat_long קו הרוחב וקו האורך של העיר שממנה נשלחה הבקשה, לדוגמה, 37.386051,-122.083851 לבקשה שנשלחה ממאונטיין ויו.
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, למשל, 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.

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

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

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

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

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

כותרות מותאמות אישית של TLS הדדי

אם מוגדר 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). אם הערך לא תקין או שהוא גדול מ-2048 בייט, מזהה ה-SPIFFE מוגדר כמחרוזת ריקה.

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

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, והרשימה המופרדת בפסיקים מוגדרת כמחרוזת ריקה.

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 של השדה המלא Issuer (מונפק על ידי) מהאישור.

אם המחרוזת 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 של השדה Subject המלא מהאישור.

אם המחרוזת 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. עוברים לדף סיכום איזון העומסים.
    לדף איזון עומסים
  2. לוחצים על Backends.
  3. לוחצים על השם של שירות קצה עורפי.
  4. לוחצים על Edit.
  5. לוחצים על הגדרות מתקדמות (זיקה לסשן, זמן להשלמת תהליך, מדיניות אבטחה).
  6. בקטע Custom request headers (כותרות מותאמות אישית של בקשות), לוחצים על Add header (הוספת כותרת).
  7. מזינים את שם הכותרת ואת ערך הכותרת של כותרת הבקשה המותאמת אישית.
  8. מזינים כותרות נוספות של בקשות בהתאמה אישית.
  9. לוחצים על Save.

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

  1. עוברים לדף סיכום איזון העומסים.
    לדף איזון עומסים
  2. לוחצים על Backends.
  3. לוחצים על השם של שירות קצה עורפי.
  4. לוחצים על Edit.
  5. לוחצים על הגדרות מתקדמות (זיקה לסשן, זמן להשלמת תהליך, מדיניות אבטחה).
  6. לוחצים על הסמל X לצד השם של כותרת הבקשה המותאמת שרוצים להסיר.
  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.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE_NAME
"customRequestHeaders": [
   "client_city:Mountain View"
]

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

המסוף

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

  1. עוברים לדף סיכום איזון העומסים.
    לדף איזון עומסים
  2. לוחצים על Backends.
  3. לוחצים על השם של שירות קצה עורפי.
  4. לוחצים על Edit.
  5. לוחצים על הגדרות מתקדמות (זיקה לסשן, זמן להשלמת תהליך, מדיניות אבטחה).
  6. בקטע Custom response headers (כותרות תגובה בהתאמה אישית), לוחצים על Add header (הוספת כותרת).
  7. מזינים את שם הכותרת ואת ערך הכותרת של כותרת התגובה המותאמת אישית.
  8. מזינים כותרות תגובה מותאמות אישית נוספות.
  9. לוחצים על Save.

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

  1. עוברים לדף סיכום איזון העומסים.
    לדף איזון עומסים
  2. לוחצים על Backends.
  3. לוחצים על השם של שירות קצה עורפי.
  4. לוחצים על Edit.
  5. לוחצים על הגדרות מתקדמות (זיקה לסשן, זמן להשלמת תהליך, מדיניות אבטחה).
  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.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets

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

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

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

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

"customResponseHeaders":HEADER_NAME:[HEADER_VALUE]

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

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

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

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

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

מגבלות

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

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