בדף הזה מוסבר איך להכין את מכונת AlloyDB ל-PostgreSQL כדי לאפשר אימות של מסד הנתונים באמצעות ניהול זהויות והרשאות גישה (IAM).
אימות IAM משלים את אימות מסד הנתונים באמצעות משתמשי PostgreSQL רגילים, שכל אשכול AlloyDB תומך בהם. אם מפעילים אימות IAM באשכול, אפשר להשתמש בתפקידי משתמש ב-IAM או ב-PostgreSQL כדי לבצע אימות באשכול הזה.
כברירת מחדל, אימות IAM לא מופעל במופע AlloyDB. כדי להפעיל אימות IAM, צריך לבצע את השלבים הבאים:
מפעילים אימות IAM באופן ידני בכל מופע שמשתמש IAM או חשבונות שירות צריכים להתחבר אליו.
לכל משתמש IAM או חשבון שירות שצריך להיכנס בתור משתמש במסד נתונים, מבצעים את הפעולות הבאות:
באמצעות כלי האדמין של IAM, נותנים למשתמש או לחשבון השירות את התפקידים
alloydb.databaseUserו-serviceusage.serviceUsageConsumer.באמצעות Google Cloud CLI, יוצרים משתמש במסד הנתונים שתואם למשתמש או לחשבון השירות באשכול AlloyDB.
באמצעות חשבון של מנהל מסד נתונים, כמו
postgres, מעניקים למשתמש החדש במסד הנתונים הרשאות גישה לטבלאות המתאימות במסד הנתונים.
אפשר לחזור על השלבים האלה בכל פעם שצריך להוסיף עוד משתמשי IAM לאשכול AlloyDB.
הפעלה או השבתה של אימות IAM
כדי להפעיל אימות IAM במכונה, מגדירים את הדגל alloydb.iam_authentication במכונה הזו לערך on.
כדי להשבית את האימות ב-IAM במופע, צריך להגדיר את alloydb.iam_authentication בחזרה לערך ברירת המחדל שלו, off.
מידע נוסף על הגדרת דגלים במופעי AlloyDB זמין במאמר הגדרת דגלים של מסד נתונים במופע.
הענקת גישה למשתמש IAM או לחשבון שירות למופע
הענקת גישת IAM למשתמש חדש במסד נתונים היא תהליך שכולל שני שלבים:
מעדכנים את הגדרות ה-IAM בפרויקט כדי להעניק גישה למסד הנתונים של AlloyDB למשתמש או לחשבון השירות המתאימים ב-IAM.
יוצרים משתמש חדש במסד הנתונים באשכול ומגדירים את שם המשתמש ככתובת האימייל של משתמש IAM או של חשבון השירות.
אפשר לחזור על שלב 2 כדי לתת לחשבון IAM גישה לאשכולות אחרים בפרויקט.
עדכון חשבון IAM עם התפקיד המתאים
אתם יכולים לתת למשתמשים ב-IAM או לחשבונות שירות את היכולת לבצע אימות מול מופעי AlloyDB על ידי הקצאת התפקידים הבאים ב-IAM:
-
alloydb.databaseUser: מאפשר למשתמש להתחבר למופע AlloyDB. -
serviceusage.serviceUsageConsumer: מספק למשתמש גישה ל-API שבודק הרשאות.
כדי לעשות זאת, פועלים לפי ההוראות במאמר הענקת גישה למשתמשים אחרים. בשלב שבו בוחרים תפקיד להעניק למשתמש ה-IAM, בוחרים באפשרות alloydb.databaseUser.
הוספת חשבון משתמש או חשבון שירות ב-IAM לאשכול
המסוף
עוברים לדף Clusters.
לוחצים על שם האשכול שרוצים להוסיף אליו משתמש.
לוחצים על Users.
לוחצים על הוספת חשבון משתמש.
בוחרים באפשרות Cloud IAM.
בשדה Principal, מזינים את חשבון המשתמש ב-IAM.
אם מדובר בחשבון משתמש IAM, צריך לספק את כתובת האימייל המלאה של חשבון המשתמש. לדוגמה,
kai@altostrat.com.בחשבון שירות של IAM, צריך לספק את הכתובת של חשבון השירות בלי הסיומת
.gserviceaccount.com. לדוגמה, כדי לציין את חשבון השירותmy-service@my-project.iam.gserviceaccount.com, צריך להשתמש בערךmy-service@my-project.iam.כדי להקצות למשתמש תפקידים אחרים מלבד תפקיד ברירת המחדל
alloydbsuperuser:- מזינים את שם התפקיד בתפקידים.
- כדי להוסיף את התפקיד, מקישים על Enter או על Tab.
לוחצים על x לצד כל תפקיד שרוצים להסיר מהמשתמש.
מידע נוסף מופיע במאמר בנושא תפקידים מוגדרים מראש.
לוחצים על הוספה.
gcloud
כדי ליצור משתמש במסד נתוני PostgreSQL על סמך משתמש IAM או חשבון שירות, משתמשים בפקודה gcloud alloydb users create.
gcloud alloydb users create USERNAME \
--cluster=CLUSTER \
--region=REGION \
--type=IAM_BASEDמחליפים את המשתנים הבאים:
USERNAME: מזהה של משתמש IAM שרוצים להוסיף כמשתמש חדש במסד הנתונים.אם מדובר בחשבון משתמש IAM, צריך לספק את כתובת האימייל המלאה של חשבון המשתמש. לדוגמה,
kai@altostrat.com.בחשבון שירות של IAM, צריך לספק את הכתובת של חשבון השירות בלי הסיומת
.gserviceaccount.com. לדוגמה, כדי לציין את חשבון השירותmy-service@my-project.iam.gserviceaccount.com, צריך להשתמש בערךmy-service@my-project.iam.
CLUSTER: המזהה של האשכול שבו רוצים ליצור את חשבון המשתמש הזה במסד הנתונים.
REGION: המזהה של האזור שבו נמצא האשכול. לדוגמה,us-central1.
הענקת הרשאות מתאימות למסד הנתונים למשתמשי IAM
כשמוסיפים משתמש IAM למופע של מסד נתונים, למשתמש החדש לא מוקצות הרשאות במסדי נתונים כלשהם כברירת מחדל.
כשמשתמש או חשבון שירות מתחברים למסד נתונים, הם יכולים להריץ שאילתות על כל אובייקט במסד הנתונים שהגישה אליו הוענקה ל-PUBLIC.
אם הם צריכים גישה נוספת, אפשר להעניק להם הרשאות נוספות באמצעות ההצהרה GRANT PostgreSQL.
GRANT SELECT ON TABLE_NAME TO "USERNAME";
מחליפים את המשתנים הבאים:
USERNAME: כתובת האימייל של המשתמש. חובה להוסיף מרכאות כפולות מסביב לכתובת.
TABLE_NAME: שם הטבלה שרוצים לתת למשתמש גישה אליה.
הסרה של משתמש IAM או חשבון שירות מאשכול
המסוף
עוברים לדף Clusters.
לוחצים על שם האשכול שממנו רוצים להסיר את המשתמש.
לוחצים על Users.
בשורה שמייצגת את המשתמש שרוצים להסיר, לוחצים על פתיחת פעולות עבור המשתמש הזה.
בוחרים באפשרות הסרה.
בתיבת הדו-שיח Remove user account? (הסרת חשבון משתמש?), לוחצים על Remove (הסרה).
gcloud
משתמשים בפקודה gcloud alloydb users delete.
gcloud alloydb users delete USERNAME \
--cluster=CLUSTER \
--region=REGIONמחליפים את מה שכתוב בשדות הבאים:
USERNAME: המזהה של משתמש IAM שרוצים להסיר מהאשכול.אם מדובר בחשבון משתמש IAM, צריך לספק את כתובת האימייל המלאה של חשבון המשתמש. לדוגמה,
kai@altostrat.com.בחשבון שירות של IAM, צריך לספק את הכתובת של חשבון השירות בלי הסיומת
.gserviceaccount.com. לדוגמה, כדי לציין את חשבון השירותmy-service@my-project.iam.gserviceaccount.com, צריך להשתמש בערךmy-service@my-project.iam.
CLUSTER: המזהה של האשכול שממנו רוצים להסיר את המשתמש.
REGION: המזהה של האזור שבו נמצא האשכול. לדוגמה,us-central1.