הגבלת הקצב של יצירת הבקשות באמצעות Cloud Armor

1. מבוא

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

Cloud Armor היא מערכת הזיהוי המבוזרת של Google מסוג מניעת שירות (DoS) וחומת אש של אפליקציות אינטרנט (WAF). Cloud Armor משולב בצורה הדוקה עם מאזן העומסים של Google Cloud HTTP, ומאפשר לכם לבדוק תעבורת נתונים נכנסת לאיתור בקשות לא רצויות. התכונה של הגבלת הקצב של יצירת הבקשות בשירות הזה מאפשרת להגביל את תעבורת הנתונים למשאבים בקצה העורפי על סמך נפח הבקשות, ומונעת מתנועה לא רצויה לצרוך משאבים ברשת של הענן הווירטואלי הפרטי (VPC).

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

2e1b99d22f4f32a.png

מה תלמדו

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

מה צריך להכין

  • רשתות בסיסיות וידע על HTTP
  • ידע בסיסי בשורת הפקודה Unix/Linux

2. הגדרה ודרישות

הגדרת סביבה בקצב עצמאי

  1. נכנסים למסוף Google Cloud ויוצרים פרויקט חדש או עושים שימוש חוזר בפרויקט קיים. אם אין לכם עדיין חשבון Gmail או חשבון Google Workspace, עליכם ליצור חשבון.

96a9c957bc475304.png

b9a10ebdf5b5a448.png

a1e3c01a38fa61c2.png

  • Project name הוא השם המוצג של המשתתפים בפרויקט. זו מחרוזת תווים שלא נעשה בה שימוש ב-Google APIs, ואפשר לעדכן אותה בכל שלב.
  • Project ID חייב להיות ייחודי בכל הפרויקטים ב-Google Cloud ואי אפשר לשנות אותו (אי אפשר לשנות אותו אחרי שמגדירים אותו). מסוף Cloud יוצר מחרוזת ייחודית באופן אוטומטי; בדרך כלל לא מעניין אותך מה זה. ברוב ה-Codelabs תצטרכו להפנות אל מזהה הפרויקט (ובדרך כלל הוא מזוהה כ-PROJECT_ID), כך שאם הוא לא מוצא חן בעיניכם, תוכלו ליצור פרויקט אקראי אחר או לנסות בעצמכם ולבדוק אם הוא זמין. ואז המכשיר 'קפוא' לאחר יצירת הפרויקט.
  • יש ערך שלישי, Project Number, שחלק מממשקי ה-API משתמשים בו. מידע נוסף על כל שלושת הערכים האלה זמין במסמכי התיעוד.
  1. בשלב הבא צריך להפעיל את החיוב במסוף Cloud כדי להשתמש במשאבים או בממשקי API של Cloud. מעבר ב-Codelab הזה לא אמור לעלות הרבה, אם בכלל. כדי להשבית את המשאבים ולא לצבור חיובים מעבר למדריך הזה, פועלים לפי ההנחיות למחיקת המשאבים. בסוף ה-Codelab. משתמשים חדשים ב-Google Cloud זכאים להצטרף לתוכנית תקופת ניסיון בחינם בשווי 1,200 ש"ח.

הפעלת Cloud Shell

אומנם אפשר להפעיל את Google Cloud מרחוק מהמחשב הנייד, אבל ב-Codelab הזה משתמשים ב-Google Cloud Shell, סביבת שורת הפקודה שפועלת ב-Cloud.

ממסוף GCP, לוחצים על הסמל של Cloud Shell בסרגל הכלים שבפינה השמאלית העליונה:

bce75f34b2c53987.png

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

f6ef2b5f13479f3a.png

למכונה הווירטואלית הזו נטען כל כלי הפיתוח הדרושים. יש בה ספריית בית בנפח מתמיד של 5GB והיא פועלת ב-Google Cloud, מה שמשפר משמעותית את ביצועי הרשת והאימות. כל העבודה בשיעור ה-Lab הזה יכולה להתבצע באמצעות דפדפן בלבד.

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

ב-Inside Cloud Shell, מוודאים שמזהה הפרויקט מוגדר

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
PROJECT_ID=[YOUR-PROJECT-NAME]
echo $PROJECT_ID

הפעלת ממשקי API

הפעלת כל השירותים הנחוצים

