הגדרת גישה לשירותים פרטיים

במאמר הזה מוסבר איך להגדיר חיבורים של כתובות IP פרטיות למכונה של Cloud SQL באמצעות גישה לשירותים פרטיים.

לפני שמתחילים

ב-Cloud SQL נדרשת גישה לשירותים פרטיים לכל רשת VPC שמשמשת לקישורים דרך IP פרטיים.

הפעלת ממשקי ה-API הנדרשים

מפעילים את Service Networking API‏ (servicenetworking.googleapis.com) ואת Compute Engine API‏ (compute.googleapis.com) בפרויקט שמארח את המכונה של Cloud SQL.

אם אתם משתמשים ברשת VPC משותפת, אתם צריכים להפעיל את ממשקי ה-API האלה גם בפרויקט המארח של ה-VPC המשותף.

כדי להפעיל את ממשקי ה-API, אפשר להשתמש בפקודה הבאה:

gcloud services enable servicenetworking.googleapis.com compute.googleapis.com --project=PROJECT_ID

מחליפים את PROJECT_ID במזהה הפרויקט (או במזהה הפרויקט המארח של ה-VPC המשותף).

אם Service Networking API לא מופעל, כשיוצרים את מכונת Cloud SQL עם כתובת IP פרטית, הפעולה נכשלת ומופיעה השגיאה SERVICE_NETWORKING_NOT_ENABLED.

תפקידים והרשאות נדרשים

כדי לקבל את ההרשאות שנדרשות ליצירה ולניהול של חיבור גישה לשירותים פרטיים, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד אדמין רשתות Compute ‏ (roles/compute.networkAdmin) בפרויקט שמארח את המכונה של Cloud SQL. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

זהו תפקיד מוגדר מראש עם ההרשאות שנדרשות ליצירה ולניהול של חיבור גישה פרטית לשירותים. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:

ההרשאות הנדרשות

כדי ליצור ולנהל חיבור של גישה לשירותים פרטיים, נדרשות ההרשאות הבאות:

  • compute.addresses.create
  • compute.addresses.list
  • compute.globalAddresses.create
  • compute.globalAddresses.createInternal
  • compute.globalAddresses.list
  • compute.networks.list
  • compute.networks.use
  • servicenetworking.services.addPeering
  • serviceusage.services.list

יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.

אם אתם משתמשים ברשת VPC משותפת, אתם צריכים גם להקצות למשתמש את התפקיד "אדמין רשתות Compute" (roles/compute.networkAdmin) בפרויקט המארח של ה-VPC המשותף.

הגדרת גישה לשירותים פרטיים ל-Cloud SQL

תהליך ההגדרה של גישה לשירותים פרטיים מורכב משני חלקים:

  • בוחרים טווח כתובות IP קיים או מקצים טווח חדש.

    אם יוצרים את המכונה של Cloud SQL במסוף Google Cloud , אפשר גם לתת ל-Google להקצות טווח של כתובות IP. במקרה כזה, Google תקצה באופן אוטומטי טווח כתובות IP באורך קידומת /24 ותשתמש בשם default-ip-range.

    אם אתם מתכננים ליצור מכונות של Cloud SQL בכמה אזורים או לסוגים שונים של מסדי נתונים, צריך שיהיה לכם טווח של כתובות IP זמינות בגודל /24 לפחות לכל אזור או סוג של מסד נתונים. כולל אפליקציות אחרות כמו Filestore או Memorystore. כדי להשתמש באזור חדש או בסוג חדש של מסד נתונים, צריך שיהיה ל-Cloud SQL טווח כתובות /24 בחינם.

  • יוצרים את החיבור לשירותים הפרטיים מרשת ה-VPC לרשת של הבעלים של השירות המנוהל.

במאמר דרישות לקישור דרך IP פרטי מפורטות הדרישות של סביבת הרשת והאפליקציה, והרשאות ה-IAM שנדרשות לגישה לשירותים פרטיים.

הקצאת טווח של כתובות IP

המסוף

  1. במסוף Google Cloud , נכנסים לדף רשתות VPC.

    כניסה לרשתות VPC

  2. בוחרים את רשת ה-VPC שרוצים להשתמש בה.
  3. לוחצים על הכרטיסייה Private services access.
  4. בוחרים בכרטיסייה Allocated IP ranges for services.
  5. לוחצים על הקצאת טווח כתובות IP.
  6. בשדה Name של הטווח שהוקצה, מציינים את הערך google-managed-services-VPC_NETWORK_NAME, כאשר VPC_NETWORK_NAME הוא השם של רשת ה-VPC שאליה מתחברים (לדוגמה, google-managed-services-default). השדה Description הוא אופציונלי.
  7. בוחרים באפשרות Custom ומזינים את טווח כתובות ה-IP שרוצים להקצות, בסימון CIDR.
  8. לוחצים על הקצאה כדי ליצור את הטווח המוקצה.

gcloud

מבצעים אחת מהפעולות הבאות:

  • כדי לציין טווח כתובות ואורך קידומת (מסכה של רשת משנה), משתמשים בדגלים addresses ו-prefix-length. לדוגמה, כדי להקצות את בלוק ה-CIDR‏ 192.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=projects/PROJECT_ID/global/networks/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=projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME
      

מחליפים את VPC_NETWORK_NAME בשם של רשת ה-VPC, למשל my-vpc-network.

בדוגמה הבאה מוקצה טווח כתובות IP שמאפשר למשאבים ברשת ה-VPC‏ my-vpc-network להתחבר למכונות Cloud SQL באמצעות כתובת IP פרטית.

  gcloud compute addresses create google-managed-services-my-vpc-network \
    --global \
    --purpose=VPC_PEERING \
    --prefix-length=16 \
    --network=projects/myprojectid/global/networks/myvpcnetwork \
    --project=my-project
    

Terraform

כדי להקצות טווח של כתובות IP, משתמשים במשאב של Terraform.

resource "google_compute_global_address" "private_ip_address" {
  name          = "private-ip-address"
  purpose       = "VPC_PEERING"
  address_type  = "INTERNAL"
  prefix_length = 16
  network       = google_compute_network.peering_network.id
}

החלה של השינויים

כדי להחיל את הגדרות Terraform בפרויקט ב- Google Cloud , מבצעים את השלבים בקטעים הבאים.

