בדף הזה מוסבר איך משתמשים וחשבונות שירות יכולים להתחבר למסדי נתונים של Cloud SQL באמצעות אימות מסד נתונים של Cloud SQL IAM. מידע נוסף זמין במאמר אימות IAM.
לפני שמתחילים
- מגדירים את המכונה לשימוש באימות מסד נתונים של IAM. מידע נוסף זמין במאמר הגדרת מופעים חדשים לאימות מסד נתונים באמצעות IAM.
- מוסיפים משתמש IAM, חשבון שירות או קבוצה למסד הנתונים. מידע נוסף זמין במאמרים הוספת משתמש IAM או חשבון שירות למסד הנתונים והוספת קבוצה למסד הנתונים.
- מוסיפים את תפקיד ה-IAM
roles/cloudsql.instanceUserלמשתמש IAM, לחשבון השירות או לקבוצה. זהו תפקיד מוגדר מראש שכולל את ההרשאהcloudsql.instances.loginב-IAM של Cloud SQL. ההרשאה הזו נדרשת כדי להתחבר למכונת מסד נתונים באמצעות אימות מסד נתונים ב-IAM. מידע נוסף זמין במאמר תפקידים והרשאות. - אם אתם משתמשים בשרת ה-proxy ל-Cloud SQL Auth, אתם צריכים להוסיף את תפקיד ה-IAM
roles/cloudsql.clientלמשתמש, לחשבון השירות או לקבוצה ב-IAM. זהו תפקיד מוגדר מראש שכולל את ההרשאהcloudsql.instances.connectהנדרשת ב-IAM ל-Cloud SQL. אתם צריכים את ההרשאה הזו כדי להתחבר למכונה של מסד נתונים באמצעות שרת ה-proxy ל-Cloud SQL Auth. מידע נוסף זמין במאמרים הבאים: - כשמוסיפים משתמש 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:
שרת proxy ל-Cloud SQL Auth
מבצעים אימות ב- Google Cloud.
משתמש
אימות ל- Google Cloud באמצעות Application Default Credentials (ADC).
משתמשים בפקודה
gcloud auth application-default login. מידע נוסף זמין במאמר בנושא הגדרה של Application Default Credentials.חשבון שירות
כדי לבצע אימות ל- Google Cloud באמצעות ADC עם חשבון שירות, אתם יכולים להתחזות לחשבון שירות או להשתמש במפתח של חשבון שירות. כדי להשתמש בהתחזות לחשבון שירות, מחליפים את SERVICE_ACCOUNT_EMAIL_ADDRESS ומריצים את הפקודה הבאה:
gcloud auth application-default login --impersonate-service-account SERVICE_ACCOUNT_EMAIL_ADDRESS
מידע נוסף זמין במאמר בנושא הגדרה של Application Default Credentials.
מפעילים את שרת ה-proxy ל-Cloud SQL Auth עם הדגל
--auto-iam-authn.מחליפים את מה שכתוב בשדות הבאים:
- INSTANCE_CONNECTION_NAME: מחרוזת החיבור לזיהוי מופע של Cloud SQL. אם משתמשים ביציאה שונה מיציאת ברירת המחדל של PostgreSQL, צריך לציין את מספר היציאה. למידע נוסף על איתור המחרוזת הזו ויצירתה, ראו אפשרויות לאימות של Cloud SQL Auth Proxy.
./cloud-sql-proxy --auto-iam-authn INSTANCE_CONNECTION_NAME
מידע נוסף על הפעלת ה-proxy זמין במאמר הפעלת שרת proxy ל-Cloud SQL Auth.
כשמוכנים להתחבר למכונה באמצעות שרת proxy ל-Cloud SQL Auth, מתחברים באמצעות לקוח
psql.מחליפים את מה שכתוב בשדות הבאים:
- HOSTNAME: כתובת ה-IP שבה נעשה שימוש על ידי שרת proxy ל-Cloud SQL Auth. כברירת מחדל, שרת proxy ל-Cloud SQL Auth משתמש בכתובת localhost
127.0.0.1, אבל אפשר להקצות כתובת IP אחרת כשמפעילים את שרת proxy ל-Cloud SQL Auth. - USERNAME: ב-IAM, שם המשתמש הוא כתובת האימייל המלאה של המשתמש. בחשבון שירות, זהו האימייל של חשבון השירות בלי הסיומת של הדומיין
.gserviceaccount.com. - PORT_NUMBER: אופציונלי. אם ציינתם יציאה אחרת במחרוזת החיבור של המופע, צריך לציין את מספר היציאה הזה.
- DATABASE_NAME: השם של מסד הנתונים שאליו רוצים להתחבר.
מריצים את הפקודה הבאה:
psql -h HOSTNAME \ -U USERNAME \ --port PORT_NUMBER \ --dbname=DATABASE_NAME
מידע נוסף על התחברות לשרת proxy ל-Cloud SQL Auth זמין במאמר בנושא התחברות באמצעות לקוח psql.
- HOSTNAME: כתובת ה-IP שבה נעשה שימוש על ידי שרת proxy ל-Cloud SQL Auth. כברירת מחדל, שרת proxy ל-Cloud SQL Auth משתמש בכתובת localhost
המשך
Java JDBC
Java R2DBC
Node.js
Python
כניסה באמצעות אימות ידני של מסד נתונים של IAM
משתמש או אפליקציה יכולים לבצע אימות למסד הנתונים באמצעות IAM על ידי בקשה ידנית של אסימון גישה מ- Google Cloud והצגתו למסד הנתונים. באמצעות ה-CLI של gcloud, אפשר לבקש במפורש אסימון OAuth 2.0 עם היקף Cloud SQL Admin API שמשמש לכניסה למסד הנתונים. כשמתחברים כמשתמש במסד נתונים עם אימות ידני של מסד נתונים באמצעות IAM, משתמשים בכתובת האימייל כשם המשתמש ובאסימון הגישה כסיסמה. אפשר להשתמש בשיטה הזו עם חיבור ישיר למסד הנתונים או עם Cloud SQL Connector.
בתהליך הזה, אתם מאמתים את הזהות שלכם ב- Google Cloud, מבקשים אסימון גישה ואז מתחברים למסד הנתונים על ידי העברת האסימון כסיסמה למשתמש מסד הנתונים של IAM. אפשר להשתמש בשלבים האלה כדי להתחבר בלי שרת proxy ל-Cloud SQL Auth.
בשלבים האלה, צריך:
gcloud sql generate-login-token כדי ליצור את אסימון האימות.כדי להיכנס באמצעות אימות ידני של מסד נתונים של IAM:
gcloud
מבצעים אימות ב- Google Cloud.
משתמש
מבצעים אימות ל-IAM באמצעות
gcloud auth login. מידע נוסף זמין במאמר אימות ל-CLI של gcloud.חשבון שירות
מבצעים אימות ל-IAM באמצעות
gcloud auth activate-service-account. למידע נוסף, ראו אימות ל-CLI של gcloud.מבקשים את אסימון הגישה ונכנסים באמצעות לקוח.
מחליפים את מה שכתוב בשדות הבאים:
- HOSTNAME: כתובת ה-IP של המופע, כתובת ה-IP הציבורית או כתובת ה-IP הפרטית.
- USERNAME: ב-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 כדי לאכוף אימות של זהות הלקוח.
המאמרים הבאים
- מידע נוסף על אימות מסד נתונים של IAM
- איך מפעילים את האפשרות לראות את פרטי הכניסה ביומני הביקורת
- איך יוצרים משתמשים וחשבונות שירות שמשתמשים באימות מסד נתונים של Cloud SQL IAM
- איך מנהלים משתמשים וחשבונות שירות לאימות מסד נתונים של IAM