gcloud services enable compute.googleapis.com
gcloud services enable logging.googleapis.com
gcloud services enable monitoring.googleapis.com

3. צריך להגדיר כללי חומת אש כדי לאפשר תנועת HTTP לקצוות עורפיים

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

אנחנו נשתמש ברשת ה-VPC ברירת המחדל שנוצרה בפרויקט שלכם. יוצרים כלל של חומת אש כדי לאפשר תנועת HTTP לקצה העורפי. בדיקות תקינות קובעות אילו מופעים של מאזן עומסים יכולים לקבל חיבורים חדשים. בשביל איזון עומסים ב-HTTP, הגשות בדיקת התקינות למכונות עם איזון עומסים מגיעות מכתובות בטווחים 130.211.0.0/22 ו-35.191.0.0/16. כללי חומת האש של VPC חייבים לאפשר את החיבורים האלה. כמו כן, מאזני העומסים מתקשרים לקצה העורפי באותו טווח IP.

  1. במסוף Cloud, נכנסים לתפריט הניווט ( mainmenu.png) > רשת VPC > חומת אש.

dbdf491e6d7863f3.png

  1. שימו לב לכללים הקיימים של חומת האש ICMP, פנימי, RDP ו-SSH.כל פרויקט ב-Google Cloud מתחיל ברשת ברירת המחדל ובכללי חומת האש האלה.
  2. לוחצים על יצירת כלל חומת אש.
  3. מגדירים את הערכים הבאים ומשאירים את הערכים האחרים בברירת המחדל:

נכס

ערך (יש להקליד ערך או לבחור אפשרות כפי שצוין)

שם

default-allow-health-check

רשת

ברירת מחדל

יעדים

תגי יעד שצוינו

תגי יעד

http-server

מסנן המקור

טווחי IP

טווחי IP של המקור

22.130.211.0.0/22, 35.191.0.0/16

פרוטוקולים ויציאות

פרוטוקולים ויציאות מוגדרים, ולאחר מכן בדיקת tcp

  1. לוחצים על יצירה.

לחלופין, אם משתמשים בשורת הפקודה של gcloud. בהמשך מופיעה הפקודה:

gcloud compute firewall-rules create default-allow-health-check --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp --source-ranges=130.211.0.0/22,35.191.0.0/16 --target-tags=http-server

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

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

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

תבנית של מכונה היא משאב API שבו משתמשים כדי ליצור מכונות וירטואליות וקבוצות של מכונות מנוהלות. תבניות של מכונות מגדירות את סוג המכונה, קובץ אימג' של דיסק אתחול, רשת משנה, תוויות ומאפייני מכונות אחרים. יוצרים תבנית אחת של מכונה בשביל us-east1 ותבנית אחת בשביל europe-west1.

  1. במסוף Cloud, נכנסים לתפריט הניווט ( mainmenu.png) > Compute Engine > Instance templates (תבניות של מכונות) ואז לוחצים על Create instance template (יצירת תבנית למופע).
  2. בשדה Name, מקלידים us-east1-template.
  3. בשביל סדרות, בוחרים באפשרות N1.
  4. לוחצים על Networking, Disks, Security, Management , Sole-Tenancy.

b60e2a44c3e4d50e.png

  1. מעבר לקטע ניהול -

ee57f20ce55298fd.png

  1. בקטע מטא-נתונים, לוחצים על הוספת פריט ומציינים את הפרטים הבאים:

מקש

ערך

startup-script-url

gs://cloud-training/gcpnet/httplb/startup.sh

  1. לוחצים על Networking.
  2. מגדירים את הערכים הבאים ומשאירים את כל שאר הערכים בברירת המחדל –

נכס

ערך (יש להקליד ערך או לבחור אפשרות כפי שצוין)

רשת (בממשקי רשת)

ברירת מחדל

רשת משנה (בממשקי רשת)

ברירת מחדל (us-east1)

תגי רשת

http-server

  1. לוחצים על יצירה.
  2. ממתינים עד שתבנית המכונה תיווצר.

עכשיו יוצרים תבנית של מכונה נוספת בשביל subnet-b על ידי העתקת הקוד us-east1-template:

  1. לוחצים על us-east1-template ואז לוחצים על האפשרות Copy (העתקה) בחלק העליון.
  2. בשדה Name, כותבים europe-west1-template.
  3. לוחצים על Networking, Disks, Security, Management , Sole-Tenancy.
  4. לוחצים על Networking.
  5. בקטע Network Interfaces,עורכים את ממשק ברירת המחדל. בשביל Subnet, בוחרים באפשרות default (europe-west1).
  6. לוחצים על יצירה.

