התחברות למופע באמצעות Private Service Connect

בדף הזה מוסבר איך להשתמש ב-Private Service Connect כדי להתחבר למופע Cloud SQL.

אתם יכולים להשתמש ב-Private Service Connect כדי להתחבר למופע Cloud SQL ראשי או לכל אחת מהרפליקות לקריאה שלו מכמה רשתות של ענן וירטואלי פרטי (VPC) ששייכות לקבוצות, לצוותים, לפרויקטים או לארגונים שונים.

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

התמיכה בשימוש ב-Private Service Connect עם מופע Cloud SQL זמינה בגרסאות gcloud CLI 416.0.0 ואילך.

תפקידי משתמשים

בטבלה הבאה מפורטים התפקידים שנדרשים כדי להשתמש ב-Private Service Connect עם מופע Cloud SQL:

תפקיד תיאור
compute.networkAdmin

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

אם אתם משתמשים ב-Private Service Connect כדי להתחבר למכונת Cloud SQL מכמה רשתות VPC, לכל רשת יש אדמין משלה.

dns.admin ההרשאה מאפשרת שליטה מלאה במשאבי Cloud DNS, כולל תחומי DNS ורשומות.
cloudsql.admin התפקיד הזה נותן שליטה מלאה במכונת Cloud SQL ושולט במכונה לאורך מחזור החיים שלה.
cloudsql.instanceUser מספק גישה למופע Cloud SQL. אם מתחברים דרך לקוח Cloud SQL Auth Proxy, צריך להיות לכם תפקיד לקוח Cloud SQL. אם מתחברים ישירות, לא צריך תפקידים והרשאות בניהול הזהויות והרשאות הגישה (IAM).

יצירת נקודת קצה מסוג Private Service Connect

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

אפשר להגדיר ש-Cloud SQL ייצור באופן אוטומטי נקודת קצה (endpoint) של Private Service Connect בענן הווירטואלי הפרטי (VPC), או ליצור את נקודת הקצה באופן ידני.

יצירת נקודת הקצה באופן אוטומטי

כדי ש-Cloud SQL ייצור את נקודת הקצה של Private Service Connect באופן אוטומטי, צריך לבצע את הפעולות הבאות:

  1. יוצרים מדיניות לחיבור שירות ברשת ה-VPC. המדיניות הזו מאפשרת להקצות נקודות קצה של Private Service Connect באופן אוטומטי.

  2. יוצרים מכונה של Cloud SQL עם Private Service Connect מופעל עבור המכונה, ומגדירים את המכונה כך שייווצרו נקודות קצה של Private Service Connect באופן אוטומטי.

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

יצירת מדיניות לחיבור שירות

מדיניות חיבור שירות מאפשרת לכם להעניק הרשאה לסוג שירות מסוים ליצור נקודת קצה של Private Service Connect ברשת ה-VPC של הצרכן. אתם יכולים להשתמש במדיניות חיבור השירות כדי לאפשר ל-Cloud SQL ליצור נקודות קצה (endpoints) של Private Service Connect באופן אוטומטי.

אפשר ליצור מדיניות של חיבור שירות באמצעות מסוף Google Cloud , ה-CLI של gcloud או ה-API.

המסוף

  1. נכנסים לדף Private Service Connect במסוף Google Cloud .

    כניסה אל Private Service Connect

  2. לוחצים על הכרטיסייה Connection Policies (מדיניות חיבור).

  3. לוחצים על יצירת מדיניות לקישור.

  4. מזינים שם למדיניות החיבור.

  5. כדי לציין את סוג השירות:

    1. בקטע סוג שירות המקור, בוחרים באפשרות שירותי Google.
    2. בתפריט Service class (סוג שירות), בוחרים באפשרות google-cloud-sql כי Cloud SQL הוא השירות המנוהל למדיניות החיבור.
  6. בקטע Target endpoints scope, בוחרים Network ו-Region שאליהם המדיניות הזו חלה.

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

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

  9. לוחצים על יצירת מדיניות.

gcloud

כדי ליצור מדיניות לחיבור שירות, משתמשים בפקודה service-connection-policies create.

gcloud network-connectivity service-connection-policies create POLICY_NAME \
    --network=NETWORK \
    --project=PROJECT_ID \
    --region=REGION \
    --service-class=SERVICE_CLASS \
    --subnets=https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETS \
    --psc-connection-limit=LIMIT \
    --description="DESCRIPTION" \
    --producer-instance-location=PRODUCER_INSTANCE_LOCATION \
    --allowed-google-producers-resource-hierarchy-level=RESOURCE_HIERARCHY_LEVEL

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

  • POLICY_NAME: השם של מדיניות חיבור השירות.
  • NETWORK: הרשת שהמדיניות הזו חלה עליה.
  • PROJECT_ID: מזהה הפרויקט או מספר הפרויקט של רשת ה-VPC. ברשתות VPC משותפות, צריך לפרוס מדיניות של חיבור שירות בפרויקט המארח, כי אין תמיכה במדיניות כזו בפרויקטים של שירותים.
  • REGION: האזור שהמדיניות הזו חלה עליו. צריכה להיות מדיניות זהה לכל אזור שבו רוצים להפוך את הקישוריות לשירות לאוטומטית.
  • SERVICE_CLASS: מזהה המשאב של סוג השירות שסופק על ידי היצרן. ב-Cloud SQL, סיווג השירות הוא google-cloud-sql.
  • SUBNETS: רשת משנה אחת או יותר של צרכנים רגילים שמשמשות להקצאת כתובות IP לנקודות קצה של Private Service Connect. כתובות ה-IP האלה מוקצות באופן אוטומטי ומוחזרות למאגר של תת-הרשת כשמופעלות ונמחקות דוגמאות של שירות מנוהל. רשתות המשנה צריכות להיות באותו אזור כמו מדיניות החיבור לשירות. אם כמה כללי מדיניות לחיבור משתמשים באותו אזור, אפשר להשתמש מחדש באותה רשת משנה בכללי המדיניות האלה. אפשר להזין כמה רשתות משנה ברשימה מופרדת בפסיקים.
  • LIMIT: המספר המקסימלי של נקודות קצה שאפשר ליצור באמצעות המדיניות הזו. אם לא מציינים מגבלה, אין מגבלה.
  • DESCRIPTION: תיאור אופציונלי של מדיניות חיבור השירות.
  • PRODUCER_INSTANCE_LOCATION: דגל אופציונלי שמשמש לציון אם לאשר היררכיה מותאמת אישית של המיקומים עבור מופע Cloud SQL. אפשר להגדיר את הערך של PRODUCER_INSTANCE_LOCATION רק לאחת מהאפשרויות הבאות:

    • custom-resource-hierarchy-levels: המופע צריך להיות ממוקם באחד מהפרויקטים, התיקיות או הארגונים שציינתם כערך לפרמטר allowed-google-producers-resource-hierarchy-level.
    • none: המופע נמצא באותו פרויקט כמו מדיניות חיבור השירות.
  • RESOURCE_HIERARCHY_LEVEL: רשימה של פרויקטים, תיקיות או ארגונים שבהם נמצא המופע. הרשימה הזו היא בצורה של projects/PROJECT_ID, folders/FOLDER_ID או organizations/ORGANIZATION_ID.

לדוגמה, הפקודה הבאה יוצרת מדיניות של חיבור שירות עבור מחלקת השירות
google-cloud-sql שמקצה כתובות IP מתת-הרשת managed-services. אפשר ליצור עד 10 נקודות קצה של Private Service Connect באמצעות המדיניות הזו. צריך ליצור את נקודות הקצה בפרויקטים שנמצאים באותו ארגון כמו מופע השירות המנוהל. מופע Cloud SQL נמצא בפרויקט myproject.

gcloud network-connectivity service-connection-policies create cloud-sql-policy \
    --network=default \
    --project=my-project \
    --region=us-central1 \
    --service-class=google-cloud-sql \
    --subnets=managed-service-subnet \
    --psc-connection-limit=10 \
    --producer-instance-location=custom-resource-hierarchy-levels \
    --allowed-google-producers-resource-hierarchy-level=projects/myproject

REST

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

  • PROJECT_ID: מזהה הפרויקט.
  • REGION: האזור של מדיניות חיבור השירות.
  • POLICY_NAME: השם של מדיניות חיבור השירות.
  • DESCRIPTION: תיאור אופציונלי של מדיניות החיבור לשירות.
  • NETWORK: הרשת של מדיניות חיבור השירות.
  • LIMIT: המספר המקסימלי של נקודות קצה שאפשר ליצור באמצעות המדיניות הזו. אם לא מציינים מגבלה, אין מגבלה.
  • SUBNETS: רשת משנה אחת או יותר של צרכנים רגילים שמשמשות להקצאת כתובות IP לנקודות קצה של Private Service Connect. כתובות ה-IP האלה מוקצות באופן אוטומטי ומוחזרות למאגר של תת-הרשת כשיש מקרים של יצירה ומחיקה של מופעים של שירות מנוהל. תתי הרשתות צריכות להיות באותו אזור כמו מדיניות חיבור השירות. אם כמה מדיניות חיבור חולקות את אותו אזור, אפשר להשתמש מחדש באותה רשת משנה במדיניות הזו. אפשר להזין כמה רשתות משנה ברשימה שמופרדת בפסיקים.
  • SERVICE_CLASS: מזהה המשאב של מחלקת השירות שסופק על ידי היצרן.

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

POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies?serviceConnectionPolicyId=POLICY_NAME

תוכן בקשת JSON:

{
  "description": "DESCRIPTION",
  "network": "projects/PROJECT_ID/global/networks/NETWORK",
  "pscConfig": {
    "limit": "LIMIT",
    "subnetworks": [
      "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET"
    ]
  },
  "serviceClass": "SERVICE_CLASS"
}

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

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

{
  "name": "projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.networkconnectivity.v1.OperationMetadata",
    "createTime": "2023-08-15T16:59:29.236110917Z",
    "target": "projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies/POLICY_NAME",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

יצירת מכונה של 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 \
--database-version=DATABASE_VERSION
--cpu=NUMBER_OF_vCPUs \
--memory=MEMORY_SIZE \
--root-password=ROOT_PASSWORD \
--psc-auto-connections=network=CONSUMER_NETWORK,project=CONSUMER_PROJECT

מחליפים את הפרטים הבאים:

  • INSTANCE_NAME: השם של המכונה.
  • PROJECT_ID: המזהה או מספר הפרויקט של Google Cloud הפרויקט שמכיל את המופע.
  • REGION_NAME: שם האזור של המכונה.
  • ALLOWED_PROJECTS: רשימה מופרדת בפסיקים של מזהי פרויקטים או מספרים מותרים, שמנקודות קצה מסוג Private Service Connect אפשר להתחבר למופעים של Cloud SQL.

    אם פרויקט מסוים לא מופיע ברשימה הזו, אי אפשר ליצור בו נקודות קצה של Private Service Connect כדי להתחבר למופע.

  • AVAILABILITY_TYPE: מפעיל זמינות גבוהה למכונה. לפרמטר הזה מציינים אחד מהערכים הבאים:
    • REGIONAL: מאפשר זמינות גבוהה ומומלץ למופעי ייצור. המופע עובר לזמינות חלקית באזור אחר בתוך האזור שנבחר.
    • ZONAL: לא מספק יכולת מעבר לגיבוי. זה ערך ברירת המחדל.

    מידע נוסף על הגדרה והסרה של זמינות גבוהה למופעים זמין במאמרים הגדרת זמינות גבוהה למופע קיים והשבתת זמינות גבוהה למופע.

  • DATABASE_VERSION: גרסת מסד הנתונים של המופע (לדוגמה, SQLSERVER_2019_STANDARD).
  • NUMBER_OF_vCPUs: מספר ליבות המעבד של המכונה.
  • MEMORY_SIZE: כמות הזיכרון של המכונה.
  • ROOT_PASSWORD: הסיסמה של משתמש Cloud SQL‏ root.
  • CONSUMER_NETWORK: הנתיב לרשת ה-VPC שממנה צריך ליצור נקודות קצה של Private Service Connect. לדוגמה:
    projects/my-host-project/global/networks/default.
  • CONSUMER_PROJECT: הפרויקט שבו נוצרה נקודת הקצה של Private Service Connect. אם אתם משתמשים ברשת VPC משותפת, זה יכול להיות פרויקט המארח או פרויקט השירות.

    כל הפרויקטים שמצוינים בפרמטרים של הקישור האוטומטי יתווספו אוטומטית לרשימת הפרויקטים המורשים. אם רוצים ליצור נקודות קצה של Private Service Connect באופן ידני בפרויקטים מסוימים, אפשר להוסיף את הפרויקטים האלה לרשימת הפרויקטים המותרים.

REST

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

  • PROJECT_ID: המזהה או מספר הפרויקט של Google Cloud הפרויקט שמכיל את המופע.
  • INSTANCE_NAME: השם של המכונה.
  • REGION_NAME: שם האזור של המכונה.
  • ROOT_PASSWORD: הסיסמה של משתמש Cloud SQL‏ root.
  • AVAILABILITY_TYPE: מפעיל זמינות גבוהה למכונה. לפרמטר הזה מציינים אחד מהערכים הבאים:
    • REGIONAL: מאפשר זמינות גבוהה ומומלץ למופעי ייצור. המופע עובר לזמינות חלקית באזור אחר בתוך האזור שנבחר.
    • ZONAL: לא מספק יכולת מעבר לגיבוי. זה ערך ברירת המחדל.

    מידע נוסף על הגדרה והסרה של זמינות גבוהה למופעים זמין במאמרים הגדרת זמינות גבוהה למופע קיים והשבתת זמינות גבוהה למופע.

  • ALLOWED_PROJECTS: רשימה מופרדת בפסיקים של מזהי פרויקטים או מספרים מותרים, שמנקודות קצה מסוג Private Service Connect אפשר להתחבר למופעים של Cloud SQL.

    אם פרויקט מסוים לא מופיע ברשימה הזו, אי אפשר ליצור בו נקודות קצה של Private Service Connect כדי להתחבר למופע.

  • MACHINE_TYPE: ערך מחרוזת ממוספר שמייצג את סוג המכונה של המופע. לדוגמה: db-custom-NUMBER_OF_vCPUs-MEMORY_SIZE, כאשר NUMBER_OF_vCPUs הוא מספר ליבות המעבד ו-MEMORY_SIZE הוא כמות הזיכרון שרוצים להקצות למופע.
  • CONSUMER_NETWORK: רשת ה-VPC שבה רוצים לאפשר יצירה אוטומטית של נקודות קצה של Private Service Connect.
  • PARENT_PROJECT: הפרויקט שמכיל את הרשת CONSUMER_NETWORK. אם לא מציינים פרויקט אחר ב-CONSUMER_PROJECT, נקודות הקצה נוצרות באופן אוטומטי ב-PARENT_PROJECT
  • CONSUMER_PROJECT: אופציונלי. מציינים את הערך הזה רק אם CONSUMER_NETWORK היא רשת VPC משותפת ורוצים לאפשר יצירה אוטומטית של נקודות קצה (endpoint) מסוג Private Service Connect בפרויקט שירות.

    כל הפרויקטים שמצוינים בפרמטרים של הקישור האוטומטי יתווספו אוטומטית לרשימת הפרויקטים המורשים. אם רוצים ליצור נקודות קצה של Private Service Connect באופן ידני בפרויקטים מסוימים, אפשר להוסיף את הפרויקטים האלה לרשימת הפרויקטים המותרים.

ה-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,
      "pscConfig": {
        "allowedConsumerProjects": [
          "ALLOWED_PROJECTS"
        ],
        "pscAutoConnections": [
          {
            "consumerProject":"CONSUMER_PROJECT",
            "consumerNetwork":"projects/PARENT_PROJECT/global/networks/CONSUMER_NETWORK"
          }
        ],
        "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"
}

אחזור נקודת הקצה

אפשר לאחזר את כתובת ה-IP הפנימית, שהיא נקודת הקצה של Private Service Connect למופע, ולהשתמש בנקודת הקצה הזו כדי להתחבר למופע.

gcloud

כדי לראות מידע על מכונה, כולל כתובת ה-IP שהיא נקודת הקצה של Private Service Connect עבור המכונה, משתמשים בפקודה gcloud sql instances describe:

gcloud sql instances describe INSTANCE_NAME \
--project=PROJECT_ID \
--format='json(settings.ipConfiguration.pscConfig.pscAutoConnections)'

מחליפים את הפרטים הבאים:

בתגובה, רושמים את הערך שמופיע לצד השדה pscConfig:pscAutoConnections:ipAddress. הערך הזה הוא כתובת ה-IP הפנימית שהיא גם נקודת הקצה של Private Service Connect עבור המופע.

REST

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

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

GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME

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

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

{
  "kind": "sql#instance",
  "state": "RUNNABLE",
  "databaseVersion": "SQLSERVER_2019_STANDARD",
  "settings": {
    "authorizedGaeApplications": [],
    "tier": "db-custom-2-7680",
    "kind": "sql#settings",
    "availabilityType": "REGIONAL",
    "pricingPlan": "PER_USE",
    "replicationType": "SYNCHRONOUS",
    "activationPolicy": "ALWAYS",
    "ipConfiguration": {
      "authorizedNetworks": [],
      "pscConfig": {
        "allowedConsumerProjects": [
          "ALLOWED_PROJECTS"
        ],
      "pscAutoConnections": {
        consumerNetwork:"projects/PARENT_PROJECT/global/networks/CONSUMER_NETWORK",
        consumerNetworkStatus:"CONSUMER_NETWORK_STATUS",
        consumerProject:"CONSUMER_PROJECT",
        ipAddress:"IP_ADDRESS",
        status:"STATUS"
        },
        "pscEnabled": true
      },
      "ipv4Enabled": false
    },
}

השדות הבאים קיימים במופעים שמופעל בהם Private Service Connect:

  • allowedConsumerProjects: רשימה של הפרויקטים המורשים למופע. אתם יכולים ליצור נקודות קצה של Private Service Connect מכל רשת VPC בפרויקטים האלה לשירות המצורף של המופע.
  • pscAutoConnections: רשת ה-VPC המותרת, הסטטוס של מדיניות חיבור השירות והסטטוס של כתובת ה-IP שהיא נקודת הקצה של המופע.
  • pscEnabled: האם מופעלת במכונה התכונה Private Service Connect.

כדי לראות איך יוצרים את בקשת ה-API הבסיסית בארכיטקטורת REST למשימה הזו, אפשר לעיין בדף instances:get.

יצירת נקודת הקצה באופן ידני

כדי ליצור את נקודת הקצה של Private Service Connect באופן ידני:

  1. יוצרים מכונה של Cloud SQL עם Private Service Connect שמופעל עבור המכונה.

  2. קבלת ה-URI של קובץ השירות המצורף משתמשים ב-URI הזה כדי ליצור את נקודת הקצה של Private Service Connect.

  3. שומרים כתובת IP פנימית לנקודת הקצה של Private Service Connect ויוצרים נקודת קצה עם הכתובת הזו.

יצירת מכונה של Cloud SQL

אפשר ליצור מכונה עם Private Service Connect מופעל באמצעות ה-CLI של gcloud,‏ Terraform או ה-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 \
--database-version=DATABASE_VERSION
--cpu=NUMBER_OF_vCPUs \
--memory=MEMORY_SIZE \
--root-password=ROOT_PASSWORD

מחליפים את הפרטים הבאים:

  • INSTANCE_NAME: השם של המכונה.
  • PROJECT_ID: המזהה או מספר הפרויקט של Google Cloud הפרויקט שמכיל את המופע.
  • REGION_NAME: שם האזור של המכונה.
  • ALLOWED_PROJECTS: רשימה מופרדת בפסיקים של מזהי פרויקטים או מספרים מותרים, שמנקודות קצה מסוג Private Service Connect אפשר להתחבר למופעים של Cloud SQL.

    אם פרויקט מסוים לא מופיע ברשימה הזו, אי אפשר ליצור בו נקודות קצה של Private Service Connect כדי להתחבר למופע.

  • AVAILABILITY_TYPE: הפעלת זמינות גבוהה למכונה. לפרמטר הזה מציינים אחד מהערכים הבאים:
    • REGIONAL: מאפשר זמינות גבוהה ומומלץ למופעי ייצור. המופע עובר לזמינות חלקית באזור אחר בתוך האזור שנבחר.
    • ZONAL: לא מספק יכולת מעבר לגיבוי. זה ערך ברירת המחדל.

    מידע נוסף על הגדרה והסרה של זמינות גבוהה למופעים זמין במאמרים הגדרת זמינות גבוהה למופע קיים והשבתת זמינות גבוהה למופע.

  • DATABASE_VERSION: גרסת מסד הנתונים של המופע (לדוגמה, SQLSERVER_2019_STANDARD).
  • NUMBER_OF_vCPUs: מספר ליבות המעבד של המכונה.
  • MEMORY_SIZE: כמות הזיכרון של המכונה.
  • ROOT_PASSWORD: הסיסמה של משתמש Cloud SQL‏ root.

Terraform

כדי ליצור מכונה עם Private Service Connect שמופעל עבור המכונה, משתמשים ב משאב google_sql_database_instance של Terraform.

resource "google_sql_database_instance" "default" {
  name             = "sqlserver-instance"
  region           = "us-central1"
  database_version = "SQLSERVER_2019_ENTERPRISE"
  root_password    = "INSERT-PASSWORD-HERE"
  settings {
    tier              = "db-custom-2-7680"
    availability_type = "REGIONAL"
    backup_configuration {
      enabled    = true
      start_time = "20:55"
    }
    ip_configuration {
      psc_config {
        psc_enabled               = true
        allowed_consumer_projects = [] # Add consumer project IDs here.
      }
      ipv4_enabled = false
    }
  }
}

כדי להחיל את ההגדרות של 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.

REST

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

  • PROJECT_ID: המזהה או מספר הפרויקט של Google Cloud הפרויקט שמכיל את המופע.
  • INSTANCE_NAME: השם של המכונה.
  • REGION_NAME: שם האזור של המכונה.
  • ROOT_PASSWORD: הסיסמה של משתמש Cloud SQL‏ root.
  • AVAILABILITY_TYPE: מפעיל זמינות גבוהה למכונה. לפרמטר הזה מציינים אחד מהערכים הבאים:
    • REGIONAL: מאפשר זמינות גבוהה ומומלץ למופעי ייצור. המופע עובר לזמינות חלקית באזור אחר בתוך האזור שנבחר.
    • ZONAL: לא מספק יכולת מעבר לגיבוי. זה ערך ברירת המחדל.

    מידע נוסף על הגדרה והסרה של זמינות גבוהה למופעים זמין במאמרים הגדרת זמינות גבוהה למופע קיים והשבתת זמינות גבוהה למופע.

  • ALLOWED_PROJECTS: רשימה מופרדת בפסיקים של מזהי פרויקטים או מספרים מותרים, שמנקודות קצה מסוג Private Service Connect אפשר להתחבר למופעים של Cloud SQL.

    אם פרויקט מסוים לא מופיע ברשימה הזו, אי אפשר ליצור בו נקודות קצה של Private Service Connect כדי להתחבר למופע.

  • MACHINE_TYPE: ערך מחרוזת ממוספר שמייצג את סוג המכונה של המופע. לדוגמה: db-custom-NUMBER_OF_vCPUs-MEMORY_SIZE, כאשר NUMBER_OF_vCPUs הוא מספר ליבות המעבד ו-MEMORY_SIZE הוא כמות הזיכרון שרוצים להקצות למופע.

ה-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,
      "pscConfig": {
        "allowedConsumerProjects": [
          "ALLOWED_PROJECTS"
        ],
        "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"
}

קבלת קובץ מצורף של שירות

אחרי שיוצרים מופע Cloud SQL עם Private Service Connect מופעל, מקבלים את ה-URI של קובץ השירות המצורף ומשתמשים בו כדי ליצור את נקודת הקצה של Private Service Connect.

gcloud

כדי לראות סיכום מידע על מופע עם Private Service Connect מופעל, כמו השדה pscServiceAttachmentLink שמציג את ה-URI שמפנה לקובץ המצורף של השירות של המופע, משתמשים בפקודה gcloud sql instances describe:

gcloud sql instances describe INSTANCE_NAME \
--project=PROJECT_ID

מחליפים את הפרטים הבאים:

  • INSTANCE_NAME: השם של מופע Cloud SQL שאליו יכולות להתחבר נקודות קצה של Private Service Connect ברשתות VPC
  • PROJECT_ID: המזהה או מספר הפרויקט של Google Cloud הפרויקט שמכיל את המופע

בדוגמה הבאה אפשר לראות פלט לדוגמה של הפקודה הזו:

gcloud sql instances describe myinstance \
--project=12345

...
pscServiceAttachmentLink: projects/45678/regions/myregion/serviceAttachments/myserviceattachment

REST

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

  • PROJECT_ID: המזהה או מספר הפרויקט של Google Cloud הפרויקט שמכיל את המופע
  • INSTANCE_NAME: השם של המכונה

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

GET https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_NAME

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

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

{
  ...
  pscServiceAttachmentLink: "projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME"
}

בשדה pscServiceAttachmentLink מוצג מזהה המשאבים האחיד (URI) שמפנה לקובץ המצורף של השירות במופע.

יצירת נקודת קצה מסוג Private Service Connect

אפשר לשריין כתובת IP פנימית לנקודת הקצה של Private Service Connect וליצור נקודת קצה עם הכתובת הזו. כדי ליצור את נקודת הקצה, צריך את ה-URI של קובץ השירות ואת הפרויקטים שמותרים למופע.

gcloud

  1. כדי לשריין כתובת IP פנימית לנקודת הקצה של Private Service Connect, משתמשים בפקודה
    gcloud compute addresses create:

    gcloud compute addresses create ADDRESS_NAME \
    --project=PROJECT_ID \
    --region=REGION_NAME \
    --subnet=SUBNET_URI \
    --addresses=INTERNAL_IP_ADDRESS

    מחליפים את הפרטים הבאים:

    • ADDRESS_NAME: השם של כתובת ה-IP הפנימית.
    • PROJECT_ID: המזהה או מספר הפרויקט של Google Cloud הפרויקט של נקודת הקצה.
    • REGION_NAME: שם האזור של נקודת הקצה.
    • SUBNET_URI: שם רשת המשנה של כתובת ה-IP. הפורמט הוא: projects/SUBNET_PROJECT_ID/regions/REGION_NAME/subnetworks/SUBNET_NAME. אם תת-הרשת נמצאת ברשת VPC משותפת, מומלץ ש-SUBNET_PROJECT_ID יהיה הפרויקט המארח.
    • INTERNAL_IP_ADDRESS: כתובת ה-IP לשמירה. כתובת ה-IP הזו צריכה להיות בטווח כתובות ה-IP הראשי של רשת המשנה. כתובת ה-IP יכולה להיות כתובת RFC 1918 או רשת משנה עם טווחים שאינם RFC. אם לא רוצים לציין את כתובת ה-IP כי רוצים ש-Google Cloud ישמור כתובת IP זמינה ברשת המשנה, צריך להשמיט את הדגל הזה.
  2. כדי לוודא שכתובת ה-IP שמורה, משתמשים בפקודה gcloud compute addresses list:

    gcloud compute addresses list ADDRESS_NAME \
    --project=PROJECT_ID

    בתגובה, מוודאים שמופיע סטטוס RESERVED לכתובת ה-IP.

  3. כדי ליצור את נקודת הקצה של Private Service Connect ולהפנות אותה לקובץ המצורף של שירות Cloud SQL, משתמשים בפקודה gcloud compute forwarding-rules create:

    gcloud compute forwarding-rules create ENDPOINT_NAME \
    --address=ADDRESS_NAME \
    --project=PROJECT_ID \
    --region=REGION_NAME \
    --network=NETWORK_URI \
    --target-service-attachment=SERVICE_ATTACHMENT_URI \
    --allow-psc-global-access

    מחליפים את הפרטים הבאים:

    • ENDPOINT_NAME: השם של נקודת הקצה
    • NETWORK_URI: ה-URI של רשת ה-VPC של נקודת הקצה. הפורמט הוא: projects/NETWORK_PROJECT_ID/global/networks/NETWORK_NAME. אם רוצים להשתמש ברשת VPC משותפת, צריך לציין את פרויקט המארח כ-NETWORK_PROJECT_ID.
    • SERVICE_ATTACHMENT_URI: ה-URI של קובץ השירות המצורף
  4. כדי לוודא שקובץ השירות מקבל את נקודת הקצה, משתמשים בפקודה
    gcloud compute forwarding-rules describe:

    gcloud compute forwarding-rules describe ENDPOINT_NAME \
    --project=PROJECT_ID \
    --region=REGION_NAME

    בתשובה, מוודאים שמופיע סטטוס ACCEPTED בשדה pscConnectionStatus. נקודת הקצה יכולה להתחבר ל-Service Attachment.

Terraform

כדי ליצור נקודת קצה מסוג Private Service Connect, משתמשים ב google_sql_database_instanceמשאב Terraform.

אפשר להשתמש בדוגמה הבאה כדי ליצור נקודת קצה של Private Service Connect ב-IPv4.

resource "google_compute_address" "default" {
  name         = "psc-compute-address-${google_sql_database_instance.default.name}"
  region       = "us-central1"
  address_type = "INTERNAL"
  subnetwork   = "default"     # Replace value with the name of the subnet here.
  address      = "10.128.0.44" # Replace value with the IP address to reserve.
}

data "google_sql_database_instance" "default" {
  name = resource.google_sql_database_instance.default.name
}

resource "google_compute_forwarding_rule" "default" {
  name                    = "psc-forwarding-rule-${google_sql_database_instance.default.name}"
  region                  = "us-central1"
  network                 = "default"
  ip_address              = google_compute_address.default.self_link
  load_balancing_scheme   = ""
  target                  = data.google_sql_database_instance.default.psc_service_attachment_link
  allow_psc_global_access = true
}

אפשר להשתמש בדוגמה הבאה כדי ליצור נקודת קצה של Private Service Connect ב-IPv6.

resource "google_compute_network" "ipv6_default" {
  name                     = "net-ipv6"
  auto_create_subnetworks  = false
  enable_ula_internal_ipv6 = true
}

resource "google_compute_subnetwork" "ipv6_default" {
  name             = "subnet-internal-ipv6"
  ip_cidr_range    = "10.0.0.0/16"
  region           = "us-central1"
  stack_type       = "IPV4_IPV6"
  ipv6_access_type = "INTERNAL"
  network          = google_compute_network.ipv6_default.id
}

resource "google_compute_address" "ipv6_default" {
  name         = "psc-compute-ipv6-address-${google_sql_database_instance.default.name}"
  region       = "us-central1"
  address_type = "INTERNAL"
  subnetwork   = google_compute_subnetwork.ipv6_default.name
  ip_version   = "IPV6"
}

resource "google_compute_forwarding_rule" "ipv6_ilb_example" {
  name   = "ipv6-psc-forwarding-rule-${google_sql_database_instance.default.name}"
  region = "us-central1"

  load_balancing_scheme   = ""
  target                  = data.google_sql_database_instance.default.psc_service_attachment_link
  network                 = google_compute_network.ipv6_default.name
  subnetwork              = google_compute_subnetwork.ipv6_default.name
  ip_address              = google_compute_address.ipv6_default.id
  allow_psc_global_access = true
}

כדי להחיל את ההגדרות של 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.

REST

  1. שומרים כתובת IP פנימית לנקודת הקצה של Private Service Connect.

  2. מוודאים שכתובת ה-IP שמורה.

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

    • PROJECT_ID: המזהה או מספר הפרויקט של Google Cloud הפרויקט שמכיל את נקודת הקצה של Private Service Connect
    • REGION_NAME: שם האזור
    • ADDRESS_NAME: השם של כתובת ה-IP

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

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/addresses/ADDRESS_NAME

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

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

    {
      "kind": "compute#address",
      "id": "ADDRESS_ID",
      "creationTimestamp": "2024-05-09T11:20:50.114-07:00",
      "name": "ADDRESS_NAME",
      "description": "This is the name of the internal IP address.",
      "address": "IP_ADDRESS",
      "status": "RESERVED",
      "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME",
      "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/addresses/ADDRESS_NAME",
      "networkTier": "PREMIUM",
      "labelFingerprint": "LABEL_FINGERPRINT_ID",
      "addressType": "EXTERNAL"
    }
    

    בתגובה, מוודאים שמופיע סטטוס RESERVED לכתובת ה-IP.

  3. יוצרים את נקודת הקצה של Private Service Connect ומפנים אותה לקובץ המצורף של שירות Cloud SQL.

  4. מוודאים שקובץ ה-Service Attachment מקבל את נקודת הקצה.

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

    • PROJECT_ID: המזהה או מספר הפרויקט של Google Cloud הפרויקט שמכיל את נקודת הקצה של Private Service Connect
    • REGION_NAME: שם האזור
    • ENDPOINT_NAME: השם של נקודת הקצה

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

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/ENDPOINT_NAME

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

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

    {
      "kind": "compute#forwardingRule",
      "id": "ENDPOINT_ID",
      "creationTimestamp": "2024-05-09T12:03:21.383-07:00",
      "name": "ENDPOINT_NAME",
      "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME",
      "IPAddress": "IP_ADDRESS",
      "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME",
      "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/ENDPOINT_NAME",
      "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/default",
      "serviceDirectoryRegistrations": [
        {
          "namespace": "goog-psc-default"
        }
      ],
      "networkTier": "PREMIUM",
      "labelFingerprint": "LABEL_FINGERPRINT_ID",
      "fingerprint": "FINGERPRINT_ID",
      "pscConnectionId": "CONNECTION_ID",
      "pscConnectionStatus": "ACCEPTED",
      "allowPscGlobalAccess": true
    }
    

    בתשובה, מוודאים שמופיע סטטוס ACCEPTED בשדה pscConnectionStatus. נקודת הקצה יכולה להתחבר ל-Service Attachment.

התחברות למכונה של Cloud SQL

אפשר להתחבר למכונת Cloud SQL עם Private Service Connect מופעל באמצעות כתובת IP פנימית, רשומת DNS, שרת proxy ל-Cloud SQL Auth, מחברי שפות ל-Cloud SQL או אפליקציות אחרות. Google Cloud

הגדרת תחום מנוהל ורשומת DNS

‫Cloud SQL לא יוצר רשומות DNS באופן אוטומטי. במקום זאת, בתשובה של Instance Lookup API מופיע שם DNS מוצע. מומלץ ליצור את רשומת ה-DNS בתחום DNS פרטי ברשת ה-VPC המתאימה. כך אפשר להשתמש בשרת proxy ל-Cloud SQL Auth כדי להתחבר מרשתות שונות בצורה עקבית.

gcloud

  1. כדי להציג סיכום מידע על מכונת Cloud SQL, כולל שם ה-DNS של המכונה, משתמשים בפקודה gcloud sql instances describe:

    gcloud sql instances describe INSTANCE_NAME \
    --project=PROJECT_ID

    מחליפים את הפרטים הבאים:

    • INSTANCE_NAME: השם של מכונת Cloud SQL
    • PROJECT_ID: המזהה או מספר הפרויקט של Google Cloud הפרויקט שמכיל את המופע

    בתשובה, מוודאים ששם ה-DNS מופיע. השם הזה פועל לפי התבנית הבאה: INSTANCE_UID.PROJECT_DNS_LABEL.REGION_NAME.sql.goog.. לדוגמה: 1a23b4cd5e67.1a2b345c6d27.us-central1.sql.goog..

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

    מידע נוסף על הגדרת SAN מותאם אישית זמין במאמר יצירת מופעים.

  2. כדי ליצור תחום DNS פרטי, משתמשים בפקודה gcloud dns managed-zones create. האזור הזה משויך לרשת ה-VPC שמשמשת לחיבור למופע Cloud SQL דרך נקודת הקצה של Private Service Connect.

    gcloud dns managed-zones create ZONE_NAME \
    --project=PROJECT_ID \
    --description="DESCRIPTION" \
    --dns-name=DNS_NAME \
    --networks=NETWORK_NAME \
    --visibility=private

    מחליפים את הפרטים הבאים:

    • ZONE_NAME: השם של תחום ה-DNS
    • PROJECT_ID: המזהה או מספר הפרויקט של Google Cloud הפרויקט שמכיל את האזור
    • DESCRIPTION: תיאור של האזור (לדוגמה, תחום DNS למופע Cloud SQL)
    • DNS_NAME: השם של סיומת ה-DNS של האזור, למשל REGION_NAME.sql.goog. (כאשר REGION_NAME הוא שם האזור של האזור)
    • NETWORK_NAME: השם של רשת ה-VPC
  3. אחרי יצירת נקודת הקצה של Private Service Connect, כדי ליצור רשומת DNS באזור, משתמשים בפקודה gcloud dns record-sets create:

    gcloud dns record-sets create DNS_RECORD \
    --project=PROJECT_ID \
    --type=RRSET_TYPE \
    --rrdatas=RR_DATA \
    --zone=ZONE_NAME

    מחליפים את הפרטים הבאים:

    • DNS_RECORD: השם של רשומת ה-DNS. הרשומה הזו מוגדרת לשם ה-DNS שאחזרתם ממופע Cloud SQL קודם לכן בתהליך הזה (לדוגמה, 1a23b4cd5e67.1a2b345c6d27.us-central1.sql.goog.).
    • RRSET_TYPE: סוג רשומת המשאב של קבוצת רשומות ה-DNS. אם כתובת ה-IP הפנימית ששמרתם לנקודת הקצה של Private Service Connect היא IPv4, צריך לציין A כערך של הפרמטר הזה. אחרת, אם כתובת ה-IP של נקודת הקצה היא IPv6, מציינים AAAA.
    • RR_DATA: כתובת ה-IP שהוקצתה לנקודת הקצה של Private Service Connect (לדוגמה, 198.51.100.5). אפשר גם להזין כמה ערכים, כמו rrdata1 rrdata2 rrdata3 (לדוגמה, 10.1.2.3 10.2.3.4 10.3.4.5).

REST

  1. קבלת שם ה-DNS של מכונה ב-Cloud SQL.
  2. לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • PROJECT_ID: המזהה או מספר הפרויקט של Google Cloud הפרויקט שמכיל את המופע
    • INSTANCE_NAME: השם של המכונה

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

    GET https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_NAME

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

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

    {
      ...
      "dnsName": "INSTANCE_ID.PROJECT_DNS_LABEL.REGION_NAME.sql.goog."
    }
    

    בשדה dnsName מוצג שם ה-DNS של מכונת Cloud SQL. שמות DNS תמיד מסתיימים בנקודה (.).

  3. יוצרים תחום DNS פרטי. האזור הזה משויך לרשת ה-VPC שמשמשת לחיבור למופע Cloud SQL דרך נקודת הקצה של Private Service Connect.
  4. לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • PROJECT_ID: המזהה או מספר הפרויקט של Google Cloud הפרויקט שמכיל את תחום ה-DNS
    • ZONE_NAME: שם האזור
    • DESCRIPTION: תיאור של האזור (לדוגמה, תחום DNS למופע Cloud SQL)
    • DNS_NAME: השם של סיומת ה-DNS של האזור, למשל REGION_NAME.sql.goog. (כאשר REGION_NAME הוא שם האזור של האזור)
    • NETWORK_NAME: השם של רשת ה-VPC

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

    POST https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones

    תוכן בקשת JSON:

    {
      "name": "ZONE_NAME",
      "description": "DESCRIPTION",
      "dnsName": "DNS_NAME",
      "visibility": "private",
      "privateVisibilityConfig": {
        "kind": "dns#managedZonePrivateVisibilityConfig",
        "networks": [
          {
            "kind": "dns#managedZonePrivateVisibilityConfigNetwork",
            "networkUrl": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK_NAME"
          }
        ]
      }
    }
    

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

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

    {
      "name": "ZONE_NAME",
      "dnsName": "DNS_NAME",
      "description": "DESCRIPTION",
      "id": "ID",
      "nameServers": [
        "ns-gcp-private.googledomains.com."
      ],
      "creationTime": "2024-05-10T17:05:34.607Z",
      "visibility": "private",
      "privateVisibilityConfig": {
        "networks": [
          {
            "networkUrl": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK_NAME",
            "kind": "dns#managedZonePrivateVisibilityConfigNetwork"
          }
        ],
        "gkeClusters": [],
        "kind": "dns#managedZonePrivateVisibilityConfig"
      },
      "cloudLoggingConfig": {
        "kind": "dns#managedZoneCloudLoggingConfig"
      },
      "kind": "dns#managedZone"
    }
    
  5. אחרי יצירת נקודת הקצה של Private Service Connect, יוצרים רשומת DNS באזור.
  6. לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • PROJECT_ID: המזהה או מספר הפרויקט של Google Cloud הפרויקט שמכיל את תחום ה-DNS.
    • ZONE_NAME: שם האזור.
    • DNS_RECORD: השם של רשומת ה-DNS. הרשומה הזו מוגדרת לשם ה-DNS שאחזרתם ממופע Cloud SQL קודם לכן בתהליך הזה (לדוגמה, 1a23b4cd5e67.1a2b345c6d27.us-central1.sql.goog.).
    • RRSET_TYPE: סוג רשומת המשאב של קבוצת רשומות ה-DNS. אם כתובת ה-IP הפנימית ששמרתם לנקודת הקצה של Private Service Connect היא IPv4, צריך לציין A כערך של הפרמטר הזה. אחרת, אם כתובת ה-IP של נקודת הקצה היא IPv6, מציינים AAAA.
    • TTL: אורך החיים (TTL) של קבוצת הרשומות בשניות (לדוגמה, 300).
    • RR_DATA: כתובת ה-IP שהוקצתה לנקודת הקצה של Private Service Connect (לדוגמה, 198.51.100.5). אפשר גם להזין כמה ערכים, כמו rrdata1 rrdata2 rrdata3 (לדוגמה, 10.1.2.3 10.2.3.4 10.3.4.5).

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

    POST https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/ZONE_NAME

    תוכן בקשת JSON:

    {
      "deletions": []
      "additions": [
        {
          "name": "DNS_RECORD",
          "type": "RRSET_TYPE",
          "ttl": TTL,
          "rrdatas": [
            "RR_DATA"
          ]
        }
      ]
    }
    

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

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

    {
      "additions": [
        {
          "name": "DNS_RECORD",
          "type": "RRSET_TYPE",
          "ttl": TTL,
          "rrdatas": [
            "RR_DATA"
          ],
          "signatureRrdatas": [],
          "kind": "dns#resourceRecordSet"
        }
      ],
      "deletions": [],
      "startTime": "2024-05-10T17:29:44.375Z",
      "id": "CHANGE_ID",
      "status": "pending",
      "kind": "dns#change"
    }
    

התחברות ישירה באמצעות רשומת DNS

לפני שמתחברים למכונת Cloud SQL באמצעות רשומת DNS, צריך לבצע את הפעולות הבאות:

  1. יצירת נקודת קצה מסוג Private Service Connect
  2. מוודאים שקובץ ה-service attachment של המופע מקבל את נקודת הקצה. כדי לוודא שהסטטוס של נקודת הקצה הוא ACCEPTED, בודקים את הסטטוס.
  3. הגדרת תחום מנוהל של DNS ורשומת DNS.

אחרי שתעמדו בתנאים האלה, תוכלו להשתמש ברשומת ה-DNS כדי להתחבר למופע מכל רשת VPC שבה יצרתם את נקודת הקצה.

sqlcmd -S DNS_RECORD -d DATABASE_NAME -U USERNAME

מחליפים את הפרטים הבאים:

  • DNS_RECORD: רשומת ה-DNS של נקודת הקצה
  • DATABASE_NAME: השם של מסד הנתונים של Cloud SQL ל-SQL Server שנמצא בתוך המכונה
  • USERNAME: השם של המשתמש שמתחבר למכונה

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

לפני שמתחברים למופע Cloud SQL עם Private Service Connect מופעל, צריך לבצע את הפעולות הבאות:

  1. יצירת נקודת קצה מסוג Private Service Connect
  2. מוודאים שקובץ ה-service attachment של המופע מקבל את נקודת הקצה. כדי לוודא שהסטטוס של נקודת הקצה הוא ACCEPTED, בודקים את הסטטוס.

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

  1. מאחזרים את כתובת ה-IP הפנימית של נקודת הקצה של Private Service Connect באמצעות השם של כתובת ה-IP של נקודת הקצה.

    gcloud

    כדי לאחזר את כתובת ה-IP, משתמשים בפקודה gcloud compute addresses describe:

    gcloud compute addresses describe ADDRESS_NAME \
    --project=PROJECT_ID \
    --region=REGION_NAME

    מחליפים את הפרטים הבאים:

    • ADDRESS_NAME: השם של כתובת ה-IP של נקודת הקצה
    • PROJECT_ID: המזהה או מספר הפרויקט של Google Cloud הפרויקט שמכיל את נקודת הקצה
    • REGION_NAME: שם האזור של נקודת הקצה

    בתשובה, מוודאים שכתובת IP מופיעה בשדה address. זוהי כתובת ה-IP הפנימית.

    REST

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

    • PROJECT_ID: המזהה או מספר הפרויקט של Google Cloud הפרויקט שמכיל את נקודת הקצה
    • REGION_NAME: שם האזור של נקודת הקצה
    • ADDRESS_NAME: השם של כתובת ה-IP של נקודת הקצה

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

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/addresses/ADDRESS_NAME

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

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

    {
      "kind": "compute#address",
      "id": "ADDRESS_ID",
      "creationTimestamp": "2024-05-09T11:20:50.114-07:00",
      "name": "ADDRESS_NAME",
      "description": "This is the name of the internal IP address.",
      "address": "IP_ADDRESS",
      "status": "RESERVED",
      "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME",
      "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/addresses/ADDRESS_NAME",
      "networkTier": "PREMIUM",
      "labelFingerprint": "LABEL_FINGERPRINT_ID",
      "addressType": "EXTERNAL"
    }
    

    כתובת ה-IP הפנימית היא הערך שמשויך לשדה address.

  2. אפשר גם לאחזר את כתובת ה-IP הפנימית של נקודת הקצה (endpoint) של Private Service Connect באמצעות קובץ מצורף עם השירות של מופע Cloud SQL.

    gcloud

    כדי לאחזר את כתובת ה-IP, משתמשים בפקודה gcloud compute forwarding-rules list:

    gcloud compute forwarding-rules list \
    --filter="TARGET:REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME" \
    --project=PROJECT_ID

    מחליפים את הפרטים הבאים:

    • REGION_NAME: שם האזור של נקודת הקצה
    • PROJECT_ID: המזהה או מספר הפרויקט של Google Cloud הפרויקט שמכיל את נקודת הקצה
    • SERVICE_ATTACHMENT_NAME: השם של קובץ השירות של מופע Cloud SQL

    בתגובה, מוודאים שמופיעה כתובת IP. זוהי כתובת ה-IP הפנימית.

    זוהי דוגמה לתשובה:

    NAME REGION IP_ADDRESS TARGET
    myInstance us-central1 10.10.10.10 us-central1/serviceAttachments/a-123456789e0a-psc-service-attachment-abc123d4e5f67gh8

    REST

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

    • PROJECT_ID: המזהה או מספר הפרויקט של Google Cloud הפרויקט שמכיל את נקודת הקצה
    • REGION_NAME: שם האזור של נקודת הקצה
    • SERVICE_ATTACHMENT_PROJECT_ID: המזהה או מספר הפרויקט של Google Cloud הפרויקט שמכיל את קובץ השירות המצורף
    • SERVICE_ATTACHMENT_NAME: השם של קובץ השירות של מופע Cloud SQL

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

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules?target="https://www.googleapis.com/compute/v1/projects/SERVICE_ATTACHMENT_PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME"

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

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

    {
      "kind": "compute#forwardingRuleList",
      "id": "projects/PROJECT_ID/regions/REGION_NAME/forwardingRules",
      "items": [
        {
          "kind": "compute#forwardingRule",
          "id": "FORWARDING_RULE_ID",
          "creationTimestamp": "2023-10-31T13:04:37.168-07:00",
          "name": "FORWARDING_RULE_NAME",
          "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME",
          "IPAddress": "IP_ADDRESS",
          "target": "https://www.googleapis.com/compute/v1/projects/SERVICE_ATTACHMENT_PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME",
          "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/FORWARDING_RULE_NAME",
          "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME",
          "serviceDirectoryRegistrations": [
            {
              "namespace": "goog-psc-default"
            }
          ],
          "networkTier": "PREMIUM",
          "labelFingerprint": "LABEL_FINGERPRINT_ID",
          "fingerprint": "FINGERPRINT_ID",
          "pscConnectionId": "PSC_CONNECTION_ID",
          "pscConnectionStatus": "CLOSED",
          "allowPscGlobalAccess": true
        }
      ],
      "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules"
    }
    

    כתובת ה-IP הפנימית היא הערך שמשויך לשדה IPAddress.

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

    sqlcmd -S IP_ADDRESS -d DATABASE_NAME -U USERNAME

    מחליפים את הפרטים הבאים:

    • IP_ADDRESS: כתובת ה-IP של נקודת הקצה
    • DATABASE_NAME: השם של מסד הנתונים של Cloud SQL ל-SQL Server שנמצא בתוך המכונה
    • USERNAME: השם של המשתמש שמתחבר למכונה

חיבור באמצעות שרת proxy ל-Cloud SQL Auth

שרת ה-proxy ל-Cloud SQL Auth הוא מחבר שמספק גישה מאובטחת למכונה עם Private Service Connect מופעל, בלי צורך ברשתות מורשות או בהגדרת SSL.

כדי לאפשר חיבורי לקוח של שרת proxy ל-Cloud SQL Auth, צריך להגדיר רשומת DNS שתתאים לשם ה-DNS המומלץ שסופק עבור המכונה. רשומת ה-DNS היא מיפוי בין משאב DNS לבין שם דומיין.

אם אתם מתחברים דרך Private Service Connect, נדרשת גרסה v2.5.0 ואילך של Cloud SQL Auth Proxy.

הורדה והתקנה של שרת proxy ל-Cloud SQL Auth

כדי להתחבר למכונות שמופעל בהן Private Service Connect, צריך להוריד ולהתקין את הקובץ הבינארי של שרת proxy ל-Cloud SQL Auth. קובץ הבינארי שאתם מורידים תלוי במערכת ההפעלה, ובגרעין (kernel) של המערכת – 32 ביט או 64 ביט. ברוב המכשירים החדשים יותר נעשה שימוש בליבת 64 ביט.

אם אתם לא בטוחים אם במחשב שלכם פועל ליבת 32 ביט או 64 ביט, תוכלו להשתמש בפקודה uname -a ב-Linux או ב-macOS. למידע נוסף על Windows, אפשר לעיין במסמכי התיעוד של Windows.

הפעלת שרת proxy ל-Cloud SQL Auth

שרת ה-proxy ל-Cloud SQL Auth תומך בחיבורים למכונות שמופעל בהן Private Service Connect. מידע נוסף זמין במאמר הפעלת שרת ה-proxy ל-Cloud SQL Auth.

  1. הצגת סיכום מידע על מופע Cloud SQL, כולל שם החיבור של המופע.

    gcloud

    כדי לראות סיכום מידע על מופע Cloud SQL, משתמשים בפקודה
    gcloud sql instances describe.

    gcloud sql instances describe INSTANCE_NAME \
    --project=PROJECT_ID \
    --format='value(connectionName)'

    מחליפים את הפרטים הבאים:

    • INSTANCE_NAME: השם של מכונת Cloud SQL
    • PROJECT_ID: המזהה או מספר הפרויקט של Google Cloud הפרויקט שמכיל את המופע

    שם החיבור הוא בפורמט PROJECT_ID:REGION_NAME:INSTANCE_NAME.

    REST

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

    • PROJECT_ID: המזהה או מספר הפרויקט של Google Cloud הפרויקט שמכיל את המופע
    • INSTANCE_NAME: השם של המכונה

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

    GET https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_NAME

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

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

    {
      ...
      "connectionName": "PROJECT_ID:REGION_NAME:INSTANCE_NAME"
    }
    

    שם החיבור הוא בפורמט PROJECT_ID:REGION_NAME:INSTANCE_NAME.

  2. מעתיקים את שם החיבור של המכונה.
  3. מפעילים את שרת ה-proxy ל-Cloud SQL Auth:

    ./cloud-sql-proxy INSTANCE_CONNECTION_NAME --psc 

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

התחברות באמצעות מחברי השפה של Cloud SQL

מחברי השפה של Cloud SQL הם ספריות שמספקות גישה מאובטחת למופע של Cloud SQL עם Private Service Connect מופעל, בלי צורך ברשתות מורשות או בהגדרת SSL.

כדי לאפשר חיבורים באמצעות מחברי שפות של Cloud SQL, צריך להגדיר רשומת DNS שתואמת לשם ה-DNS המומלץ שמופיע עבור המופע. רשומת ה-DNS היא מיפוי בין משאב DNS לבין שם דומיין.

מחברי השפה של Cloud SQL תומכים בחיבורים של Private Service Connect דרך PSC סוג ה-IP בספריות המתאימות.

התחברות מ-App Engine Standard, מ-Cloud Run או מפונקציות Cloud Run

כדי להתחבר למופעי Cloud SQL עם Private Service Connect מופעל, אפשר להשתמש ב-App Engine Standard או ב-Cloud Run.

בסביבות הנתמכות האלה של בלי שרת (serverless), יש תמיכה גם במחברי שפה של Cloud SQL וגם בחיבורי TCP ישירים באמצעות כתובת IP ומספר יציאה. בחיבורי TCP ישירים, זו כתובת ה-IP ששומרים כשיוצרים את נקודת הקצה של Private Service Connect. אפשר לציין את כתובת ה-IP ככתובת של מארח מסד הנתונים.

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

התחברות מ-BigQuery

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

  • משתמשים בפרמטר --no-assign-ip.
  • משתמשים בפרמטר --network כדי לציין את השם של רשת ה-VPC שרוצים להשתמש בה כדי ליצור חיבור פנימי.

הגדרת קישוריות יוצאת למכונה של Cloud SQL

אתם יכולים להגדיר את מכונת Cloud SQL שמופעל בה Private Service Connect כך שתהיה לה קישוריות יוצאת עם הרשת שלכם באמצעות ממשק Private Service Connect וקובץ מצורף עם הרשת. מידע נוסף על האופן שבו פועלת קישוריות יוצאת של Private Service Connect ועל המגבלות שלה זמין במאמר סקירה כללית על קישוריות יוצאת של Private Service Connect.

כדי להשתמש בקישוריות יוצאת עם מופע Cloud SQL, צריך:

  1. יוצרים או מעדכנים קובץ מצורף לרשת. הקובץ המצורף לרשת משמש את מכונת Cloud SQL כדי להתחבר לממשק Private Service Connect של הרשת.

    1. החיבור לרשת צריך להיות באותו אזור כמו מכונת Cloud SQL, וצריך להגדיר אותו לקבלת חיבורים באופן אוטומטי או ידני באמצעות רשימה מממשקי Private Service Connect.

    2. מקבלים את מזהה פרויקט הדייר ב-Cloud SQL. משתמשים בפקודה gcloud sql instances describe כדי לאחזר פרטים על המופע. אפשר למצוא את מזהה פרויקט הדייר בכתובת ה-URL של קובץ השירות שמוצגת בפלט:

        ADMIN_PROJECT=PROJECT_ID
        INSTANCE_NAME=INSTANCE_NAME
      
        TENANT_PROJECT_ID=$(gcloud --project=$ADMIN_PROJECT sql instances describe $INSTANCE_NAME | grep pscServiceAttachmentLink | cut -f 2 -d "/")
      

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

      • PROJECT_ID: מזהה הפרויקט של הפרויקט שבו אתם משתמשים ב- Google Cloud.
      • INSTANCE_NAME: השם של מופע Cloud SQL עם Private Service Connect שרוצים להגדיר עבור קישוריות יוצאת.

      שומרים את הערך של מזהה פרויקט הדייר כדי לכלול אותו מאוחר יותר ברשימה של מזהי פרויקטים קבילים. המאפיין הזה נדרש כשיוצרים או מעדכנים קובץ מצורף לרשת ב Google Cloud פרויקט.

  2. מזהים את הרשת שרוצים לקבל ממנה חיבורים יוצאים של Cloud SQL ומוודאים שיש לה ממשק Private Service Connect.

  3. מפעילים חיבורים יוצאים למכונה של Cloud SQL באמצעות קובץ הרשת המצורף.

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

מידע נוסף על קישוריות יוצאת של Private Service Connect זמין במאמר חיבורים יוצאים של Private Service Connect.

הפעלת חיבורים יוצאים למכונה של Cloud SQL

כדי להפעיל קישוריות יוצאת למופע Cloud SQL, צריך קודם ליצור או לעדכן קובץ מצורף לרשת בפרויקט Google Cloud .

gcloud

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

gcloud beta sql instances patch INSTANCE_NAME \
  --psc-network-attachment-uri=NETWORK_ATTACHMENT_URI \
  --project=PROJECT_ID

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

  • INSTANCE_NAME: השם של מופע Cloud SQL עם Private Service Connect שרוצים להגדיר עבור קישוריות יוצאת.
  • NETWORK_ATTACHMENT_URI: ה-URI של קובץ הרשת המצורף בפרויקט Google Cloud שבו רוצים להשתמש כדי להתחבר לממשק Private Service Connect של הרשת.
  • PROJECT_ID: מזהה הפרויקט של Google Cloudהפרויקט שבו אתם משתמשים.

כדי לוודא שהפעלתם בהצלחה את הקישוריות היוצאת של Private Service Connect, מריצים את הפקודה gcloud sql instances describe. אם הפלט כולל את psc-network-attachment-uri, סימן שהפעלתם בהצלחה את הקישוריות היוצאת של Private Service Connect.

REST v1

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

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

  • PROJECT_ID: מזהה הפרויקט.
  • NETWORK_ATTACHMENT_URI: ה-URI של רכיב Network Attachment בפרויקט.
  • INSTANCE_ID: השם של מופע Cloud SQL.

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

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

תוכן בקשת JSON:

{
  "settings": {
    "ipConfiguration": {
      "pscConfig: {
        "networkAttachmentUri": "NETWORK_ATTACHMENT_URI"
        "kind": "sql#settings"
      }
    },
  }
}

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

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

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": USER,
  "insertTime": "2025-05-13T20:44:23.064Z",
  "operationType": "UPDATE",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID","
}

