בדף הזה מתוארות שיטות שונות לאבטחת שערים ב-Google Kubernetes Engine (GKE). אפשר גם לקרוא איך מאבטחים שער.
איך פועלת אבטחת השער
שער מייצג את הקצה הקדמי של מאזן עומסים. יש שתי דרכים לאבטח שערים באמצעות אימות והצפנה:
- מהלקוח אל השער: תנועת נתונים שמקורה בלקוח והסתיימה בשער.
- שער כניסה ל-Pod: התנועה התחילה בשער הכניסה והסתיימה ב-Pods של ה-Backend.
הדיאגרמה הבאה מציגה את שני הנתיבים לאימות ולהצפנה של שערים:
בדף הזה מוסבר איך לאבטח את הנתיב מהלקוח אל השער באמצעות אישורים שהועלו ונוהלו ברמת השער. כדי ללמוד איך לאבטח את התנועה משער הכניסה אל ה-Pod, אפשר לעיין במאמר איך מאבטחים את התנועה ממאזן העומסים לאפליקציה באמצעות TLS.
יתרונות
יש הרבה דרכים לאבטח אפליקציה באמצעות Gateway API, שמאפשר גמישות לתפקידים שונים שמתקשרים עם השער.
מי הבעלים של הדומיין ושל הגדרת ה-TLS?
מודל Gateway API כולל שני תפקידים שמשתמשים בשערים או פורסים אותם:
- אדמין של הפלטפורמה: מפעיל האשכול הוא האדמין של כל האשכולות. הם מנהלים את המדיניות, את הגישה לרשת ואת ההרשאות של האפליקציות.
- מפתח האפליקציה: מפתח האפליקציה מגדיר את האפליקציה ואת הגדרות השירות.
בתרשים הבא מוצגים השדות במשאבי Gateway ו-HTTPRoute שמשפיעים על TLS ועל בעלות על דומיין בשני אפליקציות, store-v1 ו-store-v2.
בתרשים, האופרטור של האשכול שולט ב:
- באילו דומיינים מפתחי אפליקציות יכולים להשתמש באפליקציות שלהם בכל מרחב שמות.
- האישורים הספציפיים שמסיימים דומיינים שונים.
- אישורים שסופקו על ידי הבעלים של השער.
- האם בעלי HTTPRoute יכולים לציין שמות מארחים משלהם ליצירת אישורים.
מפתחי אפליקציות שולטים בשם המארח שמייצר אישור, אם ההגדרה של Gateway מאפשרת זאת.
ההפרדה הזו של משימות תפעוליות מאפשרת למפתחי אפליקציות לפרוס ולנהל את ה-HTTPRoute שלהם כדי לקבל שליטה מבוזרת יותר, ולאדמינים של פלטפורמות לפרוס ולנהל שערים כדי לקבל שליטה מרכזית ב-TLS.
ניהול אישורים של שער
אפשר לאבטח שערים באמצעות אחת מהשיטות הבאות:
אם משתמשים ב-Kubernetes Secrets או במשאבי SslCertificate מ-Compute Engine API, אפשר לצרף עד 15 אישורים לשער יחיד.
אם תבקשו להגדיל את המכסה,תוכלו לצרף עד 10,000, 000 אישורים לכל מאזן עומסים באמצעות Certificate Manager.
מידע נוסף על אישורי SSL זמין בסקירה הכללית על אישורי SSL. Google Cloud
סודות של Kubernetes
מפרט Gateway API תומך בKubernetes Secrets לאחסון אישורים ולצירוף שלהם ל-Gateways. אפשר לשייך סוד אחד או יותר של Kubernetes ל-Gateway באמצעות השדה Gateway.spec.tls.certificateRef.
למשאבי Gateway שמאובטחים באמצעות סודות של Kubernetes יש את הדרישות הבאות:
- צריך להגדיר את מאזין השער
portואתprotocolל-443ול-HTTPS. - חובה להגדיר את השדה
listener.tls.modeלערךTerminate. - צריך להפנות אל פרטי הכניסה של TLS בבלוק
listeners.tls.
למשאבי שער שמאובטחים באמצעות סודות של Kubernetes יש את המגבלות הבאות:
- רק מאזיני HTTPS מסיימים את התנועה באמצעות הסודות שצוינו, אבל אפשר לציין כמה מאזינים עם שילוב של HTTP ו-HTTPS.
- אם יש לכם כמה מאזינים שמשתמשים ב-HTTPS באותו שער, לכל מאזין צריך להיות שם מארח ייחודי.
- אפשר להשמיט רק שם מארח אחד או להקצות
*לכל צמד של יציאה ופרוטוקול. - אפשר להקצות רק אישור ברירת מחדל אחד לכל שער.
כדי ללמוד איך לאבטח שער באמצעות סוד של Kubernetes, אפשר לעיין במאמר בנושא אבטחת שער באמצעות סוד של Kubernetes.
אישורי SSL
אישורי SSL מאחסנים אישורים ומעבירים אותם למאזני עומסים. אישור SSL יכול להיות בניהול עצמי או בניהול Google.
- אישורי SSL בניהול עצמי הם אישורים שאתם מקבלים, מקצים ומחדשים בעצמכם.
- אישורי SSL בניהול Google הם אישורים ש-Google Google Cloud מקבלת, מנהלת ומחדשת באופן אוטומטי.
מידע נוסף על ההבדלים בין שני סוגי האישורים האלה זמין בסקירה הכללית על אישורי SSL.
ההיקף והמיקום של אישור ה-SSL צריכים להיות זהים להיקף ולמיקום של שער הגישה שמשתמש בו. לדוגמה, אי אפשר להשתמש באישור SSL גלובלי בשער אזורי.
בטבלה הבאה מפורטים הדרישות לגבי היקף ומיקום של אישורי SSL לכל GatewayClass:
| GatewayClass | היקף אישור ה-SSL | מיקום אישור SSL |
|---|---|---|
gke-l7-global-external-managed |
אישור SSL גלובלי | עולמי |
gke-l7-global-external-managed-mc |
||
gke-l7-gxlb |
||
gke-l7-gxlb-mc |
||
gke-l7-regional-external-managed |
אישור SSL אזורי | חייב להיות באותו אזור כמו שער |
gke-l7-regional-external-managed-mc |
||
gke-l7-cross-regional-internal-managed-mc |
||
gke-l7-rilb |
||
gke-l7-rilb-mc |
אישורי SSL בניהול Google לא תואמים לשערי אזורים. כדי לאבטח שערים אזוריים, צריך להשתמש ב-Certificate Manager במקום זאת.
כדי ללמוד איך לאבטח שער באמצעות אישור SSL, אפשר לעיין במאמר בנושא אבטחת שער באמצעות אישור SSL.
Certificate Manager
Certificate Manager הוא מיקום מרכזי לניהול אישורי TLS.
כשמאבטחים שער באמצעות Certificate Manager, אפשר לבצע את הפעולות הבאות:
- אפשר להפנות אל
CertificateMapישירות משער שיצרתם ב-Certificate Manager. - ניהול האישורים שלכם.
- שיפור זמני ההפצה של האישורים.
- שימוש ב-Cloud Monitoring לאימות אישורים שפג תוקפם ולהפצת אישורים.
Certificate Manager תומך באישורי SSL בניהול עצמי ובניהול Google. כדי ללמוד איך לאבטח שער באמצעות Certificate Manager, אפשר לעיין במאמר בנושא אבטחת שער באמצעות Certificate Manager.
תמיכה ב-TLS ב-GatewayClass
בטבלה הבאה מתוארות שיטות סיום ה-TLS ש-GKE תומך בהן לכל GatewayClass:
| GatewayClass |
gke-l7-global-external-managedgke-l7-global-external-managed-mcgke-l7-gxlbgke-l7-gxlb-mc
|
gke-l7-regional-external-managedgke-l7-regional-external-managed-mcgke-l7-rilbgke-l7-rilb-mc
|
gke-l7-cross-regional-internal-managed-mc
|
|---|---|---|---|
| TLS מלקוח לשער | יש תמיכה | יש תמיכה | |
| שער ל-TLS של קצה העורפי | יש תמיכה | יש תמיכה | |
| Google Cloud משאב אישור | אישור SSL גלובליCertificateMap |
אישור SSL אזורי | |
| אישורים בניהול עצמי עם Kubernetes Secrets | יש תמיכה | יש תמיכה | אין תמיכה |
| אישורי SSL ב-Compute Engine בניהול עצמי | יש תמיכה | יש תמיכה | אין תמיכה |
| אישורי SSL ב-Compute Engine שמנוהלים על ידי Google | יש תמיכה | אין תמיכה | אין תמיכה |
| אישורי SSL בניהול עצמי באמצעות Certificate Manager | יש תמיכה | יש תמיכה | יש תמיכה |
| אישורי SSL שמנוהלים על ידי Google באמצעות Certificate Manager | יש תמיכה | יש תמיכה | יש תמיכה |
המאמרים הבאים
- כך מאבטחים שער.
- איך פורסים שערים
- מידע נוסף על מושגים שקשורים ל-Gateway API
- איך מגדירים משאבי Gateway
- איך משתמשים ביכולות של GatewayClass