יצירת קבוצות של מופעי מכונה מנוהלים

יוצרים קבוצת מופעי מכונה מנוהלים ב-us-east1 וקבוצה אחת ב-europe-west1.

  1. עדיין ב-Compute Engine, לוחצים על Instance groups בתפריט השמאלי.

72319de055de3942.png

  1. לוחצים על Create instance group. בוחרים באפשרות קבוצת מופעי מכונה מנוהלים חדשה (ללא מצב).
  2. מגדירים את הערכים הבאים ומשאירים את הערכים האחרים בברירת המחדל:

נכס

ערך (יש להקליד ערך או לבחור אפשרות כפי שצוין)

שם

us-east1-mig

מיקום

מספר אזורים

אזור

us-east1

תבנית של מכונה

us-east1-template [תבנית]

התאמה לעומס (autoscaling) > מדיניות להתאמה לעומס (autoscaling) > לוחצים על סמל העיפרון > סוג המדד

ניצול המעבד (CPU)

יעד ניצול המעבד (CPU)

80, לוחצים על 'סיום'.

תקופת צינון

45

מספר מופעים מינימלי

1

מספר המופעים המקסימלי

5

  1. לוחצים על יצירה.

עכשיו חוזרים על אותו תהליך כדי ליצור קבוצת מכונה שנייה עבור europe-west1-mig ב-europe-west1:

  1. לוחצים על Create Instance group.
  2. מגדירים את הערכים הבאים ומשאירים את הערכים האחרים בברירת המחדל:

נכס

ערך (יש להקליד ערך או לבחור אפשרות כפי שצוין)

שם

europe-west1-mig

מיקום

מספר אזורים

אזור

europe-west1

תבנית של מכונה

europe-west1-template

התאמה לעומס (autoscaling) > מדיניות להתאמה לעומס (autoscaling) > לוחצים על סמל העיפרון > סוג המדד

ניצול המעבד (CPU)

יעד ניצול המעבד (CPU)

80, לוחצים על 'סיום'.

תקופת צינון

45

מספר מופעים מינימלי

1

מספר המופעים המקסימלי

5

  1. לוחצים על יצירה.

5. הגדרת מאזן עומסים של HTTP

מגדירים את מאזן העומסים של HTTP כדי לאזן את התנועה בין שני הקצוות העורפיים (us-east1-mig ב-us-east1 ו-europe-west1-mig ב-europe-west1), כפי שמוצג בתרשים הרשת:

2e1b99d22f4f32a.png

התחלת ההגדרה

  1. במסוף Cloud, לוחצים על תפריט הניווט ( mainmenu.png) > לוחצים על שירותי רשת > Load balancing (איזון עומסים) ואז לוחצים על Create load balancer).
  2. בקטע HTTP(S) Load Balancing, לוחצים על Start configuration.

8197d8f041e8eafd.png

  1. בוחרים את From Internet to my VMs (מהאינטרנט אל ה-VMs שלי), Classic HTTP(S) Load Balancer ולוחצים על Continue (המשך).
  2. מגדירים את Name כ-http-lb.

הגדרת הקצה העורפי

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

  1. לוחצים על Backend configuration.
  2. עבור שירותים לקצה העורפי קטגוריות קצה עורפי, לוחצים על Create a backend service.
  3. מגדירים את הערכים הבאים ומשאירים את הערכים האחרים בברירת המחדל:

נכס

ערך (יש לבחור אפשרות כפי שצוין)

שם

http-backend

קבוצת מופעים

us-east1-mig

מספרי יציאות

80

מצב איזון

דירוג

RPS מקסימלי

50 (לכל מופע)

קיבולת

100

  1. לוחצים על סיום.
  2. לוחצים על הוספת קצה עורפי.
  3. מגדירים את הערכים הבאים ומשאירים את הערכים האחרים בברירת המחדל:

נכס

ערך (יש לבחור אפשרות כפי שצוין)

קבוצת מופעים

europe-west1-mig

מספרי יציאות

80

מצב איזון

שימוש

שימוש מקסימלי בקצה העורפי