הכנת Cloud Shell

  1. מפעילים את Cloud Shell.
  2. מגדירים את פרויקט ברירת המחדל ב- Google Cloud שבו רוצים להחיל את ההגדרות של Terraform.

    תצטרכו להריץ את הפקודה הזו רק פעם אחת לכל פרויקט, ותוכלו לעשות זאת בכל ספרייה.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    אם תגדירו ערכים ספציפיים בקובץ התצורה של Terraform, הם יבטלו את ערכי ברירת המחדל של משתני הסביבה.

הכנת הספרייה

לכל קובץ תצורה של Terraform צריכה להיות ספרייה משלו (שנקראת גם מודול ברמה הבסיסית).

  1. יוצרים ספרייה חדשה ב-Cloud Shell ובה יוצרים קובץ חדש. שם הקובץ חייב לכלול את הסיומת .tf, למשל main.tf. במדריך הזה, הקובץ נקרא main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. אם אתם עוקבים אחרי המדריך, תוכלו להעתיק את הקוד לדוגמה בכל קטע או שלב.

    מעתיקים את הקוד לדוגמה בקובץ main.tf החדש שיצרתם.

    לחלופין, אפשר גם להעתיק את הקוד מ-GitHub. כדאי לעשות את זה כשקטע הקוד של Terraform הוא חלק מפתרון מקצה לקצה.

  3. בודקים את הפרמטרים לדוגמה ומשנים אותם בהתאם לסביבה שלכם.
  4. שומרים את השינויים.
  5. מפעילים את Terraform. צריך לעשות זאת רק פעם אחת לכל ספרייה.
    terraform init

    אופציונלי: תוכלו לכלול את האפשרות -upgrade, כדי להשתמש בגרסה העדכנית ביותר של הספק של Google:

    terraform init -upgrade

החלה של השינויים

  1. בודקים את ההגדרות ומוודאים שהמשאבים שמערכת Terraform תיצור או תעדכן תואמים לציפיות שלכם:
    terraform plan

    מתקנים את ההגדרות לפי הצורך.

  2. מריצים את הפקודה הבאה ומזינים yes בהודעה שמופיעה, כדי להחיל את הגדרות Terraform:
    terraform apply

    ממתינים עד שב-Terraform תוצג ההודעה "Apply complete!‎".

  3. פותחים את הפרויקט ב- Google Cloud כדי להציג את התוצאות. במסוף Google Cloud , נכנסים למשאבים בממשק המשתמש כדי לוודא שהם נוצרו או עודכנו ב-Terraform.

למחוק את השינויים

כדי להסיר משאבים שהוחלו בעבר על הגדרות Terraform, מריצים את הפקודה הבאה ומזינים yes בהודעה שמופיעה:

terraform destroy

יצירת חיבור פרטי

המסוף

  1. נכנסים לדף VPC networks במסוף Google Cloud .

    מעבר לרשתות VPC

  2. בוחרים את רשת ה-VPC שרוצים להשתמש בה.
  3. לוחצים על הכרטיסייה Private service connection.
  4. בוחרים בכרטיסייה Private connections to services (חיבורים פרטיים לשירותים).
  5. לוחצים על Create connection כדי ליצור חיבור פרטי בין הרשת שלכם לבין הבעלים של השירות המנוהל.
  6. בשדה Assigned allocation, בוחרים טווח אחד או יותר של כתובות IP שהוקצו, שלא נמצאים בשימוש של בעלים אחרים של שירותים מנוהלים.
  7. לוחצים על קישור כדי ליצור את הקישור.

gcloud

  1. יוצרים חיבור של גישה לשירותים פרטיים לרשת ה-VPC בפרויקט.

    gcloud services vpc-peerings connect \
    --service=servicenetworking.googleapis.com \
    --ranges=google-managed-services-VPC_NETWORK_NAME \
    --network=VPC_NETWORK_NAME \
    --project=PROJECT_ID

    הפקודה מפעילה פעולה ממושכת במכונה של Cloud SQL, ומחזירה מזהה פעולה.

  2. בודקים אם הפעולה הצליחה.

    gcloud services vpc-peerings operations describe \
    --name=OPERATION_ID

כשיוצרים חיבור פרטי, אפשר לציין יותר מטווח מוקצה אחד. לדוגמה, אם טווח מסוים מוצה, אפשר להקצות טווחים נוספים. השירות משתמש בכתובות IP מכל הטווחים שצוינו, לפי הסדר שציינתם.

Terraform

כדי ליצור חיבור פרטי, משתמשים במשאב של Terraform.

resource "google_service_networking_connection" "default" {
  network                 = google_compute_network.peering_network.id
  service                 = "servicenetworking.googleapis.com"
  reserved_peering_ranges = [google_compute_global_address.private_ip_address.name]
}

חשבון שירות בפורמט service-HOST_PROJECT_NUMBER@service-networking.iam.gserviceaccount.com מקבל את התפקיד servicenetworking.serviceAgent בזמן שהחיבור הפרטי נוצר, כי החשבון מוקצה בדיוק בזמן.

אם מופיעה שגיאה לגבי ההרשאה compute.globalAddresses.list או ההרשאה compute.projects.get בפרויקט, מריצים את הפקודה הבאה ב-gcloud:

‫
gcloud projects add-iam-policy-binding HOST_PROJECT_NAME \
    --member=serviceAccount:service-HOST_PROJECT_NUMBER@service-networking.iam.gserviceaccount.com \
    --role=roles/servicenetworking.serviceAgent

הגדרת מכונה לכתובת IP פרטית באמצעות גישה לשירותים פרטיים

אפשר להגדיר גישה לשירותים פרטיים למכונות חדשות וקיימות.

הגדרת כתובת IP פרטית למופע חדש

