הגדרת כתובת IP פרטית

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

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

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

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  4. Verify that billing is enabled for your Google Cloud project.

  5. Enable the Service Networking API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  6. מתקינים את ה-CLI של gcloud.

  7. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  8. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  9. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  10. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  11. Verify that billing is enabled for your Google Cloud project.

  12. Enable the Service Networking API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  13. מתקינים את ה-CLI של gcloud.

  14. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  15. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init

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

כדי לקבל את ההרשאות שנדרשות ליצירה ולניהול של חיבור גישה לשירותים פרטיים, צריך לבקש מהאדמין להקצות לכם ב-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) בפרויקט, צריך להגדיר גישה לשירותים פרטיים כדי להקצות טווח של כתובות IP וליצור חיבור של גישה לשירותים פרטיים. כך המשאבים ברשת ה-VPC יכולים להתחבר למכונות Cloud SQL. במסוף Google Cloud יש אשף שיעזור לכם להגדיר את התצורה הזו.

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

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

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

כדי להגדיר מכונת Cloud SQL לשימוש בכתובת IP פרטית כשיוצרים מכונה:

המסוף

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

    כניסה לדף Cloud SQL Instances

  2. לוחצים על Create instance.
  3. מרחיבים את הקטע הצגת אפשרויות ההגדרה.
  4. מרחיבים את Connections (חיבורים).
  5. בוחרים באפשרות כתובת IP פרטית.

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

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

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

gcloud

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

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

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

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

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

  • משתמשים בפרמטר --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. מגדירים את פרויקט ברירת המחדל שבו רוצים להחיל את ההגדרות של Terraform. Google Cloud

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

    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. כדי להשבית את ההגנה מפני מחיקה, מגדירים בקובץ התצורה של Terraform את הארגומנט deletion_protection לערך 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 ולהכיל 1-63 תווים.
  • AUTHORIZED_NETWORKS: לחיבורים עם כתובת IP ציבורית, מציינים את החיבורים מרשתות מורשות שיכולות להתחבר למופע.

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

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

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

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

POST https://sqladmin.googleapis.com/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. כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
  3. בתפריט הניווט של Cloud SQL, בוחרים באפשרות Connections (קישורים).
  4. בכרטיסייה Networking (רשת), מסמנים את התיבה Private IP (כתובת IP פרטית).

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

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

    1. לוחצים על הגדרת חיבור.
    2. בקטע הקצאת טווח כתובות IP, בוחרים באחת מהאפשרויות הבאות:
      • בוחרים טווח כתובות 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 Google Cloud, כמו BigQuery, לגשת לנתונים ב-Cloud SQL ולהריץ שאילתות על הנתונים האלה דרך חיבור IP פרטי, צריך לסמן את תיבת הסימון הפעלת נתיב פרטי.
  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 ולהכיל 1-63 תווים.
  • AUTHORIZED_NETWORKS: לחיבורים עם כתובת IP ציבורית, מציינים את החיבורים מרשתות מורשות שיכולות להתחבר למופע.

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

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

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

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

PATCH https://sqladmin.googleapis.com/sql/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 ולהכיל 1-63 תווים.
  • AUTHORIZED_NETWORKS: לחיבורי IP ציבורי, מציינים את החיבורים מרשתות מורשות שיכולות להתחבר למופע.

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

אם מגדירים את הפרמטר enablePrivatePathForGoogleCloudServices לערך true, אז מאפשרים לשירותים אחרים של Google Cloud Google, כמו 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 שדומה לזו:

התחברות למופע באמצעות כתובת ה-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, האפליקציה או הפונקציה מתחברות ישירות למופע באמצעות Serverless VPC Access בלי 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. כדי להפעיל את האפשרות ייצוא של נתיבים מותאמים אישית, צריך לעדכן את כל חיבורי הפירינג.
  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 משותף, צריך להשתמש במזהה פרויקט של הפרויקט המארח.

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

בנוסף לכתובת 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 ייצור נקודת קצה לכתיבה ויקצה אותה למכונה, אפשר לעיין במאמר בנושא יצירת נקודת קצה לכתיבה.

פתרון בעיות

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

המאמרים הבאים