80

קיבולת

100

  1. לוחצים על סיום.
  2. בקטע בדיקת תקינות, בוחרים באפשרות יצירה של בדיקת תקינות.

199239806577ceac.png

  1. מגדירים את הערכים הבאים ומשאירים את הערכים האחרים בברירת המחדל:

נכס

ערך (יש לבחור אפשרות כפי שצוין)

שם

http-health-check

פרוטוקול

TCP

יציאה

80

20f7af9fce140475.png

  1. לוחצים על שמירה.
  2. מסמנים את התיבה Enable Logging.
  3. מגדירים את תדירות הדגימה ל-1:

dab4b15c13917786.png

  1. לוחצים על Create כדי ליצור את השירות לקצה העורפי.

2db64614f855f239.png

הגדרת הקצה הקדמי

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

  1. לוחצים על Frontend configuration.
  2. מציינים את הערכים הבאים, ומשאירים את ברירות המחדל של כל שאר הערכים:

נכס

ערך (יש להקליד ערך או לבחור אפשרות כפי שצוין)

פרוטוקול

HTTP

גרסת IP

IPv4

כתובת IP

זמנית

יציאה

80

  1. לוחצים על סיום.
  2. לוחצים על הוספת כתובת IP ויציאה של Frontend.
  3. מציינים את הערכים הבאים, ומשאירים את ברירות המחדל של כל שאר הערכים:

נכס

ערך (יש להקליד ערך או לבחור אפשרות כפי שצוין)

פרוטוקול

HTTP

גרסת IP

IPv6

כתובת IP

זמנית

יציאה

80

  1. לוחצים על סיום.

בדיקה ויצירה של מאזן העומסים של HTTP

  1. לוחצים על Review and finalize.

2c88715aa5f22800.png

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

b2fffef90be309f0.png

  1. לוחצים על Create.
  2. ממתינים ליצירת מאזן העומסים.
  3. לוחצים על השם של מאזן העומסים (http-lb).
  4. שימו לב לכתובות IPv4 ו-IPv6 של מאזן העומסים במשימה הבאה. הם ייקראו [LB_IP_v4] ו-[LB_IP_v6], בהתאמה.

6. בדיקת מאזן העומסים של HTTP

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

גישה למאזן העומסים של HTTP

כדי לבדוק את הגישה של IPv4 למאזן העומסים של HTTP, פותחים כרטיסייה חדשה בדפדפן ועוברים אל http://[LB_IP_v4]. חשוב להחליף את [LB_IP_v4] בכתובת IPv4 של מאזן העומסים.

אם יש לכם כתובת IPv6 מקומית, נסו להשתמש בכתובת IPv6 של מאזן העומסים של HTTP על ידי מעבר אל http://[LB_IP_v6]. חשוב להחליף את [LB_IP_v6] בכתובת IPv6 של מאזן העומסים.

812d1fc75d9dfb3c.png

בדיקת מאמץ של מאזן העומסים של HTTP

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

  1. במסוף, נכנסים לתפריט הניווט ( mainmenu.png) > Compute Engine > מכונות וירטואליות.
  2. לוחצים על Create instance.
  3. מגדירים את הערכים הבאים ומשאירים את הערכים האחרים בברירת המחדל:

נכס

ערך (יש להקליד ערך או לבחור אפשרות כפי שצוין)

שם

מצור-VM

אזור

us-west1

תחום (zone)

us-west1-c

סדרה

N1

  1. לוחצים על יצירה.
  2. ממתינים ליצירת המכונה siege-vm.
  3. בשביל siege-vm, לוחצים על SSH כדי להפעיל טרמינל ולהתחבר.
  4. מריצים את הפקודה הבאה כדי להתקין את siege:
sudo apt-get -y install siege
  1. כדי לאחסן את כתובת ה-IPv4 של מאזן העומסים של HTTP במשתנה סביבה, מריצים את הפקודה הבאה ומחליפים את [LB_IP_v4] בכתובת ה-IPv4:
export LB_IP=[LB_IP_v4]
  1. כדי לדמות טעינה, מריצים את הפקודה הבאה:
siege -c 250 http://$LB_IP

הפלט אמור להיראות כך (אל תעתיקו, זהו פלט לדוגמה):

