המחברים של Cloud SQL הם ספריות שמספקות הצפנה והרשאה שמבוססת על ניהול זהויות והרשאות גישה (IAM) כשמתחברים למכונה של Cloud SQL. הם לא יכולים לספק נתיב רשת למופע Cloud SQL אם הוא לא קיים.
דרכים אחרות להתחבר למכונה של Cloud SQL כוללות שימוש בלקוח מסד נתונים או בשרת proxy ל-Cloud SQL Auth. מידע נוסף על חיבור למופע Cloud SQL זמין במאמר אפשרויות חיבור.
בדף הזה נסביר על מחברי Cloud SQL הבאים:
- מחבר Java ל-Cloud SQL
- המחבר של Cloud SQL Python (פתיחה ב-Colab)
- מחבר Go ל-Cloud SQL
- מחבר Node.js של Cloud SQL
יתרונות
השימוש במחבר Cloud SQL מספק את היתרונות הבאים:
- הרשאה ב-IAM: שימוש בהרשאות IAM כדי לקבוע למי או למה תהיה אפשרות להתחבר למופעי Cloud SQL.
- נוחות: אין צורך לנהל אישורי SSL, להגדיר כללי חומת אש או להפעיל רשתות מורשות.
- אימות מסד נתונים ב-IAM: תמיכה בתכונה אימות מסד נתונים אוטומטי ב-IAM של Cloud SQL.
לפני שמתחילים
- מפעילים את Cloud SQL Admin API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. - יצירת מכונה של Cloud SQL, כולל הגדרת משתמש ברירת המחדל.
מידע נוסף על יצירת מופעים זמין במאמר יצירת מופעים.
מידע נוסף על הגדרת משתמש ברירת המחדל זמין במאמר בנושא הגדרת הסיסמה לחשבון משתמש ברירת המחדל.
- מגדירים את התפקידים וההרשאות שנדרשים כדי להתחבר למכונה של Cloud SQL.
הגדרה
Java
Cloud SQL Java Connector היא ספרייה שמספקת הרשאה והצפנה מבוססות-IAM כשמתחברים למכונת Cloud SQL. הוא לא יכול לספק נתיב ברשת למופע Cloud SQL אם הוא לא קיים.
התקנה
הוראות ליצירה ולשימוש במנהלי התקנים עבור JDBC ו-R2DBC באמצעות מחבר Java של Cloud SQL זמינות בקישורים הבאים:
- JDBC: חיבור ל-Cloud SQL באמצעות JDBC.
- R2DBC: חיבור ל-Cloud SQL באמצעות R2DBC.
כדי לראות דוגמאות לשימוש בספרייה הזו בהקשר של אפליקציה, אפשר לעיין באפליקציות לדוגמה.
אמת
הספרייה הזו משתמשת בApplication Default Credentials כדי לאמת את החיבור לשרת Cloud SQL.
כדי להפעיל את פרטי הכניסה באופן מקומי, משתמשים בפקודה הבאה של gcloud:
gcloud auth application-default login
התחברות באמצעות Intellij
כדי לקשר את IntelliJ למופע Cloud SQL, צריך להוסיף את הספרייה כקובץ JAR עם תלות בקטע Additional Files בדף ההגדרות של מנהל ההתקן. לדוגמה, קובצי JAR גדולים מוכנים מראש זמינים בדף Cloud SQL Java Connector Releases למטרה הזו.
Python
המחבר של Cloud SQL Python הוא ספרייה שאפשר להשתמש בה לצד דרייבר של מסד נתונים כדי לאפשר למשתמשים עם הרשאות מספיקות להתחבר למסד נתונים של Cloud SQL בלי להוסיף כתובות IP לרשימת ההיתרים באופן ידני או לנהל אישורי SSL.
כדי לראות דוגמאות אינטראקטיביות לשימוש ב-Cloud SQL Python Connector, פותחים את המחברת Cloud SQL Python Connector.
הדרייברים ש-PostgreSQL תומך בהם הם pg8000 ו-asyncpg.
התקנה
כדי להתקין את הגרסה האחרונה של Cloud SQL Python Connector, משתמשים בפקודה pip install ומציינים את מנהל ההתקנים pg8000 או asyncpg למסד הנתונים:
pip install "cloud-sql-python-connector[pg8000]"
או
pip install "cloud-sql-python-connector[asyncpg]"
אמת
הספרייה הזו משתמשת בApplication Default Credentials כדי לאמת את החיבור לשרת Cloud SQL.
כדי להפעיל את פרטי הכניסה באופן מקומי, משתמשים בפקודה הבאה של gcloud:
gcloud auth application-default login
Go
מחבר Cloud SQL Go הוא מחבר Cloud SQL שנועד לשימוש בשפת Go. כדי לשפר את האבטחה, המחבר הזה משתמש בהצפנת TLS 1.3 חזקה שאומתה באופן ידני בין מחבר הלקוח לבין ה-proxy בצד השרת, ללא קשר לפרוטוקול של מסד הנתונים.
התקנה
אפשר להתקין את המאגר הזה באמצעות go get:
go get cloud.google.com/go/cloudsqlconn
Node.js
המחבר Node.js הוא ספרייה שנועדה לשימוש עם זמן הריצה של Node.js, ומאפשרת להתחבר בצורה מאובטחת למופע Cloud SQL.
התקנה
אפשר להתקין את הספרייה באמצעות npm install:
npm install @google-cloud/cloud-sql-connector
שימוש
Java
כדי לראות את קטע הקוד הזה בהקשר של אפליקציית אינטרנט, אפשר לעיין בקובץ ה-README ב-GitHub.
Python
הוראות מפורטות לשימוש בספרייה מופיעות במאמר How to use this Connector. אפשר לראות קוד לדוגמה של בדיקת חיבור ב-GitHub.
Go
הוראות מפורטות לשימוש בספרייה מופיעות במאמר בנושא שימוש. אפשר לראות קוד לדוגמה של בדיקת חיבור ב-GitHub.
Node.js
הוראות מפורטות לשימוש בספרייה מופיעות במאמר בנושא שימוש.
לאכוף
באמצעות אכיפת מחברים, אתם יכולים לאכוף שימוש רק בשרת proxy ל-Cloud SQL Auth או במחברים של Cloud SQL Language כדי להתחבר למכונות Cloud SQL. עם אכיפת מחבר, Cloud SQL דוחה חיבורים ישירים למסד הנתונים.
אם אתם משתמשים במכונה עם Private Service Connect, יש מגבלה. אם האכיפה של המחבר מופעלת במופע, אי אפשר ליצור רפליקות לקריאה עבור המופע. באופן דומה, אם למופע יש עותקים לקריאה, אי אפשר להפעיל את האכיפה של המחבר במופע.
gcloud
כדי לאכוף שימוש רק בשרת proxy ל-Cloud SQL Auth או במחברי שפות ל-Cloud SQL כדי להתחבר למכונה, משתמשים בפקודה gcloud sql instances patch:
gcloud sql instances patch INSTANCE_NAME \ --connector-enforcement=REQUIRED
מחליפים את INSTANCE_NAME בשם של מופע Cloud SQL.
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: המזהה או מספר הפרויקט של Cloud de Confiance הפרויקט שמכיל את המופע
- INSTANCE_NAME: השם של מכונת Cloud SQL
ה-method של ה-HTTP וכתובת ה-URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
תוכן בקשת JSON:
{
"kind": "sql#instance",
"name": INSTANCE_NAME,
"project": PROJECT_ID,
"settings": {
"connectorEnforcement": "REQUIRED",
"kind": "sql#settings"
}
}כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"operationType": "UPDATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_NAME",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
פתרון בעיות
גרסאות מנהלי ההתקנים
כדי למנוע בעיות תאימות, חשוב לוודא שאתם משתמשים בגרסה העדכנית ביותר של Cloud SQL Connectors ומנהל התקן מסד הנתונים. חלק מהגרסאות הישנות יותר של מנהלי ההתקנים לא נתמכות.
נתיבי המרות
המחברים של Cloud SQL מספקים הרשאה לחיבורים, אבל הם לא מספקים נתיבים חדשים לקישוריות. לדוגמה, כדי להתחבר למכונת Cloud SQL באמצעות כתובת IP פרטית, לאפליקציה שלכם כבר צריכה להיות גישה ל-VPC.
ניפוי באגים בבעיות בחיבור
לקבלת עזרה נוספת בפתרון בעיות בחיבור, אפשר לעיין בדפים פתרון בעיות וניפוי באגים בבעיות בחיבור.