המסוף

  1. נכנסים לדף Cloud SQL Instances במסוף Google Cloud .

    כניסה לדף Cloud SQL Instances

  2. לוחצים על Create instance.
  3. בקטע Customize your instance, מרחיבים את Show configuration options.
  4. מרחיבים את האפשרות Connections.
  5. בוחרים באפשרות Private IP.
  6. בוחרים באפשרות גישה פרטית לשירות (PSA).

    רשימה נפתחת עם רשתות ה-VPC שזמינות בפרויקט. אם הפרויקט שלכם הוא פרויקט שירות של VPC משותף, יוצגו גם רשתות VPC מהפרויקט המארח.

  7. בוחרים את רשת ה-VPC שרוצים להשתמש בה.
  8. אם מופיעה הודעה שצריך להגדיר חיבור לשירות פרטי:

    1. לוחצים על הגדרת חיבור.
    2. בקטע Allocate an IP range, בוחרים אחת מהאפשרויות הבאות:
      • בוחרים טווח אחד או יותר של כתובות IP קיימות או יוצרים טווח חדש מהתפריט הנפתח. התפריט הנפתח כולל טווחים שהוקצו בעבר, אם יש כאלה, או שאפשר לבחור באפשרות Allocate a new IP range ולהזין טווח ושם חדשים.
      • שימוש בטווח כתובות IP שהוקצה באופן אוטומטי ברשת.
    3. לוחצים על Continue.
    4. לוחצים על יצירת קישור.
    5. מוודאים שמופיעה ההודעה: Private service connection for network VPC_NETWORK_NAME has been successfully created.
  9. אפשר גם לציין טווח כתובות IP שהוקצה למכונות כדי להשתמש בו לחיבורים.
    1. מרחיבים את האפשרות Show allocated IP range.
    2. בוחרים טווח כתובות IP מהתפריט הנפתח.
  10. זה שינוי אופציונלי. אם רוצים לאפשר לשירותים אחרים של Google Cloud , כמו BigQuery, לגשת לנתונים ב-Cloud SQL ולבצע שאילתות על הנתונים האלה דרך חיבור IP פרטי, בוחרים באפשרות Enable private path.
  11. מסיימים להגדיר את המופע.
  12. לוחצים על Create instance.

gcloud

לפני שיוצרים מכונה עם כתובת IP פרטית, צריך לוודא שהפרויקט מוגדר לגישה לשירותים פרטיים.

מריצים את הפקודות הבאות של ה-CLI של gcloud כדי להגדיר רשת של גישה לשירותים פרטיים ל-Cloud SQL:

  1. מפעילים את ממשקי ה-API הנדרשים:
    gcloud services enable \
        sqladmin.googleapis.com \
        compute.googleapis.com \
        servicenetworking.googleapis.com \
        --project=PROJECT_ID
        
  2. הקצאת טווח כתובות IP לקישור בין רשתות VPC שכנות (peering):
    gcloud compute addresses create google-managed-services-VPC_NETWORK_NAME \
        --global \
        --purpose=VPC_PEERING \
        --prefix-length=16 \
        --network=projects/NETWORK_PROJECT_ID/global/networks/VPC_NETWORK_NAME \
        --project=PROJECT_ID
        
  3. יצירת החיבור של קישור בין רשתות VPC שכנות (peering):
    gcloud services vpc-peerings connect \
        --service=servicenetworking.googleapis.com \
        --ranges=google-managed-services-VPC_NETWORK_NAME \
        --network=VPC_NETWORK_NAME \
        --project=PROJECT_ID
        

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫INSTANCE_ID: מזהה המכונה
  • ‫PROJECT_ID: מזהה הפרויקט
  • ‫NETWORK_PROJECT_ID: מזהה הפרויקט של רשת ה-VPC

  • ‫VPC_NETWORK_NAME: השם של רשת ה-VPC
  • ‫RANGE_NAME: אופציונלי. אם מציינים שם, הוא מוגדר כשם הטווח של כתובות ה-IP שהוקצו. שם הטווח חייב לעמוד בדרישות של RFC-1035 ולהכיל בין תו אחד ל-63 תווים.
  • ‫DATABASE_VERSION: הגרסה של מסד הנתונים PostgreSQL (לדוגמה, POSTGRES_14)
  • ‫NUMBER_OF_CPU: מספר המעבדים (CPU)
  • ‫MEMORY_IN_GB: נפח הזיכרון (ב-GB)
  • ‫REGION_NAME: שם האזור
כדי לציין את השם של רשת ה-VPC, משתמשים בפרמטר --network. כדי להשבית את כתובת ה-IP הציבורית, משתמשים בדגל --no-assign-ip.

אפשר גם להשתמש בפרמטר --enable-google-private-path כדי לאפשר לשירותים אחרים של Google Cloud , כמו BigQuery, לגשת לנתונים ב-Cloud SQL ולשלוח שאילתות לגבי הנתונים האלה דרך חיבור IP פרטי. הפרמטר הזה תקף רק אם:

  • אתם משתמשים בפרמטר --no-assign-ip.
  • משתמשים בפרמטר --network כדי לציין את השם של רשת ה-VPC שבה רוצים להשתמש כדי ליצור חיבור פרטי.
כדי לאכוף את השימוש בארכיטקטורת הרשת החדשה במכונה, משתמשים בדגל --enforce-new-sql-network-architecture. חשוב לוודא שהקציתם מספיק כתובות IP. כשמשתמשים באכיפה של ארכיטקטורת רשת חדשה לפני שמשדרגים פרויקט באופן מלא, יכול להיות שתיצרו מכונה וזה ייכשל אם לא יהיה מספיק מקום לכתובות IP. מידע נוסף זמין במאמרים שדרוג מכונה לארכיטקטורת הרשת החדשה והקצאת טווח של כתובות IP.
gcloud beta sql instances create INSTANCE_ID \
  --project=PROJECT_ID \
  --network=projects/NETWORK_PROJECT_ID/global/networks/VPC_NETWORK_NAME \
  --no-assign-ip \
  --allocated-ip-range-name=RANGE_NAME \
  --enable-google-private-path \
  --database-version=DATABASE_VERSION \
  --cpu=NUMBER_OF_CPU \
  --memory=MEMORY_IN_GB \
  --region=REGION_NAME \
  --enforce-new-sql-network-architecture

Terraform

כדי להגדיר כתובת IP פרטית למכונה חדשה, משתמשים במשאבים הבאים של Terraform:


resource "google_compute_network" "peering_network" {
  name                    = "private-network"
  auto_create_subnetworks = "false"
}

resource "google_compute_global_address" "private_ip_address" {
  name          = "private-ip-address"
  purpose       = "VPC_PEERING"
  address_type  = "INTERNAL"
  prefix_length = 16
  network       = google_compute_network.peering_network.id
}

resource "google_service_networking_connection" "default" {
  network                 = google_compute_network.peering_network.id
  service                 = "servicenetworking.googleapis.com"
  reserved_peering_ranges = [google_compute_global_address.private_ip_address.name]
}