New configuration template added to /home/student/.siege
Run siege -C to view the current settings in that file
** SIEGE 4.0.4
** Preparing 250 concurrent users for battle.
The server is now under siege...
  1. במסוף Cloud, לוחצים על תפריט הניווט ( mainmenu.png), לוחצים על Network Services > איזון עומסים.
  2. לוחצים על http-lb.
  3. לוחצים על הכרטיסייה Monitoring. עוקבים אחרי התנועה בין צפון אמריקה לשני הקצוות העורפיים במשך 2 עד 3 דקות.

בהתחלה, התנועה צריכה להיות רק אל us-east1-mig, אבל ככל שה-RPS גדל, התנועה מופנית גם אל europe-west1-mig.

ead1e6d5c1f4cc4b.png

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

e5c6a657706c832c.png

  1. חוזרים למסוף SSH של siege-vm.
  2. מקישים על CTRL+C כדי להפסיק את המצור.

7. יצירת מדיניות בנושא הגבלת קצב של Cloud Armor

בקטע הזה, תשתמשו ב-Cloud Armor כדי למנוע מ-siege-vm לגשת למאזן העומסים של HTTP על ידי הגדרת מדיניות להגבלת קצב של יצירת בקשות.

  1. ב-Cloud Shell (הוראות לשימוש ב-Cloud Shell), אפשר ליצור מדיניות אבטחה דרך gcloud בקטע Setup and Restrictions (הגדרה ודרישות) במאמר Start Cloud Shell.
gcloud compute security-policies create rate-limit-siege \
    --description "policy for rate limiting"
  1. בשלב הבא, מוסיפים כלל להגבלת קצב של יצירת בקשות:
gcloud beta compute security-policies rules create 100 \
    --security-policy=rate-limit-siege     \
    --expression="true" \
    --action=rate-based-ban                   \
    --rate-limit-threshold-count=50           \
    --rate-limit-threshold-interval-sec=120   \
    --ban-duration-sec=300           \
    --conform-action=allow           \
    --exceed-action=deny-404         \
    --enforce-on-key=IP
  1. מצרפים את מדיניות האבטחה לקצה העורפי http של שירות הקצה העורפי:
gcloud compute backend-services update http-backend \
    --security-policy rate-limit-siege –-global
  1. במסוף, מנווטים אל תפריט הניווט > אבטחת רשת > Cloud Armor
  2. קליקים – הגבלת קצב של יצירת בקשות. המדיניות אמורה להיראות כך:

8be87aa31c2ed74e.png

אימות מדיניות האבטחה

  1. חוזרים למסוף SSH של siege-vm.
  2. מריצים curl על ה-IP של LB כדי לוודא שעדיין אפשר להתחבר אליו, אמורים לקבל תגובה 200.
curl http://$LB_IP
  1. בטרמינל SSH של siege-vm, כדי לדמות עומס, מריצים את הפקודה הבאה:
siege -c 250 http://$LB_IP

הפלט אמור להיראות כך (אל תעתיקו, זהו פלט לדוגמה):

** SIEGE 4.0.4
** Preparing 250 concurrent users for battle.
The server is now under siege...
  1. כדאי לעיין ביומנים של מדיניות האבטחה כדי לבדוק אם גם התנועה הזו חסומה.
  2. במסוף, מנווטים אל תפריט הניווט > אבטחת רשת > Cloud Armor.
  3. לוחצים על rate-limit-siege.
  4. לוחצים על יומנים.

f8be7c01c3d7c8f5.png

  1. לוחצים על צפייה ביומני המדיניות.
  2. בדף Logging, חשוב למחוק את כל הטקסט בתצוגה המקדימה של השאילתה.
  3. בחירת משאב בתור Cloud HTTP Load Balancer > http-lb- forwarding-rule > http-lb ולאחר מכן לוחצים על הוספה. לחלופין, בהמשך מופיעה שאילתת ה-MQL(מעקב אחרי שפת השאילתה), אפשר להעתיק ולהדביק אותה בכלי לעריכת שאילתות:
resource.type="http_load_balancer" resource.labels.forwarding_rule_name="http-lb-forwarding-rule" resource.labels.url_map_name="http-lb"
  1. עכשיו לוחצים על Run Query.
  2. הרחבת רשומה ביומן בתוצאות השאילתה.
  3. מרחיבים את httpRequest. הבקשה צריכה להיות מכתובת ה-IP מסוג siege-vm. אם לא, מרחיבים רשומה אחרת ביומן.
  4. צריך להרחיב את jsonPayload.
  5. הרחבה של EnforcementSecurityPolicy.

