בדף הזה מוסבר איך להגדיר גישה לשירותים פרטיים וגם Private Service Connect.
הגדרת גישה לשירותים פרטיים מאפשרת להקצות טווח כתובות IP וליצור חיבור פרטי לשירות עבור רשת הענן הווירטואלי הפרטי (VPC) בפרויקט Google Cloud . כך המשאבים ברשת ה-VPC יכולים להתחבר למופעים של Cloud SQL.
הגדרת Private Service Connect מאפשרת להתחבר למופע Cloud SQL ראשי או לכל אחת מהרפליקות לקריאה שלו מכמה רשתות VPC ששייכות לקבוצות, לצוותים, לפרויקטים או לארגונים שונים.
יצירת מכונה וירטואלית שתומכת בגישה לשירותים פרטיים וב-Private Service Connect
כשיוצרים מכונת Cloud SQL שתומכת גם בגישה לשירותים פרטיים וגם ב-Private Service Connect, נהנים מהיתרונות של שני השירותים. מידע נוסף מופיע במאמר בנושא אפשרויות חיבור למופעים.
באמצעות Private Service Connect, אתם יכולים להתחבר למופע Cloud SQL מכמה רשתות VPC ששייכות לקבוצות, לצוותים, לפרויקטים או לארגונים שונים.
אפשר ליצור מכונת Cloud SQL שתומכת בגישה לשירותים פרטיים וב-Private Service Connect באמצעות ה-CLI של gcloud או ה-API.
gcloud
כדי ליצור מכונה שתומכת בגישה לשירותים פרטיים וב-Private Service Connect, משתמשים בפקודה gcloud sql instances create:
gcloud sql instances create INSTANCE_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --enable-private-service-connect \ --allowed-psc-projects=ALLOWED_PROJECTS \ --availability-type=AVAILABILITY_TYPE \ --no-assign-ip \ --allocated-ip-range-name=RANGE_NAME \ --database-version=DATABASE_VERSION \ --cpu=NUMBER_OF_vCPUs \ --memory=MEMORY_SIZE \ --root-password=ROOT_PASSWORD \ --network=VPC_PSA_NETWORK_PATH \ --psc-auto-connections=network=VPC_PSC_NETWORK_PATH,project=SERVICE_PROJECT
מחליפים את הפרטים הבאים:
- INSTANCE_NAME: השם של המכונה.
- PROJECT_ID: המזהה או מספר הפרויקט של Google Cloud הפרויקט שמכיל את המופע.
- REGION_NAME: שם האזור של המכונה.
ALLOWED_PROJECTS: רשימה של מספרי פרויקטים או מזהי פרויקטים מותרים, מופרדת בפסיקים. אם פרויקט מסוים לא מופיע ברשימה הזו, אי אפשר ליצור בו נקודות קצה של Private Service Connect כדי להתחבר למופע.
- AVAILABILITY_TYPE: הפעלת זמינות גבוהה למכונה. לפרמטר הזה מציינים אחד מהערכים הבאים:
-
REGIONAL: הפעלה של זמינות גבוהה. מומלץ למופעי ייצור. המופע עובר לזמינות חלקית באזור אחר בתוך האזור שנבחר. ZONAL: לא מספקות יכולת מעבר לגיבוי (failover). זה ערך ברירת המחדל.
מידע נוסף על הגדרה והסרה של זמינות גבוהה למופעים זמין במאמרים הגדרת זמינות גבוהה למופע קיים והשבתת זמינות גבוהה למופע.
-
- RANGE_NAME: פרמטר אופציונלי שבו מגדירים שם טווח של כתובות IP שהוקצו. שם הטווח צריך להיות בהתאם ל-
RFC 1035ולכלול בין 1 ל-63 תווים. - DATABASE_VERSION: גרסת מסד הנתונים של המופע (לדוגמה,
SQLSERVER_2019_STANDARD). - NUMBER_OF_vCPUs: מספר ליבות המעבד של המכונה.
- MEMORY_SIZE: כמות הזיכרון של המכונה.
- ROOT_PASSWORD: הסיסמה של משתמש Cloud SQL
root. - VPC_PSA_NETWORK_PATH: השם והנתיב של רשת ה-VPC שאליה המופע מתחבר (לדוגמה,
"projects/PROJECT_ID/global/networks/default"). הרשת הזו משמשת לחיבורים של גישה לשירותים פרטיים ולכתובת ה-IP של הגישה לשירותים פרטיים של מופע Cloud SQL. - VPC_PSC_NETWORK_PATH: הנתיב לרשת ה-VPC שממנה צריך ליצור את נקודת הקצה של Private Service Connect. לדוגמה:
projects/my-host-project/global/networks/default. SERVICE_PROJECT: הפרויקט שבו נוצרה נקודת הקצה של Private Service Connect. אם רשת ה-VPC היא לא VPC משותף, הפרויקט יכול להיות רק הפרויקט המארח של הרשת. אם מדובר ב-VPC משותף, זה יכול להיות פרויקט מארח או פרויקט שירות.
במאמר חיבור למופע Cloud SQL מוסבר איך מתחברים למופע שמופעל בו Private Service Connect.
כדי להשבית את כתובת ה-IP הציבורית, משתמשים בפרמטר --no-assign-ip.
Terraform
כדי ליצור מכונה עם גישה לשירותים פרטיים ועם Private Service Connect מופעלים, משתמשים במשאב
google_sql_database_instance Terraform.
כדי להחיל את ההגדרות של Terraform בפרויקט ב- Google Cloud , מבצעים את השלבים בקטעים הבאים.
הכנת Cloud Shell
- מפעילים את Cloud Shell.
-
מגדירים את פרויקט ברירת המחדל שבו רוצים להחיל את ההגדרות של Terraform. Google Cloud
תצטרכו להריץ את הפקודה הזו רק פעם אחת לכל פרויקט, ותוכלו לעשות זאת בכל ספרייה.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
אם תגדירו ערכים ספציפיים בקובץ התצורה של Terraform, הם יבטלו את ערכי ברירת המחדל של משתני הסביבה.
הכנת הספרייה
לכל קובץ תצורה של Terraform צריכה להיות ספרייה משלו (שנקראת גם מודול ברמה הבסיסית).
-
יוצרים ספרייה חדשה ב-Cloud Shell ובה יוצרים קובץ חדש. שם הקובץ חייב לכלול את הסיומת
.tf, למשלmain.tf. במדריך הזה, הקובץ נקראmain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
אם אתם עוקבים אחרי המדריך, תוכלו להעתיק את הקוד לדוגמה בכל קטע או שלב.
מעתיקים את הקוד לדוגמה בקובץ
main.tfהחדש שיצרתם.לחלופין, אפשר גם להעתיק את הקוד מ-GitHub. כדאי לעשות את זה כשקטע הקוד של Terraform הוא חלק מפתרון מקצה לקצה.
- בודקים את הפרמטרים לדוגמה ומשנים אותם בהתאם לסביבה שלכם.
- שומרים את השינויים.
-
מפעילים את Terraform. צריך לעשות זאת רק פעם אחת לכל ספרייה.
terraform init
אופציונלי: תוכלו לכלול את האפשרות
-upgrade, כדי להשתמש בגרסה העדכנית ביותר של הספק של Google:terraform init -upgrade
החלה של השינויים
-
בודקים את ההגדרות ומוודאים שהמשאבים שמערכת Terraform תיצור או תעדכן תואמים לציפיות שלכם:
terraform plan
מתקנים את ההגדרות לפי הצורך.
-
מריצים את הפקודה הבאה ומזינים
yesבהודעה שמופיעה, כדי להחיל את הגדרות Terraform:terraform apply
ממתינים עד שב-Terraform תוצג ההודעה "Apply complete!".
- פותחים את Google Cloud הפרויקט כדי לראות את התוצאות. במסוף Google Cloud , נכנסים למשאבים בממשק המשתמש כדי לוודא שהם נוצרו או עודכנו ב-Terraform.
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: המזהה או מספר הפרויקט של Google Cloud הפרויקט שמכיל את המופע.
- INSTANCE_NAME: השם של המכונה.
- REGION_NAME: שם האזור של המכונה.
- ROOT_PASSWORD: הסיסמה של משתמש Cloud SQL
root. - AVAILABILITY_TYPE: הפעלת זמינות גבוהה למכונה. לפרמטר הזה מציינים אחד מהערכים הבאים:
-
REGIONAL: הפעלה של זמינות גבוהה. מומלץ למופעי ייצור. המופע עובר לזמינות חלקית באזור אחר בתוך האזור שנבחר. ZONAL: לא מספקות יכולת מעבר לגיבוי (failover). זה ערך ברירת המחדל.
מידע נוסף על הגדרה והסרה של זמינות גבוהה למופעים זמין במאמרים הגדרת זמינות גבוהה למופע קיים והשבתת זמינות גבוהה למופע.
-
- VPC_PSA_NETWORK_PATH: הנתיב של רשת ה-VPC שאליה המופע מתחבר (לדוגמה,
"projects/PROJECT_ID/global/networks/default"). הרשת הזו משמשת לחיבורים של גישה לשירותים פרטיים ולכתובת ה-IP של הגישה לשירותים פרטיים של מופע Cloud SQL. - RANGE_NAME: בפרמטר האופציונלי הזה, מגדירים שם טווח שלגביו מוקצה טווח כתובות IP. שם הטווח צריך להיות בהתאם ל
RFC 1035ולכלול בין 1 ל-63 תווים. ALLOWED_PROJECTS: רשימה של מספרי פרויקטים או מזהי פרויקטים מותרים, מופרדת בפסיקים. אם פרויקט מסוים לא מופיע ברשימה הזו, אי אפשר ליצור בו נקודות קצה של Private Service Connect כדי להתחבר למופע.
- VPC_PSC_NETWORK_PATH: הנתיב לרשת ה-VPC שממנה צריך ליצור את נקודת הקצה של Private Service Connect. לדוגמה:
projects/my-host-project/global/networks/default. SERVICE_PROJECT: הפרויקט שבו נוצרה נקודת הקצה של Private Service Connect. אם רשת ה-VPC היא לא VPC משותף, הפרויקט יכול להיות רק הפרויקט המארח של הרשת. אם מדובר ב-VPC משותף, זה יכול להיות פרויקט מארח או פרויקט שירות.
- MACHINE_TYPE: ערך מחרוזת ממוספר שמייצג את סוג המכונה של המופע. לדוגמה:
db-custom-NUMBER_OF_vCPUs-MEMORY_SIZE, כאשר NUMBER_OF_vCPUs הוא מספר ליבות המעבד ו-MEMORY_SIZE הוא כמות הזיכרון שרוצים להקצות למופע.
במאמר חיבור למופע Cloud SQL מוסבר איך מתחברים למופע שמופעל בו Private Service Connect.
הגדרתם את הפרמטר ipv4Enabled לערך false כי למכונה שלכם יש כתובת IP פנימית.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
תוכן בקשת JSON:
{
"name": "INSTANCE_NAME",
"project": PROJECT_ID",
"region": "REGION_NAME",
"databaseVersion": "SQLSERVER_2019_STANDARD",
"rootPassword": "ROOT_PASSWORD",
"kind": "sql#instance",
"settings": {
"availabilityType": "AVAILABILITY_TYPE",
"ipConfiguration": {
"ipv4Enabled": false,
"privateNetwork": VPC_PSA_NETWORK_PATH,
"allocatedIpRange": "RANGE_NAME",
"pscConfig": {
"allowedConsumerProjects": [
"ALLOWED_PROJECTS"
],
"pscAutoConnections": [
{
"consumerProject":"SERVICE_PROJECT",
"consumerNetwork":"projects/SERVICE_PROJECT/global/networks/VPC_PSC_NETWORK_PATH"
}
],
"pscEnabled": true
}
},
"kind": "sql#settings",
"pricingPlan": "PER_USE",
"replicationType": "SYNCHRONOUS",
"tier": "MACHINE_TYPE"
}
}כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME",
"status": "RUNNING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"startTime": "2023-06-14T18:48:35.499Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_NAME",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
השבתה של Private Service Connect במופע
אפשר להשבית את Private Service Connect במופע שבו גם הופעלה גישה לשירותים פרטיים וגם הופעל Private Service Connect.
כשמשביתים את Private Service Connect במופע, הפעולה הזו נמשכת 8 דקות, עם השבתה של כ-45 שניות במופע. אחרי שהפעולה מסתיימת, נתיבי הקישוריות של הגישה לשירותים פרטיים ושל Private Service Connect לא מתקיימים יותר במקביל באותו מופע. אי אפשר להתחבר למופע באמצעות Private Service Connect.
אפשר להשבית את Private Service Connect למכונה באמצעות ה-CLI של gcloud או ה-API.
gcloud
כדי להשבית את Private Service Connect במכונה, משתמשים בפקודה gcloud sql instances patch:
gcloud sql instances patch INSTANCE_NAME \ --project=PROJECT_ID \ --no-enable-private-service-connect \ --clear-allowed-psc-projects
מחליפים את הפרטים הבאים:
- INSTANCE_NAME: השם של המכונה
- PROJECT_ID: המזהה או מספר הפרויקט של Google Cloud הפרויקט שמכיל את המופע
Terraform
כדי להשבית את Private Service Connect במופע, משתמשים ב
google_sql_database_instance משאב Terraform.
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: המזהה או מספר הפרויקט של Google Cloud הפרויקט שמכיל את המופע
- INSTANCE_NAME: השם של המכונה
ה-method של ה-HTTP וכתובת ה-URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
תוכן בקשת JSON:
{
"kind": "sql#instance",
"name": "INSTANCE_NAME",
"project": "PROJECT_ID",
"settings": {
"ipConfiguration": {
"pscConfig": {
"pscEnabled": "false",
"allowedConsumerProjects": [{}]
}
},
"kind": "sql#settings"
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME",
"status": "RUNNING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"startTime": "2023-06-14T18:48:35.499Z",
"operationType": "UPDATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_NAME",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
הפעלת Private Service Connect למופע
אפשר להפעיל את Private Service Connect עבור מופע שכבר מופעלת בו גישה לשירותים פרטיים. אתם יכולים להשתמש ב-Private Service Connect כדי להתחבר למופע Cloud SQL מכמה רשתות VPC.
כשמפעילים את Private Service Connect עבור המופע, הפעולה הזו נמשכת 8 דקות, עם השבתה של כ-45 שניות במופע. אחרי שהפעולה מסתיימת, נתיבי הקישוריות של הגישה לשירותים פרטיים ושל Private Service Connect מתקיימים במקביל באותו מופע.
אפשר להפעיל את Private Service Connect למכונה באמצעות ה-CLI של gcloud או ה-API.
gcloud
כדי להפעיל את Private Service Connect למכונה, משתמשים בפקודה gcloud sql instances patch:
gcloud sql instances patch INSTANCE_NAME \ --project=PROJECT_ID \ --enable-private-service-connect \ --allowed-psc-projects=ALLOWED_PROJECTS \ --psc-auto-connections=network=VPC_PSC_NETWORK_PATH,project=SERVICE_PROJECT
מחליפים את הפרטים הבאים:
- INSTANCE_NAME: השם של המכונה
- PROJECT_ID: המזהה או מספר הפרויקט של Google Cloud הפרויקט שמכיל את המופע
ALLOWED_PROJECTS: רשימה של מספרי פרויקטים או מזהי פרויקטים מותרים, מופרדת בפסיקים. אם פרויקט מסוים לא מופיע ברשימה הזו, אי אפשר ליצור בו נקודות קצה (endpoint) של Private Service Connect כדי להתחבר למופע.
- VPC_PSC_NETWORK_PATH: הנתיב לרשת ה-VPC שממנה נוצרת נקודת הקצה של Private Service Connect. לדוגמה:
projects/my-host-project/global/networks/default. SERVICE_PROJECT: הפרויקט שבו נוצרה נקודת הקצה של Private Service Connect. אם רשת ה-VPC היא לא VPC משותף, הפרויקט יכול להיות רק הפרויקט המארח של הרשת. אם מדובר ב-VPC משותף, זה יכול להיות פרויקט מארח או פרויקט שירות.
במאמר חיבור למופע Cloud SQL מוסבר איך מתחברים למופע שמופעל בו Private Service Connect.
Terraform
כדי להפעיל את Private Service Connect למופע, משתמשים ב
משאב Terraform google_sql_database_instance.
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: המזהה או מספר הפרויקט של Google Cloud הפרויקט שמכיל את המופע.
- INSTANCE_NAME: השם של המכונה.
- ALLOWED_PROJECTS: רשימה של מספרי פרויקטים או מזהי פרויקטים מותרים, מופרדת בפסיקים. הפרויקטים האלה מבטלים פרויקטים שכבר הוגדרו לשימוש ב-Private Service Connect. אם פרויקט מסוים לא מופיע ברשימה הזו, אי אפשר ליצור בו נקודות קצה (endpoint) של Private Service Connect כדי להתחבר למופע.
- VPC_PSC_NETWORK_PATH: הנתיב לרשת ה-VPC שממנה נוצרת נקודת הקצה של Private Service Connect. לדוגמה:
projects/my-host-project/global/networks/default. SERVICE_PROJECT: הפרויקט שבו נוצרה נקודת הקצה של Private Service Connect. אם רשת ה-VPC היא לא VPC משותף, הפרויקט יכול להיות רק הפרויקט המארח של הרשת. אם מדובר ב-VPC משותף, זה יכול להיות פרויקט מארח או פרויקט שירות.
ה-method של ה-HTTP וכתובת ה-URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
תוכן בקשת JSON:
{
"kind": "sql#instance",
"name": "INSTANCE_NAME",
"project": "PROJECT_ID",
"settings": {
"ipConfiguration": {
"pscConfig": {
"pscAutoConnections": [
{
"consumerProject":"SERVICE_PROJECT",
"consumerNetwork":"projects/SERVICE_PROJECT/global/networks/VPC_PSC_NETWORK_PATH"
}
],
"pscEnabled": "true",
"allowedConsumerProjects": [ALLOWED_PROJECTS]
}
},
"kind": "sql#settings"
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME",
"status": "RUNNING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"startTime": "2023-06-14T18:48:35.499Z",
"operationType": "UPDATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_NAME",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
במאמר חיבור למופע Cloud SQL מוסבר איך מתחברים למופע שמופעל בו Private Service Connect.