resource "google_sql_database_instance" "default" {
  name             = "private-ip-sql-instance"
  region           = "us-central1"
  database_version = "POSTGRES_14"

  depends_on = [google_service_networking_connection.default]

  settings {
    tier = "db-custom-2-7680"
    ip_configuration {
      ipv4_enabled    = "false"
      private_network = google_compute_network.peering_network.id
    }
  }
}

resource "google_compute_network_peering_routes_config" "peering_routes" {
  peering              = google_service_networking_connection.default.peering
  network              = google_compute_network.peering_network.name
  import_custom_routes = true
  export_custom_routes = true
}

# [START  cloud_sql_postgres_instance_private_ip_dns]

## Uncomment this block after adding a valid DNS suffix

# resource "google_service_networking_peered_dns_domain" "default" {
#   name       = "example-com"
#   network    = google_compute_network.peering_network.id
#   dns_suffix = "example.com."
#   service    = "servicenetworking.googleapis.com"
# }

החלה של השינויים

כך מחילים את ההגדרות של Terraform בפרויקט ב- Google Cloud :

הכנת Cloud Shell

  1. מפעילים את Cloud Shell.
  2. מגדירים את פרויקט ברירת המחדל ב- Google Cloud שבו רוצים להחיל את ההגדרות של Terraform.

    תצטרכו להריץ את הפקודה הזו רק פעם אחת לכל פרויקט, ותוכלו לעשות זאת בכל ספרייה.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    אם תגדירו ערכים ספציפיים בקובץ התצורה של Terraform, הם יבטלו את ערכי ברירת המחדל של משתני הסביבה.

הכנת הספרייה

לכל קובץ תצורה של Terraform צריכה להיות ספרייה משלו (שנקראת גם מודול ברמה הבסיסית).

  1. יוצרים ספרייה חדשה ב-Cloud Shell ובה יוצרים קובץ חדש. שם הקובץ חייב לכלול את הסיומת .tf, למשל main.tf. במדריך הזה, הקובץ נקרא main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. אם אתם עוקבים אחרי המדריך, תוכלו להעתיק את הקוד לדוגמה בכל קטע או שלב.

    מעתיקים את הקוד לדוגמה בקובץ main.tf החדש שיצרתם.

    לחלופין, אפשר גם להעתיק את הקוד מ-GitHub. כדאי לעשות את זה כשקטע הקוד של Terraform הוא חלק מפתרון מקצה לקצה.

  3. בודקים את הפרמטרים לדוגמה ומשנים אותם בהתאם לסביבה שלכם.
  4. שומרים את השינויים.
  5. מפעילים את Terraform. צריך לעשות זאת רק פעם אחת לכל ספרייה.
    terraform init

    אופציונלי: תוכלו לכלול את האפשרות -upgrade, כדי להשתמש בגרסה העדכנית ביותר של הספק של Google:

    terraform init -upgrade

החלה של השינויים

  1. בודקים את ההגדרות ומוודאים שהמשאבים שמערכת Terraform תיצור או תעדכן תואמים לציפיות שלכם:
    terraform plan

    מתקנים את ההגדרות לפי הצורך.

  2. מריצים את הפקודה הבאה ומזינים yes בהודעה שמופיעה, כדי להחיל את הגדרות Terraform:
    terraform apply

    ממתינים עד שב-Terraform תוצג ההודעה "Apply complete!‎".

  3. פותחים את הפרויקט ב- Google Cloud כדי להציג את התוצאות. במסוף Google Cloud , נכנסים למשאבים בממשק המשתמש כדי לוודא שהם נוצרו או עודכנו ב-Terraform.

למחוק את השינויים

כדי למחוק את השינויים:

  1. כדי להשבית את ההגנה מפני מחיקה, מגדירים את הארגומנט deletion_protection בקובץ התצורה של Terraform לערך false.
    deletion_protection =  "false"
  2. מריצים את הפקודה הבאה ומזינים yes בהודעה שמופיעה, כדי להחיל את הגדרות Terraform המעודכנות:
    terraform apply
  1. כדי להסיר משאבים שהוחלו בעבר על הגדרות Terraform, מריצים את הפקודה הבאה ומזינים yes בהודעה שמופיעה:

    terraform destroy

REST v1

יוצרים מכונה חדשה עם כתובת IP פרטית:

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט
  • INSTANCE_ID: מזהה המופע
  • ‫VPC_NETWORK_NAME: מציינים את השם של רשת הענן הווירטואלי הפרטי (VPC) שרוצים להשתמש בה עבור המכונה הזו. צריך להגדיר מראש גישה לשירותים פרטיים ברשת.
  • RANGE_NAME: אופציונלי. אם מציינים שם, המערכת מגדירה שם לטווח שעבורו מוקצה טווח כתובות IP. שם הטווח חייב לעמוד בדרישות של RFC-1035 ולהכיל בין תו אחד ל-63 תווים.
  • AUTHORIZED_NETWORKS: לחיבורים עם כתובת IP ציבורית, מציינים את החיבורים מרשתות מורשות שיכולות להתחבר למופע.

בפרמטר ipv4Enabled, מגדירים את הערך true אם משתמשים בכתובת IP ציבורית עבור המכונה, או false אם למכונה יש כתובת IP פרטית.

אם מגדירים את הפרמטר enablePrivatePathForGoogleCloudServices לערך true, אז מאפשרים לשירותים אחרים Google Cloud , כמו BigQuery, לגשת לנתונים ב-Cloud SQL ולבצע שאילתות על הנתונים האלה דרך חיבור IP פרטי. אם מגדירים את הפרמטר הזה לערך false, שירותים אחרים של Google Cloud לא יכולים לגשת לנתונים ב-Cloud SQL דרך חיבור IP פרטי.

אתם יכולים להשתמש בשדה sqlNetworkArchitecture כדי לאכוף את השימוש בארכיטקטורת הרשת החדשה למכונה בזמן היצירה, גם אם הפרויקט לא שודרג באופן מלא. פרטים נוספים על ארכיטקטורת הרשת החדשה וההשלכות שלה מופיעים במאמרים שדרוג מכונה לארכיטקטורת הרשת החדשה והקצאת טווח כתובות IP.

ה-method של ה-HTTP וכתובת ה-URL:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances

תוכן בקשת JSON:

{
  "name": "INSTANCE_ID",
  "region": "region",
  "databaseVersion": "database-version",
  "settings": {
    "tier": "machine-type",
    "ipConfiguration": {
      "ipv4Enabled": false,
      "privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME",
      "allocatedIpRange": "RANGE_NAME"
      "authorizedNetworks": [AUTHORIZED_NETWORKS],
      
      "enablePrivatePathForGoogleCloudServices": true
      
    }
  },
  "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"
}

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

REST v1beta4

יוצרים מכונה חדשה עם כתובת IP פרטית:

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט
  • INSTANCE_ID: מזהה המופע
  • ‫VPC_NETWORK_NAME: מציינים את השם של רשת הענן הווירטואלי הפרטי (VPC) שרוצים להשתמש בה עבור המכונה הזו. צריך להגדיר מראש גישה לשירותים פרטיים ברשת.
  • RANGE_NAME: אופציונלי. אם מציינים שם, המערכת מגדירה שם לטווח שעבורו מוקצה טווח כתובות IP. שם הטווח צריך לעמוד בדרישות של RFC-1035 ולהכיל 1-63 תווים.
  • AUTHORIZED_NETWORKS: לחיבורים עם כתובת IP ציבורית, מציינים את החיבורים מרשתות מורשות שיכולות להתחבר למופע.

בפרמטר ipv4Enabled, מגדירים את הערך true אם משתמשים בכתובת IP ציבורית עבור המכונה, או false אם למכונה יש כתובת IP פרטית.

אם מגדירים את הפרמטר enablePrivatePathForGoogleCloudServices לערך true, אז מאפשרים לשירותים אחרים Google Cloud , כמו BigQuery, לגשת לנתונים ב-Cloud SQL ולבצע שאילתות על הנתונים האלה דרך חיבור IP פרטי. אם מגדירים את הפרמטר הזה לערך false, שירותים אחרים של Google Cloud לא יכולים לגשת לנתונים ב-Cloud SQL דרך חיבור IP פרטי.

אתם יכולים להשתמש בשדה sqlNetworkArchitecture כדי לאכוף את השימוש בארכיטקטורת הרשת החדשה למכונה בזמן היצירה, גם אם הפרויקט לא שודרג באופן מלא. לפרטים נוספים על ארכיטקטורת הרשת החדשה וההשלכות שלה, קראו את המאמרים שדרוג מכונה לארכיטקטורת הרשת החדשה והקצאת טווח של כתובות IP.

ה-method של ה-HTTP וכתובת ה-URL:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances

תוכן בקשת JSON:

{
  "name": "INSTANCE_ID",
  "region": "region",
  "databaseVersion": "database-version",
  "settings": {
    "tier": "machine-type",
    "ipConfiguration": {
      "ipv4Enabled": false,
      "privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME",
      "allocatedIpRange": "RANGE_NAME"
      "authorizedNetworks": [AUTHORIZED_NETWORKS],
      
      "enablePrivatePathForGoogleCloudServices": true
      
    }
  },
  "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"
}

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

הגדרת כתובת IP פרטית למופע קיים

אם מגדירים מכונה קיימת של Cloud SQL לשימוש בכתובת IP פרטית, המכונה תופעל מחדש ותגרום לזמן השבתה.

כדי להגדיר מכונה קיימת לשימוש בכתובת IP פרטית:

המסוף

  1. נכנסים לדף Cloud SQL Instances במסוף Google Cloud .

    כניסה לדף Cloud SQL Instances

  2. כדי לפתוח את הדף Overview של מכונה, לוחצים על שם המכונה.
  3. בתפריט הניווט של Cloud SQL, לוחצים על Connections.
  4. בכרטיסייה Networking, מסמנים את התיבה Private IP.

    רשימה נפתחת עם הרשתות הזמינות בפרויקט.

  5. בוחרים את רשת ה-VPC שבה רוצים להשתמש:
  6. אם מופיעה ההודעה נדרש חיבור לשירות פרטי:

    1. לוחצים על הגדרת חיבור.
    2. בקטע Allocate an IP range, בוחרים אחת מהאפשרויות הבאות:
      • בוחרים טווח אחד או יותר של כתובות IP קיימות, או יוצרים טווח חדש מהתפריט הנפתח. בתפריט הנפתח מופיעים טווחי כתובות IP שהוקצו בעבר, אם יש כאלה, או שאפשר לבחור באפשרות Allocate a new IP range (הקצאת טווח כתובות IP חדש) ולהזין טווח ושם חדשים.
      • משתמשים בטווח כתובות IP שהוקצה באופן אוטומטי ברשת.
    3. לוחצים על Continue.
    4. לוחצים על יצירת קישור.
    5. מוודאים שמופיע הסטטוס Private service connection for network VPC_NETWORK_NAME has been successfully created.
  7. זה שינוי אופציונלי. אם רוצים לאפשר לשירותים אחרים של Google Cloud , כמו BigQuery, לגשת לנתונים ב-Cloud SQL ולבצע שאילתות על הנתונים האלה דרך חיבור IP פרטי, צריך לסמן את התיבה Enable private path.
  8. לוחצים על Save.

gcloud

מוודאים שהפרויקט מוגדר ל גישה לשירותים פרטיים.

מעדכנים את מכונת Cloud SQL באמצעות הפרמטר --network כדי לציין את השם של רשת ה-VPC שבחרתם.

כדי לאכוף את השימוש בארכיטקטורת הרשת החדשה במכונה כשמוסיפים הגדרת רשת של כתובת IP פרטית, משתמשים בדגל --enforce-new-sql-network-architecture. מוודאים שהקציתם מספיק מקום לכתובות IP בטווח כתובות ה-IP. אם תשתמשו באכיפה של ארכיטקטורת הרשת החדשה לפני שהפרויקט שודרג במלואו, יכול להיות שלא תצליחו ליצור מכונות אם אין מספיק מקום לכתובות IP.

מידע נוסף מופיע במאמרים שדרוג מכונה לארכיטקטורת הרשת החדשה והקצאת טווח של כתובות IP.

gcloud beta sql instances patch INSTANCE_ID \
--project=PROJECT_ID \
--network=projects/NETWORK_PROJECT_ID/global/networks/VPC_NETWORK_NAME \
--no-assign-ip \
--enable-google-private-path \
--enforce-new-sql-network-architecture

REST v1

