מטרות
במדריך הזה תלמדו:
- יצירת תבנית של הגדרות מכונה ב-Compute Engine וקבוצת מופעי מכונה מנוהלים (MIG).
- קבלת שם דומיין ואישור.
- יצירת מאזן עומסים ב-HTTPS עם אישור.
- הפעלת IAP.
- בדיקה ש-IAP פועל.
עלויות
במדריך הזה משתמשים ברכיבים של Google Cloud, והשימוש בהם כרוך בתשלום, כולל:
- Compute Engine
- 4 מכונות וירטואליות (VM)
- רשתות
- גלובלי כלל העברה של מאזן עומסים
- תעבורת נתונים נכנסת (ingress)
כדי לקבל הערכת עלויות על סמך השימוש החזוי, אתם יכולים להשתמש במחשבון העלויות.
לפני שמתחילים
לפני שמתחילים את המדריך, צריך:
בוחרים או יוצרים פרויקט ב- Google Cloud .
כניסה לדף Projectsמפעילים את החיוב בפרויקט. איך משנים את הגדרות החיוב בפרויקט?
שלב 1: יצירת תבנית של Compute Engine
במסוף Google Cloud , נכנסים לדף Compute Engine > Create an instance template ובוחרים את הפרויקט שבו רוצים ליצור תבנית של הגדרות מכונה.
כניסה לדף תבנית של הגדרות מכונה
משתמשים בערכי ברירת המחדל, חוץ מהערכים הבאים:
- סוג המכונה:
- מיקרו (f1-micro)
- היקפי גישה:
- הגדרת גישה לכל API
- Compute Engine: קריאה בלבד
- חומת אש:
- Allow HTTP traffic
- בקטע Management, בקטע Automation > סקריפט לטעינה בזמן ההפעלה, מעתיקים ומדביקים את הסקריפט הבא:
כשמסיימים לעדכן את הערכים, לוחצים על יצירה כדי ליצור את התבנית.
שלב 2: יצירת קבוצת מופעי מכונה מנוהלים
במסוף Google Cloud , נכנסים לדף Compute Engine > Create a new instance group ובוחרים את הפרויקט שבו רוצים ליצור קבוצת מופעי מכונה מנוהלים.
כניסה לדף CREATE AN INSTANCE GROUP
משתמשים בערכי ברירת המחדל, חוץ מהערכים הבאים:
- Name: my-managed-instance-group
- מיקום: מספר אזורים
- Instance template: בוחרים את תבנית של הגדרות מכונה שיצרתם בשלב 1.
- מספר המכונות: כדי לשנות את מספר המכונות, צריך קודם להשבית את ההתאמה האוטומטית לעומס.
- מצב התאמה אוטומטית לעומס: Don't autoscale
בדיקת תקינות: בוחרים באפשרות Create a health check ומזינים את הערכים הבאים:
- Name: my-health-check
- Protocol: HTTP
כדי להשתמש בבדיקת התקינות החדשה, לוחצים על שמירה והמשך.
כשמסיימים לעדכן את הערכים, לוחצים על Create כדי ליצור את קבוצת המכונות המנוהלות (MIG).
שלב 3: מקבלים שם דומיין ואישור
כדי להשתמש במאזן העומסים עם תנועת HTTPS, צריך שם דומיין ואישור חתום. אתם יכולים לרשום דומיין ב-Cloud Domains או להשתמש ברשם דומיינים לבחירתכם. צריך לרשום את הדומיין לפני שממשיכים.
הגדרת האישור
יוצרים אישור שמזהה את האתר שלכם למשתמשים. במאמר שימוש באישורי SSL בניהול Google מוסבר איך יוצרים אישור.
רשות האישורים צריכה לאמת שאתם הבעלים של שם הדומיין שרשמתם. בשלבים הבאים תיצרו מכונה וירטואלית כדי לאמת את הדומיין מול ה-CA.
יצירת VM לאימות הבעלות על הדומיין
במסוף Google Cloud , נכנסים לדף Compute Engine > Create an instance.
משתמשים בערכי ברירת המחדל, חוץ מהערכים הבאים:
- Name: certbot-vm
- סוג המכונה: micro (f1-micro)
- היקפי גישה:
- הגדרת גישה לכל API
- Compute Engine: קריאה/כתיבה
- קובץ אימג' של דיסק אתחול:
- Debian GNU/Linux 9 (stretch)
- חומת אש:
- Allow HTTP traffic
- Allow HTTPS traffic
כשמסיימים לעדכן את הערכים, לוחצים על Create כדי ליצור את המכונה הווירטואלית. שימו לב לכתובת ה-IP החיצונית של ה-VM שיצרתם. תצטרכו אותו בשלב הבא.
הגדרת הדומיין כך שיפנה למכונה הווירטואלית
כדי להגדיר את הדומיין כך שיפנה למכונה הווירטואלית, צריך להגדיר רשומות A:
- נכנסים לחשבון של הדומיין אצל מארח הדומיין.
- מוצאים את הדף שבו מעדכנים את רשומות ה-DNS של הדומיין. השם של הדף יכול להיות "ניהול DNS", "ניהול שרת השמות" או "הגדרות מתקדמות".
- משנים את רשומות ה-A לערכים הבאים:
- שם/מארח/כינוי: @
- ערך: כתובת ה-IP החיצונית של המכונה הווירטואלית שיצרתם כדי לאמת את הבעלות על הדומיין.
- TTL: ברירת המחדל של הרשם, או 86400 (יום אחד).
- מחכים שרשומת ה-DNS תתעדכן. יכול להיות שיעבור יום עד שהרשומה שהוספתם תתעדכן.
בדיקת השרת
כדי לבדוק שהשרת פועל כמו שצריך, מבצעים את השלבים הבאים:
נכנסים לדף Compute Engine > VM Instances במסוף Google Cloud .
כניסה לדף VM INSTANCESבקטע Connect של certbot-vm, לוחצים על SSH.
מריצים את הפקודות הבאות כדי להפעיל שרת אינטרנט קטן ב-VM:
mkdir web cd web echo "Hello" > index.html sudo busybox httpd -v -fבדפדפן אינטרנט, נכנסים לשם הדומיין שרשמתם קודם. בדפדפן האינטרנט אמור להופיע
Hello, ובסשן ה-SSH אמורה להופיע הודעה שמכילה את... response:200. אם לא, מחכים כמה דקות וחוזרים על השלב הזה.אחרי שהבדיקה מסתיימת בהצלחה, מקישים על Ctrl+C כדי לעצור את שרת האינטרנט.
יצירת אישור
כדי ליצור אישור, נרשמים ל-Let's Encrypt באמצעות הרצת הפקודות הבאות במכונה הווירטואלית, כאשר YOUR_DOMAIN הוא שם הדומיין, לא כולל הפרוטוקול:
sudo pkill busybox sudo apt-get install -y certbot sudo certbot certonly --standalone -d YOUR-DOMAIN
במהלך התהליך, יכול להיות ש-Let's Encrypt תבקש כתובת אימייל כדי לשלוח תזכורת כשתוקף האישור יפוג (כברירת מחדל, 3 חודשים אחרי ההנפקה). אתם צריכים גם להסכים לתנאים ולהגבלות של Let's Encrypt.
אחרי שהרישום יסתיים, תופיע ההודעה Congratulations! Your certificate and chain have been saved at....
הוספת האישור לפרויקט
כדי להוסיף את האישור לפרויקט, מריצים את הפקודות הבאות במכונה הווירטואלית:
sudo su cd /etc/letsencrypt/live/YOUR_DOMAIN gcloud compute ssl-certificates create my-cert --certificate=fullchain.pem --private-key=privkey.pem
אחרי שיוצרים את האישור, מופיעה הודעה שדומה לזו: Created
[https://www.googleapis.com/compute/v1/projects/example-project/global/sslCertificates/my-cert]
לפני שממשיכים, סוגרים את סשן ה-SSH.
שלב 4: יצירת מאזן עומסים
לפני שמתחילים את השלב הזה, צריך לוודא שסגרתם את סשן ה-SSH שהתחלתם בשלב הקודם. כשהכול מוכן, פועלים לפי השלבים הבאים כדי ליצור מאזן עומסים:
במסוף Google Cloud , נכנסים לדף Network Services > Create a load balancer ובוחרים את הפרויקט שבו רוצים ליצור מאזן עומסים.
כניסה לדף יצירת מאזן עומסיםבקטע איזון עומסים של HTTP(S), לוחצים על Start configuration.
בוחרים באפשרות From Internet to my VMs.
בדף New external Application Load Balancer שמופיע, מזינים Name למאזן העומסים.
לוחצים על Backend configuration.
בקטע שירותי קצה עורפי וקטגוריות קצה עורפי, בוחרים באפשרות יצירת שירות קצה עורפי.
נותנים שם לשירות לקצה העורפי, למשל
my-backend-service.
בקטע Security, בוחרים באפשרות Enable IAP to secure access to your applications.
Cloud CDN ו-IAP לא תואמים. אם Cloud CDN מופעל ואתם מפעילים את IAP, Cloud CDN מושבת באופן אוטומטי.
לוחצים על יצירה. הדף Load balancing נטען, ומאזן העומסים החדש מופיע ברשימת מאזני העומסים.
אחרי שמסוף Google Cloud מסיים ליצור את מאזן העומסים החדש, לוחצים על השם של מאזן העומסים ורושמים את כתובת ה-IP החיצונית שמופיעה בקטע Details > Frontend. תשתמשו בו בשלב הבא.
הגדרת הדומיין כך שיפנה למאזן העומסים
כדי להגדיר את הדומיין כך שיפנה למאזן העומסים, צריך להגדיר רשומות A לפי השלבים הבאים:
- נכנסים לחשבון של הדומיין אצל מארח הדומיין.
- מוצאים את הדף שבו מעדכנים את רשומות ה-DNS של הדומיין. השם של הדף יכול להיות "ניהול DNS", "ניהול שרת השמות" או "הגדרות מתקדמות".
- משנים את רשומות ה-A לערכים הבאים:
- שם/מארח/כינוי: @
- Value: כתובת ה-IP החיצונית של מאזן העומסים שיצרתם קודם. אל תכללו את היציאה
:443ברשומת ה-DNS. - TTL: ברירת המחדל של הרשם, או 86400 (יום אחד).
- מחכים שרשומת ה-DNS תתעדכן. יכול להיות שיעבור עד יום עד שהרשומה שהוספתם תתעדכן.
- כדי לבדוק את מאזן העומסים, משתמשים בדפדפן אינטרנט כדי לעבור לדומיין באמצעות פרוטוקול
https://.- אם מאזן העומסים עדיין לא מוגדר, תופיע השגיאה "HTTP 502".
- כשהמאזן העומסים מוכן, מופיעה ההודעה "Unauthorized request".
הפעלה מחדש של המכונות הווירטואליות
כדי לאמת בצורה נכונה בקשות מ-IAP, צריך להפעיל מחדש את המכונות הווירטואליות ב-MIG.
- במסוף Google Cloud , נכנסים לדף Compute Engine > Instance groups.
כניסה לדף Instance groups - לוחצים על my-managed-instance-group.
- בחלק העליון של פרטי קבוצת המכונות שמופיעים, לוחצים על Rolling Restart/Replace.
- בדף Restart/replace instances of my-managed-instance-group, מגדירים את הערכים הבאים:
- פעולה: הפעלה מחדש
- מספר מקסימלי של מכונות לא זמינות: 3 מכונות מתוך 3 מכונות
- זמן המתנה מינימלי: 0 שניות
- כשמסיימים לעדכן את הערכים, לוחצים על הפעלה מחדש.
שלב 5: הגדרת IAP
הגדרת חומת האש
בשלב הבא, מגדירים את חומת האש כך שתחסום את הגישה למכונות הווירטואליות הבסיסיות ותאפשר גישה רק דרך IAP:
נכנסים לדף VPC network > Firewall rules במסוף Google Cloud .
כניסה לדף FIREWALL RULESמסמנים את התיבה לצד הכללים הבאים:
default-allow-http
default-allow-https
default-allow-internal
לוחצים על Delete.
לוחצים על Create firewall rule ומגדירים את הערכים הבאים:
שם: allow-iap-traffic
טירגוט: כל המופעים ברשת
טווחי כתובות IP של מקור (מקישים על Enter אחרי שמדביקים כל ערך בשדה): צריך לאפשר תנועה מטווחי כתובות ה-IP האלה כדי שמאזן העומסים יוכל לתקשר עם הקצוות העורפיים.
130.211.0.0/22
35.191.0.0/16
פרוטוקולים ויציאות:
פרוטוקולים ויציאות שצוינו
tcp:80
כשמסיימים לעדכן את הערכים, לוחצים על יצירה.
הגדרת IAP
כדי להגדיר את IAP בפרויקט:
1. במסוף Google Cloud , נכנסים לדף Security > Identity-Aware Proxy ובוחרים את הפרויקט שבו רוצים להפעיל את IAP.כניסה לדף שרת proxy לאימות זהויות (IAP) 1. אם עדיין לא הגדרתם את מסך ההסכמה ל-OAuth בפרויקט, תתבקשו לעשות את זה:
-
עוברים אל מסך ההסכמה ל-OAuth.
הגדרת מסך ההסכמה - בקטע כתובת אימייל לתמיכה, בוחרים את כתובת האימייל שרוצים להציג כאיש קשר ציבורי. כתובת האימייל צריכה להיות שייכת לחשבון המשתמש שאליו מחוברים כרגע, או לקבוצת Google שבה המשתמש שאליו מחוברים כרגע מוגדר כמנהל או כבעלים.
- מזינים את שם האפליקציה שרוצים להציג.
- מוסיפים פרטים אופציונליים שרוצים.
- לוחצים על Save.
כדי לשנות בהמשך מידע במסך ההסכמה של OAuth, כמו שם המוצר או כתובת האימייל, צריך לחזור על השלבים הקודמים להגדרת מסך ההסכמה.
1. ליד my-backend-service, 1. בחלון Turn on IAP שמופיע, מסמנים את התיבה שליד "I have read the configuration requirements and configured my Compute Engine resource according to the documentation". 1. לוחצים על הפעלה.הוספת חשבונות משתמשים לרשימת הגישה
בשלב הבא, מוסיפים חשבונות משתמשים לרשימת הגישה של IAP בפרויקט.
- בקטע Access שבצד ימין של הדף Security > שרת proxy לאימות זהויות (IAP), לוחצים על Add.
- מזינים את חשבונות המשתמשים שרוצים לתת להם גישה, כולל החשבון שלכם, ומקצים להם את התפקיד משתמש באפליקציית אינטרנט באבטחת IAP. חשבונות המשתמשים יכולים להיות:
- חשבונות Google: user@gmail.com
- קבוצות Google: admins@googlegroups.com
- חשבונות שירות: server@example.
- דומיינים ב-Google Workspace: example.com
שלב 6: בודקים את ה-IAP
כדי לבדוק ש-IAP פועל בצורה תקינה, פועלים לפי השלבים הבאים:
1. בדפדפן האינטרנט, עוברים לדומיין. אם מופיעה ההודעה "בקשה לא מורשית", נסו שוב בעוד כמה דקות. 1. כשמופיע מסך הכניסה של Google, נכנסים באמצעות חשבון Google שנתתם לו גישה בשלב הקודם. 1. מופיעה הודעה כמו "Hi, user@example.com. I am my-managed-instance-group-29z6". 1. כדאי לרענן את הדף. בדפדפן אמורים להופיע השמות של 3 המכונות בקבוצת מופעי מכונה מנוהלים. זהו מאזן העומסים שמפזר את התנועה בין המכונות הווירטואליות בקבוצה.כל הכבוד! הפעלתם בהצלחה שירות עם איזון עומסים באמצעות IAP.
הסרת המשאבים
כדי להימנע מחיובים בחשבון Google Cloud בגלל השימוש במשאבים שנעשה במסגרת המדריך הזה, אפשר למחוק את הפרויקט שמכיל את המשאבים או להשאיר את הפרויקט ולמחוק את המשאבים הנפרדים.
אחרי שמסיימים להגדיר את IAP ל-Compute Engine, אפשר להסיר את המשאבים שיצרתם ב- Google Cloud כדי שלא תחויבו עליהם בעתיד. בסעיפים הבאים מוסבר איך למחוק או להשבית את המשאבים האלו.
מחיקת הפרויקט
הדרך הקלה ביותר לבטל את החיוב היא למחוק את הפרויקט שיצרתם בשביל המדריך.
כדי למחוק את הפרויקט:
- נכנסים לדף Manage resources במסוף Google Cloud .
- ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
- כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.
מחיקת מכונות
כדי למחוק מכונה של Compute Engine:
- נכנסים לדף VM instances במסוף Google Cloud .
- מסמנים את התיבה של המכונה שרוצים למחוק.
- כדי למחוק את המכונה, לוחצים על More actions ואז על Delete ופועלים לפי ההוראות.
מחיקת כללי חומת האש של רשת ברירת המחדל
כדי למחוק כלל של חומת אש:
- נכנסים לדף Firewall במסוף Google Cloud .
- מסמנים את התיבה של כלל חומת האש שרוצים למחוק.
- כדי למחוק את כלל חומת האש, לוחצים על Delete.
המאמרים הבאים
- נסו לשנות את האפליקציה לדוגמה שבה השתמשנו במדריך הזה כדי להציג נתונים אחרים.
- בשיטות המומלצות מוסבר איך לכתוב אפליקציות משלכם ולאבטח אותן באמצעות IAP.