בדף הזה מוסבר איך משתמשים וחשבונות שירות יכולים להתחבר למסדי נתונים של Cloud SQL באמצעות אימות של מסד נתונים ב-Cloud SQL IAM. מידע נוסף מופיע במאמר אימות IAM.
לפני שמתחילים
- מגדירים את המכונה כך שתשתמש באימות של מסד הנתונים ב-IAM. מידע נוסף זמין במאמר הגדרת מכונות חדשות לאימות מסד נתונים של IAM.
- מוסיפים למסד הנתונים משתמש, חשבון שירות או קבוצה ב-IAM. למידע נוסף, קראו את המאמרים הוספת משתמש או חשבון שירות של IAM למסד הנתונים והוספת קבוצה למסד הנתונים.
- מוסיפים את התפקיד
roles/cloudsql.instanceUserב-IAM למשתמש, לחשבון השירות או לקבוצה ב-IAM. זהו תפקיד מוגדר מראש שמכיל את ההרשאה הנדרשת ל-Cloud SQL IAM,cloudsql.instances.login. אתם צריכים את ההרשאה הזו כדי להתחבר למכונה של מסד נתונים באמצעות אימות של מסד נתונים ב-IAM. מידע נוסף זמין במאמר תפקידים והרשאות. - אם אתם משתמשים ב-Cloud SQL Auth Proxy, הוסיפו את התפקיד
roles/cloudsql.clientב-IAM למשתמש, לחשבון השירות או לקבוצה ב-IAM. זהו תפקיד מוגדר מראש שכולל את ההרשאה הנדרשת ב-Cloud SQL IAM,cloudsql.instances.connect. ההרשאה הזו נדרשת כדי להתחבר למכונה של מסד נתונים באמצעות Cloud SQL Auth Proxy. מידע נוסף זמין במאמרים הבאים: - כשמוסיפים משתמש IAM למסד נתונים, כברירת מחדל למשתמש החדש במסד הנתונים אין הרשאות לאף מסד נתונים. כדי לתת למשתמש את ההרשאות הנדרשות למסד הנתונים, אפשר להקצות תפקידים במסד הנתונים כשמוסיפים את חשבון ה-IAM למכונה, להקצות תפקידים במסד הנתונים כשמעדכנים את חשבון ה-IAM במכונה, או להשתמש בפקודה
GRANTכדי לתת הרשאות לחשבון IAM ספציפי או לקבוצת IAM. - אם אתם משתמשים באימות של קבוצת IAM, המשתמש או חשבון השירות ב-IAM צריכים להיות חברים בקבוצה שקיבלה תפקיד או הרשאות ב-IAM כדי להתחבר למכונה של Cloud SQL. Cloud SQL יוצר חשבון אחרי שהמשתמש או חשבון השירות מתחברים למכונה בפעם הראשונה.
התחברות באמצעות אימות אוטומטי של מסד נתונים ב-IAM
אתם יכולים להגדיר מחבר ל-Cloud SQL שיטפל באופן אוטומטי באימות למכונה של Cloud SQL בשם משתמש או אפליקציה. המחברים כוללים את Cloud SQL Auth Proxy, מחבר Go, מחבר Java ומחבר Python, וכולם תומכים באימות אוטומטי של מסד נתונים ב-IAM. כשמשתמשים במחבר של Cloud SQL עם אימות אוטומטי של מסד נתונים ב-IAM, חשבון ה-IAM שבו משתמשים כדי להפעיל את המחבר חייב להיות אותו חשבון שמאמת את מסד הנתונים.
כדי להתחבר באמצעות אימות אוטומטי של מסד נתונים ב-IAM:
Cloud SQL Auth Proxy
מבצעים אימות ב- Cloud de Confiance by S3NS.
משתמש
אימות ב- Cloud de Confiance by S3NS באמצעות Application Default Credentials (ADC).
משתמשים בפקודה
gcloud auth application-default login. מידע נוסף זמין במאמר הגדרת Application Default Credentials.חשבון שירות
כדי לבצע אימות ב- Cloud de Confiance by S3NS באמצעות ADC עם חשבון שירות, אתם יכולים להתחזות לחשבון שירות או להשתמש במפתח לחשבון שירות. כדי להשתמש בהתחזות לחשבון שירות, מחליפים את SERVICE_ACCOUNT_EMAIL_ADDRESS ומריצים את הפקודה הבאה:
gcloud auth application-default login --impersonate-service-account SERVICE_ACCOUNT_EMAIL_ADDRESS
מידע נוסף זמין במאמר הגדרת Application Default Credentials.
מפעילים את Cloud SQL Auth Proxy עם הדגל
--auto-iam-authn.מחליפים את מה שכתוב בשדות הבאים:
- INSTANCE_CONNECTION_NAME: מחרוזת החיבור לזיהוי מכונה של Cloud SQL. אם אתם משתמשים ביציאה אחרת מיציאת ברירת המחדל של PostgreSQL, ציינו את מספר היציאה. למידע נוסף על איך למצוא וליצור את המחרוזת הזו, ראו אפשרויות לאימות של Cloud SQL Auth Proxy.
./cloud-sql-proxy --auto-iam-authn INSTANCE_CONNECTION_NAME
מידע נוסף על הפעלת שרת ה-proxy זמין במאמר הפעלת Cloud SQL Auth Proxy.
כשתהיו מוכנים להתחבר למכונה באמצעות Cloud SQL Auth Proxy, התחברו באמצעות הלקוח
psql.מחליפים את מה שכתוב בשדות הבאים:
- HOSTNAME: כתובת ה-IP שמשמשת את Cloud SQL Auth Proxy. כברירת מחדל, Cloud SQL Auth Proxy משתמש בכתובת המארח המקומי
127.0.0.1, אבל אפשר להקצות כתובת IP אחרת כשמפעילים את Cloud SQL Auth Proxy. - USERNAME: ב-IAM, שם המשתמש הוא כתובת האימייל המלאה של המשתמש. בחשבון שירות, זהו האימייל של חשבון השירות בלי סיומת אתר
.s3ns-system.iam.gserviceaccount.com. - PORT_NUMBER: אופציונלי. אם ציינתם יציאה אחרת במחרוזת החיבור של המכונה, צריך לציין את מספר היציאה הזו.
- DATABASE_NAME: השם של מסד הנתונים שאליו רוצים להתחבר.
מריצים את הפקודה הבאה:
psql -h HOSTNAME \ -U USERNAME \ --port PORT_NUMBER \ --dbname=DATABASE_NAME
למידע נוסף על התחברות ל-Cloud SQL Auth Proxy, קראו את המאמר התחברות באמצעות לקוח psql.
- HOSTNAME: כתובת ה-IP שמשמשת את Cloud SQL Auth Proxy. כברירת מחדל, Cloud SQL Auth Proxy משתמש בכתובת המארח המקומי
המשך
Java JDBC
Java R2DBC
Node.js
Python
התחברות באמצעות אימות ידני של מסד נתונים ב-IAM
משתמש או אפליקציה יכולים לבצע אימות למסד הנתונים באמצעות IAM, על ידי בקשה ידנית של אסימון גישה מ- Cloud de Confiance by S3NS והצגתו למסד הנתונים. באמצעות ה-CLI של gcloud, אתם יכולים לבקש באופן מפורש אסימון OAuth 2.0 עם היקף ההרשאות של Cloud SQL Admin API שמשמש להתחברות למסד הנתונים. כשאתם מתחברים כמשתמשים במסד הנתונים עם אימות ידני של IAM, אתם משתמשים בכתובת האימייל שלכם כשם המשתמש ובטוקן הגישה כסיסמה. אתם יכולים להשתמש בשיטה הזו עם חיבור ישיר למסד הנתונים או עם מחבר של Cloud SQL.
במהלך הזה, אתם מאמתים את Cloud de Confiance by S3NS, מבקשים אסימון גישה ואז מתחברים למסד הנתונים על ידי העברת האסימון כסיסמה למשתמש של מסד הנתונים ב-IAM. כדי להתחבר בלי Cloud SQL Auth Proxy, צריך לפעול לפי השלבים הבאים.
כדי לבצע את השלבים האלה, צריך:
gcloud sql generate-login-token כדי ליצור את אסימון האימות.כדי להתחבר באמצעות אימות ידני של מסד נתונים ב-IAM:
gcloud
מבצעים אימות ב- Cloud de Confiance by S3NS.
משתמש
מאמתים את IAM באמצעות
gcloud auth login. מידע נוסף זמין במאמר אימות ל-CLI של gcloud.חשבון שירות
מאמתים את IAM באמצעות
gcloud auth activate-service-account. למידע נוסף, קראו את המאמר אימות ל-CLI של gcloud.מבקשים את טוקן הגישה ומתחברים באמצעות לקוח.
מחליפים את מה שכתוב בשדות הבאים:
- HOSTNAME: כתובת ה-IP של המכונה, כתובת IP ציבורית או כתובת IP פרטית.
- USERNAME: ב-IAM, שם המשתמש הוא כתובת האימייל המלאה של המשתמש. בחשבון שירות, זהו האימייל של חשבון השירות בלי סיומת אתר
.s3ns-system.iam.gserviceaccount.com. - DATABASE_NAME: השם של מסד הנתונים שאליו רוצים להתחבר.
PGPASSWORD=`gcloud sql generate-login-token` \ psql "sslmode=require \ hostaddr=HOSTNAME \ user=USERNAME \ dbname=DATABASE_NAME" \ --no-password
אם הדגל
ssl_modeבמכונה של Cloud SQL מוגדר לערךTRUSTED_CLIENT_CERTIFICATE_REQUIRED, מומלץ להתחבר באמצעות אימות אוטומטי של מסד הנתונים ב-IAM כדי לאכוף את אימות הזהות של הלקוח.