יוצרים מכונה חדשה עם כתובת IP פרטית:

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט
  • INSTANCE_ID: מזהה המופע
  • ‫VPC_NETWORK_NAME: מציינים את השם של רשת הענן הווירטואלי הפרטי (VPC) שרוצים להשתמש בה עבור המכונה הזו. צריך להגדיר מראש גישה לשירותים פרטיים ברשת.
  • RANGE_NAME: אופציונלי. אם מציינים שם, המערכת מגדירה שם לטווח שעבורו מוקצה טווח כתובות IP. שם הטווח חייב לעמוד בדרישות של RFC-1035 ולהכיל בין תו אחד ל-63 תווים.
  • AUTHORIZED_NETWORKS: לחיבורים עם כתובת IP ציבורית, מציינים את החיבורים מרשתות מורשות שיכולות להתחבר למופע.

בפרמטר ipv4Enabled, מגדירים את הערך true אם משתמשים בכתובת IP ציבורית עבור המכונה, או false אם למכונה יש כתובת IP פרטית.

אם מגדירים את הפרמטר enablePrivatePathForGoogleCloudServices לערך true, מאפשרים לשירותי Google Cloud אחרים, כמו BigQuery, לגשת לנתונים ב-Cloud SQL ולבצע שאילתות על הנתונים האלה דרך חיבור IP פרטי. אם מגדירים את הפרמטר הזה לערך false, שירותים אחרים של Google Cloud לא יכולים לגשת לנתונים ב-Cloud SQL דרך חיבור IP פרטי.

אפשר להשתמש בשדה sqlNetworkArchitecture כדי לאכוף את השימוש בארכיטקטורת הרשת החדשה עבור המכונה עם היצירה שלה, גם אם הפרויקט לא שודרג באופן מלא. לפרטים נוספים על ארכיטקטורת הרשת החדשה וההשלכות שלה, קראו את המאמרים שדרוג מכונה לארכיטקטורת הרשת החדשה והקצאת טווח של כתובות IP.

ה-method של ה-HTTP וכתובת ה-URL:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID

תוכן בקשת JSON:

{
  "settings":
  {
    "ipConfiguration": {
      "ipv4Enabled": false,
      "privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME",
      "allocatedIpRange": "RANGE_NAME"
      "authorizedNetworks": [AUTHORIZED_NETWORKS],
      
      "enablePrivatePathForGoogleCloudServices": true
      
    }
  },
  "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"
}

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

REST v1beta4

יוצרים מכונה חדשה עם כתובת IP פרטית:

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט
  • INSTANCE_ID: מזהה המופע
  • ‫VPC_NETWORK_NAME: מציינים את השם של רשת הענן הווירטואלי הפרטי (VPC) שרוצים להשתמש בה עבור המכונה הזו. צריך להגדיר מראש גישה לשירותים פרטיים ברשת.
  • RANGE_NAME: אופציונלי. אם מציינים את השדה, הוא מגדיר שם לטווח שמוקצה לו טווח כתובות IP. שם הטווח חייב לעמוד בדרישות של RFC-1035 ולהכיל בין תו אחד ל-63 תווים.
  • ‫AUTHORIZED_NETWORKS: לחיבורי IP ציבורי, מציינים את החיבורים מרשתות מורשות שיכולות להתחבר למופע.

בפרמטר ipv4Enabled, מגדירים את הערך true אם משתמשים בכתובת IP ציבורית למכונה, או את הערך false אם למכונה יש כתובת IP פרטית.

אם מגדירים את הפרמטר enablePrivatePathForGoogleCloudServices לערך true, אז מאפשרים לשירותים אחרים Google Cloud , כמו BigQuery, לגשת לנתונים ב-Cloud SQL ולבצע שאילתות על הנתונים האלה דרך חיבור IP פרטי. אם מגדירים את הפרמטר הזה לערך false, שירותים אחרים של Google Cloud לא יכולים לגשת לנתונים ב-Cloud SQL דרך חיבור IP פרטי.

אתם יכולים להשתמש בשדה sqlNetworkArchitecture כדי לאכוף את השימוש בארכיטקטורת הרשת החדשה למכונה בזמן היצירה, גם אם הפרויקט לא שודרג באופן מלא. לפרטים נוספים על ארכיטקטורת הרשת החדשה וההשלכות שלה, קראו את המאמרים שדרוג מכונה לארכיטקטורת הרשת החדשה והקצאת טווח של כתובות IP.

ה-method של ה-HTTP וכתובת ה-URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID

תוכן בקשת JSON:

{
  "settings":
  {
    "ipConfiguration": {
      "ipv4Enabled": false,
      "privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME",
      "allocatedIpRange": "RANGE_NAME"
      "authorizedNetworks": [AUTHORIZED_NETWORKS],
      
      "enablePrivatePathForGoogleCloudServices": true
      
    }
  },
  "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"
}

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

שינוי ההגדרות של הגישה לשירותים פרטיים

אתם יכולים לשנות את טווח הכתובות שהוקצה לחיבור לשירות פרטי בלי לשנות את המכונות הקיימות של Cloud SQL. כדי לשנות את כתובת ה-IP הפרטית של מכונה קיימת של Cloud SQL, פועלים לפי השלבים האלה.

כדי לשנות את טווח הכתובות שהוקצה:

המסוף

  1. נכנסים לדף VPC networks במסוף Google Cloud .

    כניסה לרשתות VPC

  2. בוחרים את רשת ה-VPC שרוצים להשתמש בה.
  3. לוחצים על הכרטיסייה Private service connection (חיבור שירות פרטי).
  4. בוחרים בכרטיסייה Allocated IP ranges for services.
  5. בוחרים את שם הטווח שרוצים למחוק.

  6. לוחצים על שחרור.

  7. לוחצים על Allocate IP range.

  8. יוצרים טווח חדש עם אותו שם וטווח חדש

    השם חשוב כי החיבור הפרטי כבר נוצר באמצעות שם הכתובת הזה.

gcloud services vpc-peerings update \
--network=VPC_NETWORK_NAME \
--ranges=ALLOCATED_RANGES \
--service=servicenetworking.googleapis.com \
--force

שינוי כתובת ה-IP הפרטית של מכונה קיימת של Cloud SQL

כדי לשנות את כתובת ה-IP הפרטית של מופע Cloud SQL קיים, צריך להעביר את המופע מהרשת המקורית שלו לרשת VPC זמנית. אחר כך משנים את הגדרת הגישה הפרטית לשירות ברשת המקורית של המכונה, ומעבירים את המכונה של Cloud SQL בחזרה לרשת המקורית שלה.

