המחברים של Cloud SQL הם ספריות שמספקות הצפנה והרשאה שמבוססת על ניהול זהויות והרשאות גישה (IAM) כשמתחברים למכונה של Cloud SQL. הם לא יכולים לספק נתיב רשת למופע Cloud SQL אם הוא לא קיים.
דרכים אחרות להתחבר למכונה של Cloud SQL כוללות שימוש בלקוח מסד נתונים או בשרת proxy ל-Cloud SQL Auth. מידע נוסף על חיבור למופע Cloud SQL זמין בדף אפשרויות חיבור.
בדף הזה נסביר על מחברי Cloud SQL הבאים:
- Cloud SQL Java Connector
- המחבר של Cloud SQL Python (פתיחה ב-Colab)
- מחבר Go ל-Cloud SQL
- Cloud SQL Node.js Connector
יתרונות
שימוש ב-Cloud SQL Connector מספק את היתרונות הבאים:
- הרשאה ב-IAM: משתמשים בהרשאות IAM כדי לקבוע למי או למה תהיה אפשרות להתחבר למופעי Cloud SQL.
- נוחות: אין צורך לנהל אישורי SSL, להגדיר כללי חומת אש או להפעיל רשתות מורשות.
לפני שמתחילים
- מפעילים את Cloud SQL Admin API.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידים - יצירת מכונה של Cloud SQL, כולל הגדרת משתמש ברירת המחדל.
מידע נוסף על יצירת מופעים זמין במאמר יצירת מופעים.
מידע נוסף על הגדרת משתמש ברירת המחדל זמין במאמר בנושא הגדרת הסיסמה לחשבון משתמש ברירת המחדל.
- מגדירים את התפקידים וההרשאות שנדרשים כדי להתחבר למופע Cloud SQL.
הגדרה
Java
Cloud SQL Java Connector היא ספרייה שמספקת הרשאה והצפנה מבוססות-IAM כשמתחברים למכונת Cloud SQL. הוא לא יכול לספק נתיב ברשת למופע Cloud SQL אם הוא לא קיים.
התקנה
הוראות ליצירה ולשימוש במנהלי התקנים ל-JDBC ול-R2DBC באמצעות Cloud SQL Java Connector זמינות בקישורים הבאים:
- 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.
הדרייבר שנתמך על ידי SQL Server הוא pytds.
התקנה
כדי להתקין את הגרסה האחרונה של Cloud SQL Python Connector, משתמשים בפקודה pip install ומציינים את מנהל ההתקן pytds של מסד הנתונים:
pip install "cloud-sql-python-connector[pytds]"
אמת
הספרייה הזו משתמשת ב-Application Default Credentials כדי לאמת את החיבור לשרת Cloud SQL.
כדי להפעיל את פרטי הכניסה באופן מקומי, משתמשים בפקודה הבאה של gcloud:
gcloud auth application-default login
המשך
המחבר Cloud SQL Go הוא מחבר Cloud SQL שמיועד לשימוש בשפת Go. כדי לשפר את האבטחה, המחבר הזה משתמש בהצפנת TLS 1.3 חזקה ומאומתת ידנית בין מחבר הלקוח לבין ה-proxy בצד השרת, ללא קשר לפרוטוקול של מסד הנתונים.
התקנה
אפשר להתקין את המאגר הזה באמצעות go get:
go get cloud.google.com/go/cloudsqlconn
Node.js
Node.js Connector היא ספרייה שנועדה לשימוש עם סביבת זמן הריצה של Node.js, ומאפשרת להתחבר בצורה מאובטחת למופע Cloud SQL.
התקנה
אפשר להתקין את הספרייה באמצעות npm install:
npm install @google-cloud/cloud-sql-connector
שימוש
Java
כדי לראות את קטע הקוד הזה בהקשר של אפליקציית אינטרנט, אפשר לעיין בקובץ ה-README ב-GitHub.
Python
הוראות מפורטות לשימוש בספרייה מופיעות במאמר איך משתמשים במחבר הזה. אפשר לראות קוד לדוגמה של בדיקת חיבור ב-GitHub.
המשך
הוראות מפורטות לשימוש בספרייה מופיעות במאמר בנושא שימוש. אפשר לראות קוד לדוגמה של בדיקת חיבור ב-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: המזהה או מספר הפרויקט של פרויקט Google Cloud שמכיל את המופע
- 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.
ניפוי באגים בבעיות בחיבור
לקבלת עזרה נוספת בפתרון בעיות בחיבור, אפשר לעיין בדפים פתרון בעיות וניפוי באגים בבעיות בחיבור.
המאמרים הבאים
- אפשר לעיין בדף הבית של Cloud SQL Java Connector ב-GitHub.
- אפשר לעיין בדף הבית של Cloud SQL Python Connector ב-GitHub.
- מידע נוסף על שרת proxy ל-Cloud SQL Auth
- מידע נוסף על IAM
- מידע על אפשרויות התמיכה