REST v1beta4

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

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

  • PROJECT_ID: מזהה הפרויקט.
  • NETWORK_ATTACHMENT_URI: ה-URI של רכיב Network Attachment בפרויקט.
  • INSTANCE_ID: השם של מופע Cloud SQL.

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

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

תוכן בקשת JSON:

{
  "settings": {
    "ipConfiguration": {
      "pscConfig: {
        "networkAttachmentUri": "NETWORK_ATTACHMENT_URI"
      }
    },
  }
}

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

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

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": USER,
  "insertTime": "2025-05-13T20:44:23.064Z",
  "operationType": "UPDATE",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID","
}

למידע על פתרון בעיות שקשורות לקישוריות יוצאת של Private Service Connect, אפשר לעיין במאמר פתרון בעיות ב-Private Service Connect.

השבתת חיבורים יוצאים למכונה של Cloud SQL

gcloud

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

gcloud beta sql instances patch INSTANCE_NAME \
  --clear-psc-network-attachment-uri \
  --project=PROJECT_ID

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

  • INSTANCE_NAME: השם של מופע Cloud SQL עם Private Service Connect שרוצים להגדיר עבור קישוריות יוצאת.
  • PROJECT_ID: מזהה הפרויקט של Google Cloudהפרויקט שבו אתם משתמשים.

