אפשר להעביר את הנתונים ברשתות פרטיות על ידי יצירת קישוריות בין כתובות ה-IP הפרטיות של מסדי הנתונים של המקור והיעד. כדי להגדיר כתובות IP פרטיות למסד הנתונים של היעד, אפשר להשתמש בגישה לשירותים פרטיים עם קישור בין רשתות VPC שכנות (peering), או ב-Private Service Connect.
לכל שיטת חיבור יש יתרונות וחסרונות ייחודיים. חשוב לבחור את הגישה שהכי מתאימה לתרחיש שלכם. מידע נוסף על גישה לשירותים פרטיים ועל Private Service Connect ב-Cloud SQL זמין במאמר סקירה כללית על כתובות IP פרטיות במאמרי העזרה של Cloud SQL.
הגדרת קישוריות באמצעות קישור בין רשתות VPC שכנות (peering)
קישור בין רשתות שכנות (peering) של VPC פועל על ידי הגדרת רשתות ה-VPC כך שיוכלו לתקשר ביניהן. אם המקור נמצא באותו Google Cloud פרויקט ב-Cloud SQL או ב-Compute Engine, ההגדרה הזו מאפשרת ליעד לתקשר עם המקור ישירות. אם המקור נמצא ב-VPN (לדוגמה, ב-AWS או ב-VPN מקומי משלכם), צריך להגדיר את ה-VPN של המקור ואת Cloud VPN כך שיפעלו יחד. מידע נוסף זמין במאמר חיבור רשתות VPC באמצעות רשתות VPN.אין תמיכה בשרשור של רשתות VPC. אם המקור נמצא בפרויקט אחר Google Cloud , אפשר לעיין במאמר סקירה כללית על VPC משותף כדי ללמוד איך לחבר משאבים מכמה פרויקטים לרשת VPC משותפת לקישור בין רשתות VPC שכנות.
צריך להגדיר את חומת האש של שרת מסד הנתונים של המקור כך שתאפשר את כל טווח כתובות ה-IP הפנימיות שהוקצה לחיבור השירות הפרטי של רשת ה-VPC שבה מכונת היעד של Cloud SQL תשתמש.
כדי למצוא את טווח כתובות ה-IP הפנימיות שהוקצה לגישה לשירותים פרטיים:
המסוף
פותחים את הדף Virtual Private Cloud networks במסוף Google Cloud .
בוחרים את רשת ה-VPC שרוצים להשתמש בה.
בוחרים באפשרות גישה לשירותים פרטיים > הקצאת טווחי כתובות IP לשירותים.
מוצאים את טווח כתובות ה-IP הפנימיות שמשויך לחיבור שנוצר על ידי servicenetworking-googleapis-com.
gcloud
מחליפים את המשתנה PROJECT_ID במזהה הפרויקט שבו נמצאת רשת ה-ענן וירטואלי פרטי (VPC).
gcloud compute addresses list \
--global \
--filter="purpose=VPC_PEERING" \
--project=PROJECT_ID
הגדרת מקור למכונות Compute Engine ולמכונות בניהול עצמי
אם מסד הנתונים של המקור מתארח במכונה של Compute Engine באותו ענן וירטואלי פרטי או בענן וירטואלי פרטי שכנה:
יוצרים כלל חומת אש ברשת הענן הווירטואלי הפרטי (VPC) שמאפשר תעבורת נתונים נכנסת (ingress) מטווחי ה-IP שהוקצו ליציאת מסד הנתונים של המקור (ברירת המחדל היא
5432ל-PostgreSQL ו-3306ל-MySQL):gcloud compute firewall-rules create FIREWALL_RULE_NAME \ --network=VPC_NETWORK_NAME \ --direction=INGRESS \ --priority=1000 \ --action=ALLOW \ --rules=tcp:5432 \ --source-ranges=ALLOCATED_PEERING_RANGE \ --target-tags=SOURCE_VM_TAG \ --project=PROJECT_IDמחליפים את מה שכתוב בשדות הבאים:
- FIREWALL_RULE_NAME: שם לכלל חומת האש (לדוגמה,
allow-cloudsql-dms-ingress). - VPC_NETWORK_NAME: השם של רשת הענן הווירטואלי הפרטי שבה נמצא מסד הנתונים של המקור.
- ALLOCATED_PEERING_RANGE: טווח כתובות ה-IP הפנימיות שהוקצה לגישה לשירותים פרטיים (לדוגמה,
10.102.0.0/16). - SOURCE_VM_TAG: תג הרשת שמוחל על מופע המכונה הווירטואלית של Compute Engine כמקור.
- PROJECT_ID: המזהה של הפרויקט שמכיל את רשת ה-VPC.
- FIREWALL_RULE_NAME: שם לכלל חומת האש (לדוגמה,
מגדירים את אימות הלקוח בקובץ
pg_hba.conf. צריך לעדכן את/etc/postgresql/<version>/main/pg_hba.confבשרת המקור כדי לאפשר חיבורים ושכפול מטווח כתובות ה-IP שהוקצה:host all all ALLOCATED_PEERING_RANGE md5 host replication all ALLOCATED_PEERING_RANGE md5מחליפים את ALLOCATED_PEERING_RANGE בטווח כתובות ה-IP הפנימיות שהוקצה לגישה לשירותים פרטיים (לדוגמה,
10.102.0.0/16).טוענים מחדש את ההגדרות. מריצים את הפקודה הבאה:
sudo -u postgres psql -c "SELECT pg_reload_conf();".מאמתים את ההגדרה של
listen_addressesב-postgresql.conf. מוודאים שהמאפיין כולל את הממשק הפנימי או מוגדר ל-'*':listen_addresses = '*'
בקישור בין רשתות VPC שכנות נעשה שימוש בגישה לשירותים פרטיים, שצריך להגדיר אותה פעם אחת לכל פרויקט שמשתמש בקישור בין רשתות VPC שכנות. אחרי שמקימים private services access, בודקים את משימת ההעברה כדי לוודא שיש קישוריות.
הגדרת גישה לשירותים פרטיים עבור Database Migration Service
אם אתם משתמשים בכתובת IP פרטית עבור אחד מהמופעים של Database Migration Service, אתם צריכים להגדיר גישה לשירותים פרטיים רק פעם אחת לכל פרויקט ב-Google Cloud שיש בו מופע של Database Migration Service או שצריך להתחבר אליו.
כדי להגדיר גישה לשירותים פרטיים, צריך את תפקיד ה-IAM compute.networkAdmin. אחרי שתגדירו גישה לשירותים פרטיים ברשת שלכם, לא תצטרכו יותר את תפקיד compute.networkAdmin IAM כדי להגדיר מכונה וירטואלית לשימוש בכתובת IP פרטית.
כדי להשתמש בגישה לשירותים פרטיים, צריך קודם להקצות טווח של כתובות IP פנימיות, אחר כך ליצור חיבור פרטי ואז לייצא מסלול מותאם אישית.
טווח מוקצה הוא בלוק CIDR שמור, שאחרת אי אפשר להשתמש בו ברשת ה-VPC המקומית. כשיוצרים חיבור פרטי, מציינים הקצאה. החיבור הפרטי מקשר בין רשת ה-VPC שלכם לבין רשת ה-VPC הבסיסית (של בעלים של שירות מנוהל).
כשיוצרים חיבור פרטי, רשת ה-VPC והרשת של ספק השירות מחליפות רק מסלולים של רשתות משנה. צריך לייצא את המסלולים המותאמים אישית של רשת ה-VPC כדי שהרשת של ספק השירות תוכל לייבא אותם ולנתב את התנועה בצורה נכונה לרשת המקומית.
הגדרת קישור בין רשתות VPC שכנות (peering) קובעת את הכוונה להתחבר לרשת VPC אחרת. הרשת שלכם והרשת השנייה לא מחוברות עד שכל אחת מהן מקבלת הגדרת שותפות עבור השנייה. אחרי שברשת השנייה תהיה הגדרה תואמת לצורך יצירת קשר עם הרשת שלכם, מצב הפירינג ישתנה ל'פעיל' בשתי הרשתות, והן יתחברו. אם אין הגדרת Peering תואמת ברשת השנייה, מצב ה-Peering יישאר INACTIVE, כלומר הרשת שלכם לא מחוברת לרשת השנייה.
אחרי החיבור, שתי הרשתות תמיד מחליפות מסלולי רשת משנה. אפשר לייבא מסלולים מותאמים אישית סטטיים ודינמיים מרשת שנוצרה איתה שותפות, אם היא הוגדרה לייצא אותם.
תהליך ההגדרה של הגישה לשירותים פרטיים מורכב משני חלקים:
- הקצאת טווח כתובות IP. הטווח כולל את כל המקרים.
- יצירת חיבור פרטי מרשת ה-VPC לרשת של בעלים של שירות מנוהל.
הקצאת טווח כתובות IP
המסוף
- נכנסים לדף VPC networks במסוף Google Cloud .
- בוחרים את רשת ה-VPC שרוצים להשתמש בה.
- לוחצים על הכרטיסייה Private service connection (חיבור שירות פרטי).
- בוחרים בכרטיסייה הקצאות של טווחי כתובות IP לשירותים.
- לוחצים על הקצאת טווח כתובות IP.
בשדה Name (שם) של הטווח שהוקצה, מציינים
google-managed-services-VPC_NETWORK_NAME, כאשרVPC_NETWORK_NAMEהוא השם של רשת ה-VPC שאליה מתחברים (לדוגמה,google-managed-services-default). השדה Description (תיאור) הוא אופציונלי.לוחצים על הקצאה כדי ליצור את טווח הכתובות המוקצה.
gcloud
מבצעים אחת מהפעולות הבאות:
כדי לציין טווח כתובות ואורך קידומת (מסכה של רשת משנה), משתמשים בדגלים
addressesו-prefix-length. לדוגמה, כדי להקצות את בלוק ה-CIDR192.168.0.0/16, מציינים192.168.0.0לכתובת ו-16לאורך הקידומת.gcloud compute addresses create google-managed-services-[VPC_NETWORK_NAME] \ --global \ --purpose=VPC_PEERING \ --addresses=192.168.0.0 \ --prefix-length=16 \ --network=[VPC_NETWORK_NAME]כדי לציין רק אורך של קידומת (מסכה של רשת משנה), פשוט משתמשים בדגל
prefix-length. כשמשמיטים את טווח הכתובות, Google Cloudבוחר באופן אוטומטי טווח כתובות שלא נמצא בשימוש ברשת ה-VPC. בדוגמה הבאה נבחר טווח כתובות IP שלא נמצא בשימוש עם אורך קידומת של16ביטים.gcloud compute addresses create google-managed-services-[VPC_NETWORK_NAME] \ --global \ --purpose=VPC_PEERING \ --prefix-length=16 \ --network=[VPC_NETWORK_NAME]
מחליפים את [VPC_NETWORK_NAME] בשם של רשת ה-VPC, למשל my-vpc-network.
בדוגמה הבאה מוקצה טווח כתובות IP שמאפשר למשאבים ברשת ה-VPC my-vpc-network להתחבר למופעים של Database Migration Service באמצעות כתובת IP פרטית.
gcloud compute addresses create google-managed-services-my-vpc-network \
--global \
--purpose=VPC_PEERING \
--prefix-length=16 \
--network=my-vpc-network \
--project=my-project
יצירת חיבור פרטי
המסוף
- נכנסים לדף VPC networks במסוף Google Cloud .
- בוחרים את רשת ה-VPC שרוצים להשתמש בה.
- לוחצים על הכרטיסייה Private service connection (חיבור שירות פרטי).
- בוחרים בכרטיסייה Private connections to services (חיבורים פרטיים לשירותים).
- לוחצים על יצירת חיבור כדי ליצור חיבור פרטי בין הרשת שלכם לבין בעלים של שירות מנוהל.
- בשדה הקצאה שהוקצתה, בוחרים טווחים קיימים שהוקצו ולא נמצאים בשימוש של ספקי שירות אחרים, ואז לוחצים על אישור.
- לוחצים על קישור כדי ליצור את הקישור.
gcloud
יוצרים חיבור פרטי.
gcloud services vpc-peerings connect \ --service=servicenetworking.googleapis.com \ --ranges=google-managed-services-[VPC_NETWORK_NAME] \ --network=[VPC_NETWORK_NAME] \ --project=[PROJECT_ID]מחליפים את
[VPC_NETWORK_NAME]בשם של רשת ה-VPC ואת[PROJECT_ID]במזהה של הפרויקט שמכיל את רשת ה-VPC.הפקודה מפעילה פעולה ממושכת ומחזירה שם פעולה.
בודקים אם הפעולה הצליחה.
gcloud services vpc-peerings operations describe \ --name=[OPERATION_NAME]מחליפים את
[OPERATION_NAME]בשם הפעולה שהתקבל בשלב הקודם.
כשיוצרים חיבור פרטי, אפשר לציין יותר מטווח מוקצה אחד. לדוגמה, אם טווח מסוים מוצה, אפשר להקצות טווחים נוספים. השירות משתמש בכתובות IP מכל הטווחים שציינתם, לפי הסדר שבו הם מופיעים.
ייצוא של מסלולים בהתאמה אישית
עדכון של חיבור קיים של קישור בין רשתות VPC שכנות כדי לשנות את האפשרות אם רשת ה-VPC מייצאת או מייבאת מסלולים מותאמים אישית אל רשת ה-VPC השכנה או ממנה.
הרשת שלכם מייבאת מסלולים מותאמים אישית רק אם רשת הפירינג מייצאת גם מסלולים מותאמים אישית, ורשת הפירינג מקבלת מסלולים מותאמים אישית רק אם היא מייבאת אותם.
המסוף
- נכנסים לדף VPC Network Peering במסוף Google Cloud .
לדף VPC Network Peering - בוחרים את חיבור ה-Peering שרוצים לעדכן.
- לוחצים על עריכה.
- כדי לעדכן את ההגדרות של המסלולים המותאמים אישית, מסמנים או מבטלים את הסימון של האפשרות ייבוא מסלולים מותאמים אישית או ייצוא מסלולים מותאמים אישית.
- לוחצים על SAVE.
gcloud
מעדכנים את חיבור ה-Peering כדי לשנות את הגדרות הייבוא או הייצוא של מסלולים מותאמים אישית.
gcloud compute networks peerings update [PEERING-NAME] \
--network=[MY-LOCAL-NETWORK] \
[--[no-]import-custom-routes] \
[--[no-]export-custom-routes]
הקצאת התפקיד roles/servicenetworking.serviceAgent
gcloud beta services identity create \
--service=servicenetworking.googleapis.com \
--project=project-id
gcloud projects add-iam-policy-binding project-id \
--member="service-account-prefix@service-networking.iam.gserviceaccount.com" \
--role="roles/servicenetworking.serviceAgent"
הגדרת קישוריות באמצעות ממשקי Private Service Connect
במיגרציות הומוגניות, Cloud SQL יכול להשתמש בממשקי Private Service Connect כדי ליצור חיבור ברשתות פרטיות בלי לנצל את מכסת הקישור בין רשתות שכנות של הענן הווירטואלי הפרטי (VPC). שיטת הקישוריות הזו זמינה רק כשמעבירים למופע קיים.
כדי להשתמש בממשקי Private Service Connect, צריך לבצע את הפעולות הבאות:
יוצרים מכונת Cloud SQL עם Private Service Connect. מידע נוסף זמין במאמר בנושא יצירת מכונה עם Private Service Connect במסמכי התיעוד של Cloud SQL.
מגדירים Private Service Connect לקישוריות יוצאת במכונת היעד:
יוצרים קובץ מצורף לרשת בענן הווירטואלי הפרטי (VPC) שבו נמצא מסד הנתונים של המקור. שימו לב: טווח תת-הרשת ששמור למחבר הרשת חייב להיות בטווח RFC 1918:
gcloud compute network-attachments create NETWORK_ATTACHMENT_NAME \ --region=REGION \ --subnets=NETWORK_ATTACHMENT_SUBNET \ --connection-preference=ACCEPT_AUTOMATIC \ --project=PROJECT_IDמחליפים את מה שכתוב בשדות הבאים:
- NETWORK_ATTACHMENT_NAME: שם לחיבור לרשת (לדוגמה,
dms-psc-attachment). - REGION: האזור שבו נמצאים רשת המשנה ומופע Cloud SQL של היעד.
- NETWORK_ATTACHMENT_SUBNET: השם של תת-הרשת ששמורה למחבר הרשת.
- PROJECT_ID: המזהה של הפרויקט שמכיל את רשת ה-VPC.
- NETWORK_ATTACHMENT_NAME: שם לחיבור לרשת (לדוגמה,
מקצים את מחבר הרשת למכונת היעד של Cloud SQL. פרטים נוספים זמינים במאמר בנושא הגדרת קישוריות יוצאת במאמרי העזרה של Cloud SQL.
למקורות בניהול עצמי בלבד: מוודאים שמסד הנתונים של המקור מאפשר תעבורה נכנסת מתת-הרשת של מחבר הרשת. בודקים את הכללים של חומת האש. מוודאים שקיים כלל חומת אש שמאפשר תעבורת נתונים נכנסת (ingress) ביציאה 5432 של מסד הנתונים מ-CIDR של קובץ הרשת.
ב-
pg_hba.confבמכונת המקור, מוודאים שיש רשומות שמאפשרות חיבורים מטווח ה-CIDR של תת-הרשת שמשויכת למחבר הרשת. כדי למצוא את תת-הרשת שמשויכת לחיבור הרשת ואת טווח ה-CIDR שלה, אפשר לעיין במאמרים תיאור חיבורי רשת ותיאור תת-רשת במסמכי התיעוד של הענן הווירטואלי הפרטי.כשיוצרים את משימת ההעברה, בוחרים באפשרות ממשק PSC כשיטת הקישוריות.