כדי לעבור לרשת VPC אחרת, מבצעים את כל השלבים הבאים חוץ מהשלב האחרון (העברת המופע בחזרה). במקרה הזה, TEMPORARY_VPC_NETWORK_NAME היא רשת ה-VPC החדשה. בנוסף, מוחקים את החיבור הפרטי הישן. יכול להיות שיחלפו כמה ימים עד שהחיבור הפרטי שנמחק ייעלם מהמסוףGoogle Cloud .

אם מופע Cloud SQL מתארח ברשת VPC משותפת, הVPC_NETWORK_NAME משתנים שבהם נעשה שימוש בהוראות הבאות צריכים להיות שמות רשתות ה-VPC של הפרויקט המארח. כדי לציין רשת עם רשת VPC משותפת, משתמשים בכתובת ה-URL המלאה של הרשת – לדוגמה, projects/HOST_PROJECT/global/networks/NETWORK_NAME.

המסוף

  1. נכנסים לדף VPC networks במסוף Google Cloud .

    כניסה לרשתות VPC

  2. יצירת רשת VPC זמנית.
  3. יוצרים הקצאת IP ברשת ה-VPC הזמנית.
  4. יצירת חיבור פרטי ברשת ה-VPC הזמנית.
  5. מעבירים את המכונה של Cloud SQL לרשת ה-VPC הזמנית.

    gcloud beta sql instances patch INSTANCE_ID \
      --project=PROJECT_ID \
      --network=projects/PROJECT_ID/global/networks/TEMPORARY_VPC_NETWORK_NAME \
      --no-assign-ip
  6. משנים את הגדרת הגישה לשירות פרטי ברשת המקורית כדי להוסיף טווח חדש שהוקצה או למחוק טווחים קיימים.

  7. מעבירים את המכונה של Cloud SQL בחזרה לרשת ה-VPC המקורית.

    gcloud beta sql instances patch INSTANCE_ID \
      --project=PROJECT_ID \
      --network=projects/PROJECT_ID/global/networks/ORIGINAL_VPC_NETWORK_NAME \
      --no-assign-ip

התחברות למכונה באמצעות כתובת ה-IP הפרטית שלה

אתם משתמשים בגישה לשירותים פרטיים כדי להתחבר למכונות Cloud SQL ממכונות Compute Engine או Google Kubernetes Engine באותה רשת VPC (שמוגדרות כאן כמקורות פנימיים) או מחוץ לרשת הזו (מקור חיצוני).

התחברות ממקור פנימי

כדי להתחבר ממקור באותו פרויקט ב- Google Cloud שבו נמצאת המכונה של Cloud SQL, כמו Cloud SQL Auth Proxy שפועל במשאב של Compute Engine, המשאב הזה צריך להיות באותה רשת VPC שבה הוגדרה הגישה הפרטית לשירותים של המכונה של Cloud SQL.

כדי להתחבר ממקור Serverless, כמו סביבת ברירת המחדל ב-App Engine,‏ Cloud Run או פונקציות Cloud Run, האפליקציה או הפונקציה מתחברות ישירות למופע באמצעות חיבור לרשת (VPC) מאפליקציית serverless בלי Cloud SQL Auth Proxy.

חיבור ממקור חיצוני

אם רשת חיצונית (לדוגמה, רשת מקומית או רשת VPC) מחוברת לרשת ה-VPC שאליה מחוברת מכונת Cloud SQL, אפשר להשתמש ב-Cloud VPN או ב-Cloud Interconnect כדי להתחבר למכונה מלקוח ברשת החיצונית.

כדי לאפשר חיבורים מרשת חיצונית:

  1. מוודאים שרשת ה-VPC מחוברת לרשת החיצונית באמצעות מנהרת Cloud VPN או צירוף ל-VLAN של Dedicated Interconnect או של Partner Interconnect.
  2. מוודאים שפרוטוקול Border Gateway Protocol ‏ (BGP) מופעל בסשנים ב-Cloud Routers שמנהלים את מנהרות Cloud VPN ואת קובצי ה-Cloud Interconnect (רשתות VLAN), ושהתקבלו קידומות (יעדים) ספציפיות מהרשת המקומית.

    אי אפשר לייבא נתיבי ברירת מחדל (יעד 0.0.0.0/0) לרשת ה-VPC של Cloud SQL, כי לרשת הזו יש נתיב ברירת מחדל מקומי משלה. המסלולים המקומיים ליעד משמשים גם אם הקישור בין רשתות שכנות ב-Cloud SQL מוגדר לייבוא מסלולים מותאמים אישית מרשת ה-VPC.

  3. מזהים את חיבורי ה-peering שנוצרו על ידי החיבור לשירותים הפרטיים. בהתאם לשירות, החיבור לשירותים פרטיים עשוי ליצור אחד או יותר מחיבורי ה-Peering הבאים, אבל לא בהכרח את כולם:
    • cloudsql-mysql-googleapis-com
    • cloudsql-postgres-googleapis-com
    • servicenetworking-googleapis-com
  4. מעדכנים את כל חיבורי ה-Peering כדי להפעיל את האפשרות Export custom routes.
  5. מזהים את הטווח שהוקצה לשימוש של החיבור לשירותים הפרטיים.
  6. הגדרת מצב פרסום בהתאמה אישית של Cloud Router לטווח שהוקצה בנתבי Cloud Router שמנהלים סשנים של BGP למנהרות Cloud VPN או לחיבורי Cloud Interconnect (רשתות VLAN).

התחברות מ-Cloud Shell

ב-Cloud Shell משתמשים במכונה וירטואלית של Compute Engine שמנוהלת על ידי Google Cloud ונמצאת מחוץ לרשת ה-VPC. לכן, לא קיים נתיב קישוריות בין Cloud Shell לבין מרחב כתובות ה-IP הפרטיות של רשת ה-VPC.

לכן, ב-Cloud Shell אי אפשר להתחבר למכונה של Cloud SQL שיש לה רק כתובת IP פרטית.

כדי להתחבר למכונות Cloud SQL מרשת חיצונית באמצעות קישור דרך IP פרטית, קראו את המאמר התחברות למכונת Cloud SQL מחוץ ל-VPC שלה.

חיבור מכתובות IP שהן לא RFC 1918

ב-RFC 1918 מצוינות כתובות IP שמוקצות לשימוש פנימי (כלומר, בתוך הארגון) ולא ינותבו באינטרנט. באופן ספציפי, אלה:

  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16