REST v1

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

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

  • PROJECT_ID: מזהה הפרויקט.
  • NETWORK_ATTACHMENT_URI: ה-URI של רכיב Network Attachment בפרויקט. כדי להשבית את ההגדרה, מגדירים את הערך null.
  • INSTANCE_ID: השם של מופע Cloud SQL.

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

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

תוכן בקשת JSON:

{
  "settings": {
    "ipConfiguration": {
      "pscConfig: {
        "networkAttachmentUri": null,
        "kind": "sql#settings"
      }
    },
  }
}

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

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

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": USER,
  "insertTime": "2025-05-13T20:44:23.064Z",
  "operationType": "UPDATE",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID","
}

REST v1beta4

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

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

  • PROJECT_ID: מזהה הפרויקט.
  • NETWORK_ATTACHMENT_URI: ה-URI של רכיב Network Attachment בפרויקט. כדי להשבית את ההגדרה, מגדירים את הערך null.
  • INSTANCE_ID: השם של מופע Cloud SQL.

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

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

תוכן בקשת JSON:

{
  "settings": {
    "ipConfiguration": {
      "pscConfig: {
        "networkAttachmentUri": null,
        "kind": "sql#settings"
      }
    },
  }
}

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

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

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": USER,
  "insertTime": "2025-05-13T20:44:23.064Z",
  "operationType": "UPDATE",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID","
}

