בדף הזה מוסבר איך להתחבר למכונה של Cloud SQL מחוץ לענן הווירטואלי הפרטי (VPC) שהוגדר לה.
לפני שמתחילים
לפני שמתחילים, חשוב לוודא שביצעתם את הפעולות הבאות:
- יוצרים מכונה של Cloud SQL.
- מגדירים את המכונה כך שתשתמש בכתובת IP פנימית במקום בכתובת IP חיצונית.
מידע על חיבורים חיצוניים
מכונת Cloud SQL מורכבת מכמה צמתים בתוך VPC שמנוהל על ידי Google. כשיוצרים מכונה, מגדירים גם גישה לשירותים פרטיים או Private Service Connect בין אחד מה-VPC שלכם לבין ה-VPC שמנוהל על ידי Google ומכיל את המכונה החדשה. החיבור הזה מאפשר לכם להשתמש בכתובות IP פנימיות כדי לגשת למשאבים ב-VPC של המכונה, כאילו הם חלק מה-VPC שלכם.
במצבים הבאים, צריך להתחבר למכונה מחוץ ל-VPC המחובר:
האפליקציה פועלת מחוץ ל-VPC שבו השתמשתם כדי להתחבר למכונה דרך גישה לשירותים פרטיים או דרך Private Service Connect.
האפליקציה פועלת ב-VPC שנמצא מחוץ לרשת של Google.
האפליקציה פועלת במכונה שנמצאת במקום אחר באינטרנט הציבורי.
בכל המקרים האלה, צריך להגדיר שירות נוסף כדי לאפשר חיבור חיצוני כזה למכונה של Cloud SQL.
אנחנו ממליצים על הפתרונות הבאים ליצירת חיבורים חיצוניים, בהתאם לצרכים שלכם:
לפיתוח פרויקטים או ליצירת אב טיפוס, או לסביבת ייצור בעלות נמוכה יחסית, מגדירים מכונה וירטואלית (VM) מתווכת – שנקראת גם מכונת באסטיון – בתוך ה-VPC. יש שיטות שונות להשתמש במכונה הווירטואלית המתווכת הזו כדי להפוך אותה לחיבור מאובטח בין סביבת אפליקציה חיצונית לבין המכונה של Cloud SQL.
בסביבות ייצור שדורשות זמינות גבוהה, כדאי ליצור חיבור קבוע בין ה-VPC לאפליקציה באמצעות Cloud VPN או Cloud Interconnect.
בקטעים הבאים מתוארים הפתרונות האלה.
התחברות באמצעות VM מתווך
כדי ליצור חיבור למכונה של Cloud SQL מחוץ ל-VPC שלה באמצעות כלים בקוד פתוח ומינימום משאבים נוספים, צריך להריץ שירות proxy במכונה וירטואלית מתווכת שמוגדרת בתוך ה-VPC. אתם יכולים להגדיר מכונה וירטואלית חדשה או להשתמש במכונה וירטואלית שכבר פועלת ב-VPC של מכונת Cloud SQL.
כפתרון בניהול עצמי, השימוש ב-VM מתווך בדרך כלל עולה פחות וזמן ההגדרה שלו מהיר יותר מאשר שימוש במוצר Network Connectivity. יש לכך גם חסרונות: הזמינות, האבטחה וקצב העברת הנתונים של החיבור תלויים במכונה הווירטואלית המתווכת, שצריך לתחזק כחלק מהפרויקט.
התחברות באמצעות IAP
באמצעות שרת proxy לאימות זהויות (IAP), אתם יכולים להתחבר למכונה של Cloud SQL באופן מאובטח בלי לחשוף את כתובת ה-IP הפנימית של המכונה הווירטואלית המתווכת. כדי להגביל את הגישה דרך הנתיב הזה, משתמשים בשילוב של כללי חומת אש וניהול זהויות והרשאות גישה (IAM). לכן, IAP הוא פתרון טוב לשימושים שאינם בסביבת הייצור, כמו פיתוח ויצירת אב טיפוס.
בתרשים הזה, IAP משמש כשער בין הלקוח החיצוני שנמצא מחוץ ל-VPC לבין המכונה הווירטואלית המתווכת שנמצאת ב-VPC. הלקוח יוצר מנהרת SSH ל-IAP. Cloud SQL Auth Proxy מצפין את התנועה בין המכונה הווירטואלית לבין המכונה של Cloud SQL. באמצעות שני שרתי ה-Proxy האלה, נוצרת תקשורת בין הלקוח לבין המכונה.
כדי להגדיר גישה של IAP למכונה:
בקליינט החיצוני, מתקינים את ה-CLI של gcloud.
במכונה הווירטואלית המתווכת, מורידים ומתקינים את Cloud SQL Auth Proxy.
במכונה הווירטואלית המתווכת, מפעילים את Cloud SQL Auth Proxy.
מכיוון שהמכונה הווירטואלית מוגדרת עם כתובת IP פנימית, כשמפעילים את Cloud SQL Auth Proxy צריך לספק את האפשרות
--private-ip.בפרויקט ב- Google Cloud , מפעילים את העברת ה-TCP של IAP.
כשמגדירים את הכלל החדש של חומת האש, מאפשרים תעבורת נתונים נכנסת מסוג TCP ליציאה
22(SSH). אם אתם משתמשים ברשת ברירת המחדל של הפרויקט, והכללdefault-allow-sshשמאוכלס מראש מופעל, אתם לא צריכים להגדיר כלל נוסף.מגדירים העברה ליציאה אחרת בין הלקוח החיצוני לבין המכונה הווירטואלית המתווכת באמצעות SSH דרך IAP:
gcloud compute ssh VM_NAME \ --tunnel-through-iap \ --zone=ZONE_NAME \ --ssh-flag="-L 1433:localhost:1433"
מחליפים את הפרטים הבאים:
- VM_NAME: שם המכונה הווירטואלית
- ZONE_NAME: שם האזור שמשויך למכונה הווירטואלית
בלקוח החיצוני, בודקים את החיבור באמצעות לקוח של SQL Server.
חיבור דרך שרת proxy מסוג SOCKS
הפעלת שירות SOCKS במכונה הווירטואלית המתווכת מספקת חיבור גמיש וניתן להתאמה למכונה של Cloud SQL, עם הצפנה מקצה לקצה שמספק Cloud SQL Auth Proxy.
מידע נוסף על השימוש בשרת proxy מסוג SOCKS כדי להתחבר למכונה של Cloud SQL זמין במאמר התחברות באמצעות שרת proxy מתווך (SOCKS5).
התחברות באמצעות מאגר חיבורים (pooler)
אם אתם צריכים להתקין ולהפעיל את Cloud SQL Auth Proxy ב-VM המתווך במקום בלקוח חיצוני, אתם יכולים להפעיל חיבורים מאובטחים אליו על ידי התאמה שלו לשרת proxy שמודע לפרוטוקול, שנקרא גם pooler. מאגר פופולרי בקוד פתוח ל-SQL Server הוא ADO.NET.
בפתרון הזה, מריצים גם את Cloud SQL Auth Proxy וגם את מאגר החיבורים במכונה הווירטואלית המתווכת. לאחר מכן, הלקוח או האפליקציה יכולים להתחבר באופן מאובטח ישירות למאגר דרך SSL, בלי צורך להפעיל שירותים נוספים. המאגר מעביר את שאילתות PostgreSQL למכונה של Cloud SQL באמצעות Cloud SQL Auth Proxy.
לכל מכונה של Cloud SQL יש כתובת IP פנימית נפרדת, ולכן כל שירות proxy יכול לתקשר רק עם מכונה ספציפית אחת: המכונה הראשית, המכונה במצב המתנה או מאגר קריאה. לכן, בכל מכונה צריך להפעיל שירות מאגר נפרד עם אישור SSL שהוגדר בהתאם.
חיבור באמצעות Cloud VPN או Cloud Interconnect
לעבודה בסביבת ייצור שדורשת זמינות גבוהה (HA), מומלץ להשתמש במוצר Google CloudNetwork Connectivity, כמו Cloud VPN או Cloud Interconnect, בהתאם לצרכים של השירות החיצוני ולטופולוגיית הרשת. לאחר מכן מגדירים את Cloud Router כדי לפרסם את הנתיבים המתאימים.
למידע נוסף על פתרונות של Network Connectivity, קראו את המאמר בחירת מוצרים של Network Connectivity.