במסמך הזה מוצגת ארכיטקטורה לדוגמה של אפליקציית אינטרנט שמארחת ב- Google Cloud. הארכיטקטורה משתמשת בממשק קצה גלובלי שמשלב שיטות מומלצות כדי לעזור לכם להרחיב, לאבטח ולהאיץ את המסירה של האפליקציות שפונות לאינטרנט. Google Cloud הארכיטקטורה כוללת תמיכה ב-Cloud Build, וגם באינטגרציה רציפה (CI) ובפיתוח רציף (CD) של כלים של צד שלישי כמו Jenkins ו-GitLab. הארכיטקטורה הזו מיועדת למפתחים ולבעלי אפליקציות שרוצים להרחיב את האפליקציה שלהם באמצעות איזון עומסים, ולהגן על האפליקציות שלהם מפני מתקפות מניעת שירות מבוזרות (DDoS) ומתקפות מבוססות-אינטרנט באמצעות חומת אש לאפליקציות אינטרנט (WAF).
ארכיטקטורה
התרשים הבא מציג את הארכיטקטורה שמתוארת במסמך הזה.
בארכיטקטורה הזו, האפליקציה מאוזנת עומסים באמצעות מאזני עומסים גלובליים חיצוניים של אפליקציות, שמחלקים את תעבורת ה-HTTP וה-HTTPS בין כמה מופעי קצה עורפיים, בכמה אזורים. Cloud CDN מאיץ אפליקציות שפונות לאינטרנט באמצעות נקודות קצה של נוכחות (PoP) של Google, ופועל עם מאזן עומסים גלובלי חיצוני של אפליקציות (ALB) כדי להעביר תוכן למשתמשים. העורף מוגן על ידי מדיניות האבטחה של Google Cloud Armor, שמספקת סינון בשכבה 7 על ידי ניקוי בקשות נכנסות ממתקפות אינטרנט נפוצות או ממאפיינים אחרים בשכבה 7, ועוזרת לחסום תנועה לפני שהיא מגיעה לשירותי העורף עם איזון העומסים. ההגנה מפני מתקפות DDoS נפחיות מופעלת כברירת מחדל.
כשמשתמש מבקש תוכן מהשירות שלכם, הבקשה נשלחת אל ממשק הקצה הגלובלי לאפליקציות שפונות לאינטרנט, שמסופק על ידי Cross-Cloud Network. הבקשה מוערכת על ידי מדיניות האבטחה של Cloud Armor, החל ממדיניות האבטחה של Cloud Armor Edge. אם הבקשה מורשית ואפשר למלא אותה באמצעות Cloud CDN, התוכן מאוחזר ממטמון Cloud Armor ונשלח בחזרה למשתמש. אם הבקשה גורמת ל אי מציאה במטמון, היא נבדקת על ידי מדיניות ה-backend, ואז, בהתאם לכללים של המדיניות, היא נדחית או מתבצעת על ידי שרת ה-backend.
רכיבי הארכיטקטורה
התרשים שלמעלה כולל את הרכיבים הבאים:
מאזן עומסים גלובלי חיצוני של אפליקציות (ALB): מאזן העומסים הזה של אפליקציות הוא מאזן עומסים מבוסס-proxy בשכבה 7, שמאפשר לכם להפעיל את השירותים שלכם ולהרחיב אותם. מאזן העומסים של האפליקציה מפזר תנועת HTTP ו-HTTPS אל קצה העורף (backend) שמארח מגוון של פלטפורמות. Google Cloud התכונות של Application Load Balancer הן:
- קצה עורפי (backend) שניתן להגדרה: בארכיטקטורה הזו נעשה שימוש בשתי קבוצות של מכונות וירטואליות מנוהלות (MIG) באזורים שונים, אבל אפשר להגדיר כל קצה עורפי שמאזן העומסים הגלובלי-חיצוני של אפליקציות (ALB) תומך בו. אפשר להשתמש באותו איזון עומסים עבור GKE, Cloud Run, פונקציות Cloud Run ואפליקציות App Engine, וגם עבור אפליקציות שמתארחות בסביבה מקומית ובסביבות ענן אחרות, באמצעות הגדרת קצה עורפי שונה. מידע נוסף זמין במאמר סקירה כללית על מאזן עומסים של אפליקציות.
- חלוקת התנועה: אתם יכולים להשתמש ב-Application Load Balancer לניהול תנועה, כולל ניהול של גרסאות תוכנה על ידי שליחת משתמשים שונים לשרתי קצה עורפי שונים. באדריכלות שמתוארת במסמך הזה, יש פיצול פשוט של התנועה ביחס של 60/40. עם זאת, אפשר לשנות את החלוקה הזו כדי ליצור תוכניות מורכבות יותר לניהול תנועה. כדי לקבל מידע על אפשרויות הגדרה נוספות, אפשר לעיין במאמר בנושא הגדרת פסק זמן וניסיונות חוזרים ולקבוע את מצב האיזון המועדף.
Cloud CDN: פלטפורמת Cloud CDN פועלת כמטמון. הוא מופעל עם שרת המקור כדי לספק את כל התכונות של Cloud CDN, כולל QUIC ו-HTTP/2, וגם בקרות ניתוב וזיכרון מטמון. הגישה הזו מאפשרת להרחיב את האפליקציה באופן גלובלי בלי לפגוע בביצועים, וגם לצמצם את רוחב הפס ואת עלויות החישוב של חזית האתר. הגדרת ברירת המחדל שמשמשת את ממשק הקצה הגלובלי מבוססת על שיטות מומלצות למסירת תוכן ועל שיטות מומלצות לאבטחת אינטרנט ב-Cloud CDN.
Cloud Armor: הרכיב הזה כולל הגנה מפני DDoS וכללי WAF. הארכיטקטורה כוללת את ההגדרה הבסיסית הבאה של Cloud Armor, שעוזרת לצמצם את הסיכון לנקודות תורפה נפוצות:
כללי WAF שהוגדרו מראש על סמך ModSecurity Core Rule Set CRS 3.3. הכללים האלה מאפשרים ל-Cloud Armor להעריך עשרות חתימות תנועה שונות על ידי הפניה לכללים שנקבעו מראש, במקום לדרוש מכם להגדיר כל חתימה באופן ידני.
הגדרה בסיסית של מדיניות אבטחה של Cloud Armor edge כדי לסנן בקשות נכנסות ולשלוט בגישה לשירותי קצה עורפיים מוגנים ולמאגרי Cloud Storage.
המוצרים שהשתמשו בהם
הארכיטקטורה הזו כוללת את המוצרים הבאים: Google Cloud
שיקולים בתכנון
הקטע הזה מספק הנחיות שיעזרו לכם להשתמש במסמך הזה כנקודת התחלה לפיתוח ארכיטקטורה שעונה על הדרישות הספציפיות שלכם בנוגע לאבטחה, לאמינות, ליעילות תפעולית, לעלות ולביצועים.
אבטחה, פרטיות ותאימות
בקטע הזה מתוארים גורמים נוספים שכדאי לקחת בחשבון כשמשתמשים בארכיטקטורת ההפניה הזו כדי לפרוס את אפליקציית האינטרנט.
הגדרת בסיס אבטחה
כדי לשפר עוד יותר את האבטחה, הארכיטקטורה שמתוארת במסמך הזה תואמת גם לתוכנית הבסיס של Enterprise. התוכנית עוזרת לארגונים שמשתמשים ב-Google Cloud ליצור בסיס מאובטח לכל עומסי העבודה העתידיים, כולל הגדרת ניהול זהויות והרשאות גישה (IAM), Cloud Key Management Service ו-Security Command Center.
הגנה על נתוני משתמשים באמצעות Cloud CDN
באופן כללי, בארכיטקטורה הזו מומלץ לא לשמור במטמון תוכן שספציפי למשתמש.
כדי לשמור במטמון סוגי תוכן של HTML (text/html) ו-JSON (application/json), צריך להגדיר כותרות מפורשות של cache-control בתגובה של Cloud CDN. חשוב לוודא שלא שומרים במטמון את הנתונים של משתמש אחד ומציגים אותם לכל המשתמשים.
שליטה בגישה לאפליקציה באמצעות IAP
הארכיטקטורה תואמת גם לשרת proxy לאימות זהויות (IAP). שרת ה-IAP מאמת את זהות המשתמש, ואז קובע אם המשתמש צריך לקבל גישה לאפליקציה. כדי להפעיל IAP במאזן עומסים של אפליקציות במצב חיצוני גלובלי או במצב קלאסי, צריך להפעיל אותו בשירותי ה-Backend של מאזן העומסים. בקשות נכנסות מסוג HTTP/HTTPS נבדקות על ידי Cloud Armor לפני שהן נשלחות לאיזון עומסים על ידי מאזן העומסים של האפליקציות. אם Cloud Armor חוסם בקשה, IAP לא בודק את הבקשה. אם Cloud Armor מאשר בקשה, IAP מעריך את הבקשה. הבקשה נחסמת אם IAP לא מאמת את הבקשה. מידע נוסף זמין במאמר שילוב של Cloud Armor עם מוצרים אחרים של Google.
הוזלת עלויות
ככלל, שימוש ב-Cloud CDN יחד עם Cloud Armor יכול לעזור לצמצם את ההשפעה של חיובים על העברת נתונים יוצאים.
Cloud CDN
אובייקטים סטטיים שמוצגים ללקוח מהמטמון לא עוברים דרך איזון העומסים. אסטרטגיית אחסון במטמון יעילה יכולה לצמצם את כמות הנתונים היוצאים שמעובדים על ידי מאזן העומסים, וכך להפחית את העלויות.
Google Cloud Armor
Cloud Armor עוזר לצמצם את העלויות על ידי מניעת חיובים בחשבון על תנועה לא רצויה. בקשות שנחסמות על ידי Cloud Armor לא יוצרות תגובה מהאפליקציה, וכך מצטמצמת כמות הנתונים היוצאים שעוברים עיבוד על ידי איזון העומסים. ההשפעה על העלויות תלויה באחוז התנועה הלא רצויה שנחסמת על ידי מדיניות האבטחה של Cloud Armor שהטמעתם.
העלויות הסופיות יכולות להשתנות גם בהתאם למספר השירותים או האפליקציות שרוצים להגן עליהם, למספר המדיניות והכללים של Cloud Armor שיש לכם, למילוי המטמון ולתעבורת היציאה, ולנפח הנתונים. מידע נוסף זמין במאמרים הבאים:
- מחירון Cloud Armor
- תמחור של Cloud Load Balancing
- תמחור של Cloud CDN
- כדי לראות את המחיר של תרחיש הפריסה הספציפי שלכם, אפשר להיעזר בGoogle Cloud מחשבון התמחור.
פריסה
כדי לפרוס את הארכיטקטורה הזו, משתמשים בדוגמה של Terraform.
מידע נוסף זמין בקובץ README.
התיקייה web_app_protection_example כוללת את הקובץ (main.tf). הקוד בקובץ הזה יוצר את הארכיטקטורה שמתוארת במסמך הזה, ומספק תמיכה נוספת בפריסה אוטומטית.
מבנה התיקיות בתיקיית Terraform הוא כדלקמן:
- מאגר המקורות של הקוד: הדוגמה להגנה על אפליקציות אינטרנט היא חלק ממאגר Web Application and API Protection (WAAP).
- CD ו-CI: תיקיית ה-build מכילה את קובצי התיאור הבאים עבור Jenkins, GitLab ו-Cloud Build:
- Jenkins: המאגר הזה כולל את קובץ Jenkins שמכיל את הכללים שהצינור מבצע.
- GitLab: המאגר הזה כולל קובץ YAML של .gitlab-ci שמכיל את הכללים שצינור הנתונים של GitLab מפעיל.
- Cloud Build: המאגר הזה כולל את קובץ Cloud Build שמכיל את הכללים על סמך שמות הענפים.
- המאגר כולל אפשרות לפריסה בסביבות מרובות (ייצור ופיתוח). מידע נוסף זמין בקובץ
README.
כשמבצעים שינוי בכל ענף שהצנרת מבוססת עליו, השינויים האלה מפעילים את הצנרת והם משולבים בגרסה חדשה אחרי שהיא מסתיימת. כשמושכים את ערכת הכלים בפעם הראשונה, הפתרון נטען לפרויקט שבחרתם Google Cloud .
המאמרים הבאים
Google Cloud מידע נוסף על השיטות המומלצות לשימוש במוצרים שמופיעים בארכיטקטורה לדוגמה הזו:
- שיטות מומלצות לאבטחת אתרים
- שיטות מומלצות לשיפור הביצועים של מאזן עומסים חיצוני של אפליקציות (ALB)
- שיטות מומלצות להצגת תוכן
- שיטות מומלצות להתאמת כללי WAF ב-Cloud Armor
Cloud Armor Enterprise: היכולות של Cloud Armor בארכיטקטורה הזו זמינות ברמת Cloud Armor Standard. ההרשמה של הפרויקט ל-Cloud Armor Enterprise מאפשרת לכם להשתמש בתכונות נוספות, כמו:
- מודיעין איומי סייבר, שמאפשר לכם לאשר או לחסום תעבורת נתונים למאזני עומסים חיצוניים של אפליקציות על סמך כמה קטגוריות של נתוני מודיעין איומי סייבר.
- Adaptive Protection, שעוזרת להגן על האפליקציות, האתרים והשירותים שלכם מפני מתקפות DDoS בשכבה 7, כמו הצפות HTTP, וגם מפני פעילויות זדוניות אחרות בשכבה 7 (ברמת האפליקציה) בתדירות גבוהה. Google Cloud התכונה Adaptive Protection יוצרת מודלים של למידת מכונה שמזהים פעילות חריגה ושולחים התראות לגביה, יוצרים חתימה שמתארת את המתקפה הפוטנציאלית ויוצרים כלל WAF מותאם אישית של Cloud Armor לחסימת החתימה.
- הצגת נתונים על התקפות DDoS, שמספקת נראות באמצעות מדדים, וגם רישום ביומן של אירועים כמו ניסיונות התקפה נפחית ברמה 3 וברמה 4.
- שירותים נוספים כמו תמיכה בתגובה ל-DDoS והגנה על החשבון מפני חיובים על DDoS. מידע נוסף זמין במאמר סקירה כללית על Cloud Armor Enterprise
לדוגמאות נוספות של ארכיטקטורות, תרשימים ושיטות מומלצות, עיינו במאמר Cloud Architecture Center.
שותפים ביצירת התוכן
מחברים:
תורמי תוכן אחרים:
- Alex Maclinovsky | Enterprise Architect
- Anderson Duboc | Customer Engineer
- Grant Sorbo | Solutions Architect
- מישל צ'ובירקה | Cloud Security Advocate
- Rob Harman | Technical Solutions Engineer Manager
- Susan Wu | Outbound Product Manager