בדיקת הקישוריות

כדי לבדוק את הקישוריות הנכנסת למופע Cloud SQL עם Private Service Connect מופעל, צריך להגדיר את כתובת ה-IP של נקודת הקצה של Private Service Connect ככתובת ה-IP של היעד.

gcloud

כדי ליצור בדיקת קישוריות למופע Cloud SQL עם Private Service Connect מופעל, משתמשים בפקודה gcloud network-management connectivity-tests create:

gcloud network-management connectivity-tests create CONNECTIVITY_TEST_NAME \
--source-instance=SOURCE_INSTANCE \
--destination-cloud-sql-instance=DESTINATION_CLOUD_SQL_INSTANCE \
--destination-network=DESTINATION_NETWORK \
--destination-port=DESTINATION_PORT \
--protocol=tcp

מחליפים את הפרטים הבאים:

  • CONNECTIVITY_TEST_NAME: השם של בדיקת הקישוריות.
  • SOURCE_INSTANCE: ה-URI של מופע Compute Engine שבו נמצאת כתובת ה-IP של המקור (לדוגמה, projects/myproject/zones/myzone/instances/myinstance).
  • DESTINATION_CLOUD_SQL_INSTANCE: כתובת ה-URL של מופע Cloud SQL (לדוגמה, projects/myproject/instances/myinstance).
  • DESTINATION_NETWORK: ה-URI של רשת ה-VPC שבה נמצאת כתובת ה-IP של היעד (לדוגמה, projects/myproject/global/networks/mynetwork).
  • DESTINATION_PORT: מספר היציאה ששמור למכונה. במכונות של Cloud SQL ל-SQL Server, מספר היציאה הוא 1433.