151f575ba7b3bde9.png

חשוב לשים לב שה-definedAction מוגדרת ל-RATE_BASED_BAN בשם rate-limit-siege.

  1. כדי לבצע בדיקה נוספת, עוברים אל תפריט הניווט ( mainmenu.png), לוחצים על Network Services > איזון עומסים. לוחצים על http-lb. לוחצים על הכרטיסייה Monitoring.

ab9a8a66573a5ebd.png

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

מזל טוב! השלמת את שיעור ה-Lab הזה בנושא הגבלת קצב של יצירת בקשות באמצעות Cloud Armor

. ©2020 Google LLC כל הזכויות שמורות. Google והלוגו של Google הם סימנים מסחריים רשומים של Google LLC. שמות של חברות ומוצרים אחרים עשויים להיות סימנים מסחריים של החברות, בהתאמה, שאליהן הם משויכים.

8. ניקוי שיעור Lab

  1. מנווטים אל אבטחת רשת >> Cloud Armor >> %POLICY NAME% ובחר באפשרות 'מחיקה' -

eeafa7cafa11c4c7.png

  1. עוברים אל Networking >>. שירותי רשת >> איזון עומסים. בוחרים את מאזן העומסים שיצרתם ולוחצים על Delete.

3886458f25cfbd36.png

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

a0193e91b2f4cb6f.png

  1. ניווט אל תפריט הניווט ( mainmenu.png) > Compute Engine > קבוצות של מכונות צריך לבחור את שתי קבוצות המופעים המנוהלים וללחוץ על 'מחיקה' -

5027d56977997f70.png

מאשרים את המחיקה על ידי הקלדת המילה 'מחיקה' לתיבת הטקסט.

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

  1. עוברים אל Instance templates (תבניות של מכונות) מהחלונית בצד שמאל**.** בוחרים את שתי תבניות המופעים ולוחצים על 'מחיקה' -

8d88abacd32c11ce.png

  1. עוברים אל VM instances מהחלונית בצד שמאל**.** בוחרים את שלוש הנקודות שלצד המופע של siege-vm ולוחצים על Delete.

2b58ab43695836e9.png

  1. ניווט אל תפריט הניווט ( mainmenu.png) > רשת VPC > חומת אש. בוחרים את בדיקת ברירת המחדל--אישור-תקינות ולוחצים על 'מחיקה' -

561d5e771d36d85.png

9. מעולה!

הטמעת בהצלחה הגבלת קצב עם Cloud Armor. הגדרתם מאזן עומסים של HTTP עם קצוות עורפיים ב-us-east1 וב-europe-west1. לאחר מכן, בדקתם את מאזן העומסים באמצעות VM, וביצעתם את הרישום של כתובת ה-IP באמצעות הגבלת קצב של Cloud Armor. הצלחת לעיין ביומנים של מדיניות האבטחה כדי להבין למה התנועה נחסמה.

אילו נושאים דיברנו?

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

השלבים הבאים

  • כדאי לנסות להגדיר מדיניות להגבלת קצב של יצירת בקשות על סמך טווח כתובות IP של המקור. פקודה לדוגמה שלמטה -
gcloud alpha compute security-policies rules create 105 \
    --security-policy sec-policy     \
    --src-ip-ranges "1.2.3.0/24"     \
    --action throttle                \
    --rate-limit-threshold-count 100 \
    --rate-limit-threshold-interval-sec 60 \
    --conform-action allow           \
    --exceed-action deny-429         \
    --enforce-on-key IP
  • כדאי לנסות להגדיר מדיניות להגבלת קצב של יצירת בקשות לפי קוד אזור. פקודה לדוגמה שלמטה -
gcloud alpha compute security-policies rules create 101 \
    --security-policy sec-policy     \
    --expression "origin.region_code == 'US'" \
    --action rate-based-ban                 \
    --rate-limit-threshold-count 10         \
    --rate-limit-threshold-interval-sec 60  \
    --ban-duration-sec 300           \
    --ban-threshold-count 1000       \
    --ban-threshold-interval-sec 600 \
    --conform-action allow           \
    --exceed-action deny-403         \
    --enforce-on-key IP