במסמך הזה מוצגת ארכיטקטורת עזר לאפליקציית אינטרנט שמארחת ב- Google Cloud. הארכיטקטורה משתמשת בממשק קצה גלובלי שמשלב שיטות מומלצות כדי לעזור לכם להרחיב, לאבטח ולהאיץ את המסירה של האפליקציות שפונות לאינטרנט. Google Cloud הארכיטקטורה כוללת תמיכה ב-Cloud Build, וגם באינטגרציה רציפה (CI) ובפיתוח רציף (CD) של צד שלישי, כמו Jenkins ו-GitLab. הארכיטקטורה הזו מיועדת למפתחים ולבעלי אפליקציות שרוצים להרחיב את האפליקציה שלהם באמצעות איזון עומסים, ולהגן על האפליקציות שלהם מפני מתקפות מניעת שירות מבוזרות (DDoS) ומתקפות מבוססות-אינטרנט באמצעות חומת אש לאפליקציות אינטרנט (WAF).
ארכיטקטורה
התרשים הבא מציג את הארכיטקטורה שמתוארת במסמך הזה.
באדריכלות הזו, העומס על האפליקציה מאוזן באמצעות מאזני עומסים גלובליים חיצוניים של אפליקציות (ALB), שמחלקים את תעבורת ה-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 אל שרתים עורפיים שמארחים מגוון פלטפורמות. Google Cloud מאזן העומסים של האפליקציות כולל את התכונות הבאות:
- בק-אנד שניתן להגדרה: ארכיטקטורה זו משתמשת בשתי קבוצות מופעי מכונה מנוהלים (MIG) באזורים שונים, אך ניתן להגדיר כל בק-אנד שמאזן העומסים הגלובלי החיצוני של אפליקציות תומך בו. אפשר להשתמש באותו מאזן עומסים עבור 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 שיש לכם, למילוי המטמון ולתעבורת הנתונים היוצאת (egress), ולנפח הנתונים. מידע נוסף זמין במאמרים הבאים:
- מחירון 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 מאפשרת לכם להשתמש בתכונות נוספות, כמו:
- מודיעין איומי סייבר, שמאפשר לכם לאשר או לחסום תנועה למאזני עומסים חיצוניים של אפליקציות על סמך כמה קטגוריות של נתוני מודיעין איומי סייבר.
- הגנה אדפטיבית, שמאפשרת להגן על האפליקציות, האתרים והשירותים שלכם מפני מתקפות 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