REST

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

  • PROJECT_ID: המזהה או מספר הפרויקט של Google Cloud הפרויקט שמכיל את המופע.
  • CONNECTIVITY_TEST_NAME: השם של בדיקת הקישוריות.
  • SOURCE_IP_ADDRESS: כתובת ה-IP של מכונת המקור ב-Compute Engine.
  • SOURCE_INSTANCE: ה-URI של מופע Compute Engine שבו נמצאת כתובת ה-IP של המקור (לדוגמה, projects/myproject/zones/myzone/instances/myinstance).
  • SOURCE_NETWORK: ה-URI של רשת ה-VPC שבה נמצאת כתובת ה-IP של המקור (לדוגמה, projects/myproject/global/networks/mynetwork).
  • DESTINATION_IP_ADDRESS: כתובת ה-IP של מופע היעד של Cloud SQL.
  • DESTINATION_PORT: מספר היציאה ששמור למכונה. במכונות של Cloud SQL ל-SQL Server, מספר היציאה הוא 1433.
  • DESTINATION_NETWORK: ה-URI של רשת ה-VPC שבה נמצאת כתובת ה-IP של היעד (לדוגמה, projects/myproject/global/networks/mynetwork).

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

POST https://networkmanagement.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/connectivityTests?testId=CONNECTIVITY_TEST_NAME