חיבורים למכונת Cloud SQL באמצעות כתובת IP פרטית מקבלים הרשאה אוטומטית לטווח כתובות RFC 1918. כך כל הלקוחות הפרטיים יכולים לגשת למסד הנתונים בלי לעבור דרך שרת ה-proxy.

כדי להתחבר מכתובת IP שהיא לא RFC 1918, צריך להגדיר הרשאת IP לכל מכונה, כדי לאפשר תנועה מטווחים של כתובות IP שהן לא RFC 1918.

לדוגמה, משתמשים בפקודת gcloud כמו זו:

gcloud sql instances patch INSTANCE_NAME \
--authorized-networks=192.88.99.0/24,11.0.0.0/24

כברירת מחדל, Cloud SQL לא לומד נתיבים של תת-רשתות שאינן RFC 1918 מרשת ה-VPC. כדי לייצא נתיבים שאינם RFC 1918, צריך לעדכן את שיוך הרשת ל-Cloud SQL.

gcloud compute networks peerings update cloudsql-postgres-googleapis-com \
--network=VPC_NETWORK_NAME \
--export-subnet-routes-with-public-ip \
--project=PROJECT_ID

    מחליפים את מה שכתוב בשדות הבאים:

  • ‫cloudsql-postgres-googleapis-com הוא השם של חיבור השירות הפרטי מהדף רשת VPC.

    בוחרים את הרשת ומחפשים את הקטע Private Service Connection (חיבור לשירות פרטי).

  • ‫VPC_NETWORK_NAME הוא השם של רשת ה-VPC.
  • ‫PROJECT_ID הוא מזהה הפרויקט של רשת ה-VPC. אם אתם משתמשים ב-VPC משותף, השתמשו במזהה הפרויקט המארח.

כדי לצמצם את ניצול כתובות ה-IP, אתם יכולים להשתמש בכתובות IP ציבוריות בשימוש פרטי.

התחברות מכתובות IP ציבוריות בשימוש פרטי

אם רוצים להגדיר את המכונה בטווח כתובות IP ציבוריות בשימוש פרטי, צריך להפעיל את export-subnet-routes-with-public-ip בקישור בין הרשתות השכנות של הרשת שלכם ושל הרשת של Cloud SQL.

gcloud compute networks peerings update cloudsql-postgres-googleapis-com \
--network=VPC_NETWORK_NAME \
--export-subnet-routes-with-public-ip \
--project=PROJECT_ID

    מחליפים את מה שכתוב בשדות הבאים:

  • ‫cloudsql-postgres-googleapis-com הוא השם של החיבור הפרטי לשירות מהדף רשת VPC.

    בוחרים את הרשת ומחפשים את הקטע Private Service Connection.

  • ‫VPC_NETWORK_NAME הוא השם של רשת ה-VPC.
  • ‫PROJECT_ID הוא מזהה הפרויקט של רשת ה-VPC. אם אתם משתמשים ב-VPC משותף, השתמשו במזהה הפרויקט המארח.

התחברות למופע שהוגדר עם כתובות IP ציבוריות לשימוש פרטי

אם המכונה מוגדרת בטווח כתובות IP ציבוריות בשימוש פרטי ואתם רוצים להתחבר אליה, צריך להפעיל את import-subnet-routes-with-public-ip בהתאמת הרשתות בין הרשת שלכם לבין הרשת של Cloud SQL.

gcloud compute networks peerings update cloudsql-postgres-googleapis-com \
--network=VPC_NETWORK_NAME \
--import-subnet-routes-with-public-ip \
--project=PROJECT_ID

מחליפים את מה שכתוב בשדות הבאים:

  • ‫cloudsql-postgres-googleapis-com הוא שם של חיבור לשירות פרטי מהדף רשת VPC.

    בוחרים את הרשת ומחפשים את הקטע Private Service Connection (חיבור לשירות פרטי).

  • ‫VPC_NETWORK_NAME הוא השם של רשת ה-VPC.
  • ‫PROJECT_ID הוא מזהה הפרויקט של רשת ה-VPC. אם אתם משתמשים ב-VPC משותף, צריך להשתמש במזהה פרויקט של הפרויקט המארח.

חיבור באמצעות נקודת קצה (endpoint) לכתיבה

בנוסף לכתובת IP פרטית, אפשר להשתמש בנקודת קצה לכתיבה במחרוזת חיבור SQL. נקודת קצה לכתיבה היא שם גלובלי של שירות שמות דומיין (DNS) שמקבל באופן אוטומטי את כתובת ה-IP של המופע הראשי הנוכחי. שימוש בנקודת קצה לכתיבה מאפשר לכם להימנע משינויים בחיבור של האפליקציה כשיש כשל באזור.

אם מתרחש מעבר לגיבוי בעת כשל או מעבר של רפליקה, נקודת הקצה לכתיבה יכולה לעזור בניהול כתובות ה-IP הפרטיות של המכונות. במקרה כזה, צריך להשתמש בנקודת הקצה של הכתיבה כדי להתחבר למופע שמשמש כמופע הראשי.

איך Cloud SQL יוצר נקודת קצה לכתיבה

אם תפעילו את Cloud DNS API בפרויקט Google Cloud , ואחר כך תיצרו מכונה ראשית של Cloud SQL Enterprise Plus, תקדמו את הרפליקה של המכונה או תשדרגו את המכונה מ-Cloud SQL Enterprise, המערכת של Cloud SQL תיצור באופן אוטומטי נקודת קצה לכתיבה ותקצה אותה למכונה.

מידע נוסף זמין במאמר הצגת נקודת הקצה לכתיבה.

הקצאת נקודת קצה לכתיבה למכונה

אם לא תפעילו את Cloud DNS API בפרויקט ב- Google Cloud , ואז תיצרו, תקדמו או תשדרגו את המכונה, Cloud SQL לא יקצה באופן אוטומטי את נקודת הקצה לכתיבה למכונה.

כדי שמערכת Cloud SQL תיצור נקודת קצה לכתיבה ותקצה אותה למכונה, אפשר לעיין במאמר בנושא יצירת נקודת קצה לכתיבה.

פתרון בעיות

בקטע פתרון בעיות מפורטות בעיות קישוריות מוכרות, ובקטע ניפוי באגים בבעיות קישוריות מוסבר איך לבצע אבחון עצמי.