בדף הזה מוסבר איך משתמשים וחשבונות שירות יכולים להתחבר למסדי נתונים של Cloud SQL באמצעות אימות מסד נתונים של Cloud SQL IAM. מידע נוסף זמין במאמר אימות IAM.
לפני שמתחילים
- מגדירים את המופע לשימוש באימות מסד נתונים של IAM. מידע נוסף זמין במאמר הגדרת מופעים חדשים לאימות מסד נתונים באמצעות IAM.
- מוסיפים משתמש IAM, חשבון שירות או קבוצה למסד הנתונים. מידע נוסף זמין במאמרים בנושא הוספת משתמש IAM או חשבון שירות למסד הנתונים והוספת קבוצה למסד הנתונים.
- מוסיפים את התפקיד
roles/cloudsql.instanceUserב-IAM למשתמש, לחשבון השירות או לקבוצה ב-IAM. זהו תפקיד מוגדר מראש שמכיל את ההרשאה הנדרשת ל-IAM ב-Cloud SQLcloudsql.instances.login. אתם צריכים את ההרשאה הזו כדי להתחבר למופע של מסד נתונים באמצעות אימות מסד נתונים של IAM. מידע נוסף זמין במאמר בנושא תפקידים והרשאות. - אם אתם משתמשים ב-Cloud SQL Auth Proxy, אתם צריכים להוסיף את תפקיד ה-IAM
roles/cloudsql.clientלמשתמש, לחשבון השירות או לקבוצה שלכם ב-IAM. זהו תפקיד מוגדר מראש שמכיל את הרשאת ה-IAMcloudsql.instances.connectהנדרשת ל-Cloud SQL. צריך את ההרשאה הזו כדי להתחבר למכונת מסד נתונים באמצעות שרת proxy ל-Cloud SQL Auth. מידע נוסף זמין במאמר בנושא תפקידים והרשאות. - כשמוסיפים משתמש IAM למסד נתונים, כברירת מחדל למשתמש החדש במסד הנתונים אין הרשאות למסד הנתונים. כדי לתת למשתמש את ההרשאות הנדרשות במסד הנתונים, אפשר להקצות תפקידים במסד הנתונים כשמוסיפים את חשבון ה-IAM למופע, להקצות תפקידים במסד הנתונים כשמעדכנים את חשבון ה-IAM במופע, או להשתמש בפקודה
GRANTכדי לתת הרשאות לחשבון IAM ספציפי או לקבוצת IAM. - אם משתמשים באימות קבוצות IAM, משתמש ה-IAM או חשבון השירות צריכים להיות חברים בקבוצה שהוענק לה תפקיד IAM או הרשאות להתחבר למופע Cloud SQL. מערכת Cloud SQL יוצרת חשבון אחרי שהמשתמש או חשבון השירות מתחברים למופע בפעם הראשונה.
כניסה באמצעות אימות אוטומטי של מסד נתונים של IAM
אתם יכולים להגדיר מחבר Cloud SQL שיטפל אוטומטית באימות למופע Cloud SQL בשם משתמש או אפליקציה. המחברים כוללים את שרת ה-proxy ל-Cloud SQL Auth, את מחבר 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. אם אתם משתמשים ביציאה שונה מיציאת ברירת המחדל של MySQL, אתם צריכים לציין את מספר היציאה. למידע נוסף על איתור המחרוזת הזו ויצירתה, ראו אפשרויות לאימות של Cloud SQL Auth Proxy../cloud-sql-proxy --auto-iam-authn INSTANCE_CONNECTION_NAME
מידע נוסף על הפעלת ה-proxy זמין במאמר הפעלת Cloud SQL Auth Proxy.
כשמוכנים להתחבר למכונה באמצעות שרת proxy ל-Cloud SQL Auth, מתחברים באמצעות לקוח
mysql. מחליפים את מה שכתוב בשדות הבאים:- HOSTNAME: כתובת ה-IP שבה נעשה שימוש בשרת ה-proxy של Cloud SQL Auth. כברירת מחדל, שרת proxy ל-Cloud SQL Auth משתמש בכתובת המארח המקומי
127.0.0.1, אבל אפשר להקצות כתובת IP אחרת כשמפעילים את שרת proxy ל-Cloud SQL Auth. - USERNAME: בחשבון משתמש ב-IAM, זהו כתובת האימייל של המשתמש, בלי הסמל
@או שם הדומיין. לדוגמה, כדי להזין אתtest-user@example.com, מקלידיםtest-user. בחשבון שירות, זהו כתובת האימייל של חשבון השירות ללא הסיומת@project-id.iam.gserviceaccount.com. - PORT_NUMBER: אופציונלי. אם ציינתם יציאה אחרת במחרוזת החיבור של המופע, צריך לציין את מספר היציאה הזה.
מריצים את הפקודה הבאה:
mysql --host=HOSTNAME \ --user=USERNAME \ --port=PORT_NUMBER
מידע נוסף על חיבור לשרת proxy ל-Cloud SQL Auth זמין במאמר בנושא חיבור באמצעות לקוח mysql.
- HOSTNAME: כתובת ה-IP שבה נעשה שימוש בשרת ה-proxy של Cloud SQL Auth. כברירת מחדל, שרת proxy ל-Cloud SQL Auth משתמש בכתובת המארח המקומי
Go
Java JDBC
Java R2DBC
Python
כניסה באמצעות אימות ידני של מסד נתונים של IAM
משתמש או אפליקציה יכולים לבצע אימות למסד הנתונים באמצעות IAM על ידי בקשה ידנית של אסימון גישה מ- Google Cloud והצגתו למסד הנתונים. באמצעות ה-CLI של gcloud, אפשר לבקש במפורש אסימון OAuth 2.0 עם היקף Cloud SQL Admin API שמשמש לכניסה למסד הנתונים. כשמתחברים כמשתמש במסד נתונים עם אימות ידני של מסד נתונים ב-IAM, משתמשים בכתובת האימייל כשם המשתמש ובאסימון הגישה כסיסמה. אפשר להשתמש בשיטה הזו עם חיבור ישיר למסד הנתונים או עם מחבר Cloud SQL.
בשלב הזה, אתם מבצעים אימות ל- Google Cloud, מבקשים אסימון גישה ואז מתחברים למסד הנתונים על ידי העברת האסימון כסיסמה למשתמש במסד הנתונים של IAM. כדי להתחבר בלי שרת proxy ל-Cloud SQL Auth, צריך לבצע את השלבים הבאים.
בשלבים האלה, צריך:
- משתמשים באפשרות --enable-cleartext-plugin
mysql. - אם מתחברים למופע עם כתובת IP ציבורית, צריך לאשר גישה חיצונית למופע. מידע נוסף זמין במאמר בנושא הרשאת כתובת ה-IP של המחשב לכתובת IP ציבורית.
- אם אתם מתחברים למופע עם כתובת IP פרטית, מריצים את הפקודה בתוך רשת הענן הווירטואלי הפרטי (VPC).
- משתמשים בפקודה
gcloud sql generate-login-tokenכדי ליצור את אסימון האימות.
כדי להיכנס באמצעות אימות ידני של מסד נתונים של IAM:
gcloud
מבצעים אימות ב- Google Cloud.
משתמש
אימות ל-IAM באמצעות
gcloud auth login. מידע נוסף זמין במאמר בנושא הרשאה באמצעות חשבון משתמש.חשבון שירות
אימות ל-IAM באמצעות
gcloud auth activate-service-account. מידע נוסף זמין במאמר מתן הרשאה באמצעות חשבון שירות.מבקשים את אסימון הגישה ונכנסים באמצעות לקוח.
מחליפים את מה שכתוב בשדות הבאים:
- HOSTNAME: כתובת ה-IP של המופע, כתובת ה-IP הציבורית או כתובת ה-IP הפרטית.
- USERNAME: בחשבון משתמש ב-IAM, זהו כתובת האימייל של המשתמש, ללא הסמל
@או שם הדומיין. לדוגמה, כדי להזין אתtest-user@example.com, מקלידיםtest-user. בחשבון שירות, זהו כתובת האימייל של חשבון השירות ללא הסיומת@project-id.iam.gserviceaccount.com.
export MYSQL_PWD=`gcloud sql generate-login-token` \ mysql --enable-cleartext-plugin \ --ssl-mode=REQUIRED \ --host=HOSTNAME \ --user=USERNAME
אם
ssl_modeבמכונת Cloud SQL מוגדר כ-TRUSTED_CLIENT_CERTIFICATE_REQUIRED, צריך לכלול אישור לקוח ומפתח לקוח כשמתחברים. בנוסף, כדי לאפשר ללקוח לאמת את זהות השרת לצורך אימות הדדי, צריך לציין את אישור השרתserver-ca.pem. לדוגמה:export MYSQL_PWD=`gcloud sql generate-login-token` \ mysql --enable-cleartext-plugin \ --ssl-mode=VERIFY_CA \ --ssl-ca=server-ca.pem \ --ssl-cert=client-cert.pem \ --ssl-key=client-key.pem \ --host=HOSTNAME \ --user=USERNAME
מידע על יצירת אישור ומפתח לקוח מופיע במאמר בנושא אישורי לקוח.
המאמרים הבאים
- מידע נוסף על אימות מסד נתונים של IAM
- איך מפעילים את האפשרות לראות את פרטי הכניסה ביומני הביקורת
- איך יוצרים משתמשים וחשבונות שירות שמשתמשים באימות מסד נתונים של Cloud SQL IAM
- איך מוסיפים קשירת מדיניות IAM למשתמש או לחשבון שירות
- איך מנהלים משתמשים וחשבונות שירות לאימות מסד נתונים של IAM