תוכן בקשת JSON:

{
  "source": {
    "ipAddress": "SOURCE_IP_ADDRESS",
    "instance": "SOURCE_INSTANCE",
    "network": "SOURCE_NETWORK"
  },
  "destination": {
    "ipAddress": "DESTINATION_IP_ADDRESS",
    "port": DESTINATION_PORT,
    "network": "DESTINATION_NETWORK",
    "projectId": "PROJECT_ID"
  },
  "protocol": "TCP"
}

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

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

{
  "name": "projects/PROJECT_ID/locations/global/operations/operation-OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.networkmanagement.v1.OperationMetadata",
    "createTime": "2024-05-23T16:43:49.313981473Z",
    "target": "projects/PROJECT_ID/locations/global/connectivityTests/CONNECTIVITY_TEST_NAME",
    "verb": "create",
    "cancelRequested": false,
    "apiVersion": "v1"
  },
  "done": false
}

מגבלות

  • אפשר להגדיר עד 20 נקודות קצה של Private Service Connect שמתחברות לקובץ המצורף של שירות במופע Cloud SQL עם Private Service Connect מופעל.

    אם אתם צריכים להתחבר מיותר רשתות VPC, אתם יכולים להשתמש בהפצה של נקודת קצה (endpoint) מסוג Private Service Connect דרך NCC. מידע נוסף זמין במאמר בנושא הפצה של נקודות קצה של Private Service Connect.

  • אפשר להשתמש ב-Private Service Connect כדי ליצור עד 64,512 חיבורים בו-זמניים למופע Cloud SQL.

  • הדגלים הבאים לא תקפים או מושפעים:

    • --no-assign-ip: משתמשים בדגל הזה כי לא ניתן להשתמש במופעים עם Private Service Connect מופעל בסוגי קישוריות אחרים, כמו חיבורי כתובת IP חיצונית
    • --authorized-networks: אי אפשר להשתמש בדגל הזה כדי להוסיף רשתות מורשות
    • --network: אי אפשר להשתמש בדגל הזה כי הוא משויך לגישה לשירותים פרטיים
    • --allocated-ip-range-name: אי אפשר להשתמש בדגל הזה כי אין תמיכה בשמות של טווחי כתובות IP מותרים
  • אי אפשר להגדיר מופע שמופעל בו Private Service Connect לשימוש בגישה לשירותים פרטיים או בחיבורי כתובת IP חיצונית.

    • אי אפשר להפעיל חיבורי IP חיצוניים במופע שמופעל בו Private Service Connect.
    • אי אפשר להפעיל גישה לשירותים פרטיים או להוסיף רשתות מורשות למופע.
    • אי אפשר לשנות את סוג הקישוריות של המופע.
    • אי אפשר להשתמש בפקודה gcloud sql connect, ב-Cloud Shell, ב-Cloud Build, ב-Database Migration Service או ב-Datastream כדי להתחבר למכונות Cloud SQL עם Private Service Connect מופעל.

    • כשבודקים את הקישוריות למכונת Cloud SQL עם Private Service Connect מופעל, אי אפשר להגדיר את הפריטים הבאים:

      • כתובת ה-IP הפנימית או שם ה-DNS של המופע כיעד ישירות
      • המופע כמקור
      • כתובת ה-IP של נקודת הקצה של Private Service Connect כמקור
    • אין תמיכה בהוספה לרשימת ההיתרים על סמך כתובת IP באמצעות רשתות מורשות.

    • אין תמיכה בהוספה לרשימת ההיתרים על בסיס כתובת IP שנאכפת על ידי בקרת גישה מבוססת-הקשר.

    • לא ניתן להשתמש ב-Managed Service for Microsoft Active Directory (שנקרא גם Managed Microsoft AD) במופעי Cloud SQL שמופעל בהם Private Service Connect.

    פתרון בעיות

    בקטע הזה מפורט מידע על בעיות שקשורות למופעי Cloud SQL עם Private Service Connect מופעל, וגם שלבים לפתרון הבעיות.

    שגיאה פתרון בעיות
    הקובץ המצורף עם השירות של המופע לא מקבל את נקודת הקצה של Private Service Connect.
    1. בודקים את הסטטוס של נקודת הקצה.

      gcloud

      כדי לבדוק את הסטטוס, משתמשים בפקודה
      gcloud compute forwarding-rules describe.

      gcloud compute forwarding-rules describe ENDPOINT_NAME \
      --project=PROJECT_ID \
      --region=REGION_NAME \
      | grep pscConnectionStatus

      מחליפים את הפרטים הבאים:

      • ENDPOINT_NAME: השם של נקודת הקצה
      • PROJECT_ID: המזהה או מספר הפרויקט של Google Cloud הפרויקט שמכיל את נקודת הקצה
      • REGION_NAME: שם האזור של נקודת הקצה

      REST

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

      • PROJECT_ID: המזהה או מספר הפרויקט של Google Cloud הפרויקט שמכיל את נקודת הקצה של Private Service Connect
      • REGION_NAME: שם האזור
      • ENDPOINT_NAME: השם של נקודת הקצה

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

      GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/ENDPOINT_NAME

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

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

      {
        "kind": "compute#forwardingRule",
        "id": "ENDPOINT_ID",
        "creationTimestamp": "2024-05-09T12:03:21.383-07:00",
        "name": "ENDPOINT_NAME",
        "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME",
        "IPAddress": "IP_ADDRESS",
        "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME",
        "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/ENDPOINT_NAME",
        "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/default",
        "serviceDirectoryRegistrations": [
          {
            "namespace": "goog-psc-default"
          }
        ],
        "networkTier": "PREMIUM",
        "labelFingerprint": "LABEL_FINGERPRINT_ID",
        "fingerprint": "FINGERPRINT_ID",
        "pscConnectionId": "CONNECTION_ID",
        "pscConnectionStatus": "ACCEPTED",
        "allowPscGlobalAccess": true
      }
      
    2. מוודאים שהסטטוס של נקודת הקצה הוא ACCEPTED. אם הסטטוס הוא PENDING, המשמעות היא שהמופע לא מאפשר את פרויקט Google Cloud שמכיל את נקודת הקצה. מוודאים שהפרויקט ברשת שבו נוצרה נקודת הקצה מותר. מידע נוסף זמין במאמר עריכת מופע עם Private Service Connect מופעל.
    ERROR: (gcloud.compute.forwarding-rules.create) Could not fetch resource: The resource 'projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME' was not found הודעת השגיאה הזו יכולה להופיע כשמזמינים כתובת IP פנימית סטטית לנקודת הקצה של Private Service Connect. מוודאים שרשת המשנה שצוינה קיימת בפרויקט שצוין ב-URI. אם רוצים ליצור נקודת קצה בפרויקט שירות אבל להשתמש ברשת משנה מרשת VPC משותפת, צריך לציין את רשת המשנה באמצעות ה-URI שלה ולהשתמש במזהה הפרויקט של פרויקט המארח ב-URI. מידע נוסף זמין במאמר יצירת נקודת הקצה באופן ידני.
    ERROR: (gcloud.compute.forwarding-rules.create) Could not fetch resource: - The resource 'projects/PROJECT_ID/global/networks/NETWORK_NAME' was not found הודעת השגיאה הזו יכולה להופיע כשיוצרים נקודת קצה (endpoint) של Private Service Connect באופן ידני. מוודאים שהרשת שצוינה קיימת בפרויקט שצוין ב-URI. אם רוצים ליצור נקודת קצה בפרויקט שירות אבל להשתמש ברשת VPC משותפת, צריך לציין את הרשת באמצעות ה-URI שלה ולהשתמש במזהה הפרויקט של פרויקט המארח ב-URI. מידע נוסף זמין במאמר יצירת נקודת הקצה באופן ידני.
    Invalid consumer network status for PSC auto connection.

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

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

    No permission to create a service connection policy.

    אין לכם את ההרשאות הדרושות כדי ליצור מדיניות לחיבור שירותים. כדי ליצור מדיניות של חיבור שירות, צריך את התפקיד Compute Network Admin IAM. מידע נוסף זמין במאמר בנושא תפקידים והרשאות.

    לא ניתן לקובץ המצורף עם הרשת לקבל חיבורים מהממשק של Private Service Connect כשמשתמשים בקישוריות יוצאת של Private Service Connect.

    אם הרשת החיצונית לא יכולה לקבל חיבורים מממשק Private Service Connect, יכול להיות שמדיניות החיבורים בקובץ המצורף של הרשת לא מוגדרת בצורה נכונה.

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

    כדי לאמת את החיבורים שאושרו, מריצים את הפקודה הבאה בקובץ המצורף לרשת:

          gcloud compute network-attachments describe default
          --region=REGION_ID
    אם הממשק של Private Service Connect לא מופיע ברשימה המאושרת, צריך לעדכן את הקובץ המצורף עם הרשת. מידע נוסף זמין במאמר בנושא ניהול קבצים מצורפים לרשת.

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