ניהול אימות IAM

בדף הזה מוסבר איך להכין את מכונת AlloyDB ל-PostgreSQL כדי לאפשר אימות של מסד הנתונים באמצעות ניהול זהויות והרשאות גישה (IAM).

אימות IAM משלים את אימות מסד הנתונים באמצעות משתמשי PostgreSQL רגילים, שכל אשכול AlloyDB תומך בהם. אם מפעילים אימות IAM באשכול, אפשר להשתמש בתפקידי משתמש ב-IAM או ב-PostgreSQL כדי לבצע אימות באשכול הזה.

כברירת מחדל, אימות IAM לא מופעל במופע AlloyDB. כדי להפעיל אימות IAM, צריך לבצע את השלבים הבאים:

אפשר לחזור על השלבים האלה בכל פעם שצריך להוסיף עוד משתמשי IAM לאשכול AlloyDB.

הפעלה או השבתה של אימות IAM

כדי להפעיל אימות IAM במכונה, מגדירים את הדגל alloydb.iam_authentication במכונה הזו לערך on.

כדי להשבית את האימות ב-IAM במופע, צריך להגדיר את alloydb.iam_authentication בחזרה לערך ברירת המחדל שלו, off.

מידע נוסף על הגדרת דגלים במופעי AlloyDB זמין במאמר הגדרת דגלים של מסד נתונים במופע.

הענקת גישה למשתמש IAM או לחשבון שירות למופע

הענקת גישת IAM למשתמש חדש במסד נתונים היא תהליך שכולל שני שלבים:

  1. מעדכנים את הגדרות ה-IAM בפרויקט כדי להעניק גישה למסד הנתונים של AlloyDB למשתמש או לחשבון השירות המתאימים ב-IAM.

  2. יוצרים משתמש חדש במסד הנתונים באשכול ומגדירים את שם המשתמש ככתובת האימייל של משתמש IAM או של חשבון השירות.

אפשר לחזור על שלב 2 כדי לתת לחשבון IAM גישה לאשכולות אחרים בפרויקט.

עדכון חשבון IAM עם התפקיד המתאים

אתם יכולים לתת למשתמשים ב-IAM או לחשבונות שירות את היכולת לבצע אימות מול מופעי AlloyDB על ידי הקצאת התפקידים הבאים ב-IAM:

  • alloydb.databaseUser: מאפשר למשתמש להתחבר למופע AlloyDB.
  • serviceusage.serviceUsageConsumer: מספק למשתמש גישה ל-API שבודק הרשאות.

כדי לעשות זאת, פועלים לפי ההוראות במאמר הענקת גישה למשתמשים אחרים. בשלב שבו בוחרים תפקיד להעניק למשתמש ה-IAM, בוחרים באפשרות alloydb.databaseUser.

הוספת חשבון משתמש או חשבון שירות ב-IAM לאשכול

המסוף

  1. עוברים לדף Clusters.

    מעבר אל Clusters

  2. לוחצים על שם האשכול שרוצים להוסיף אליו משתמש.

  3. לוחצים על Users.

  4. לוחצים על הוספת חשבון משתמש.

  5. בוחרים באפשרות Cloud IAM.

  6. בשדה Principal, מזינים את חשבון המשתמש ב-IAM.

    אם מדובר בחשבון משתמש IAM, צריך לספק את כתובת האימייל המלאה של חשבון המשתמש. לדוגמה, kai@altostrat.com.

    בחשבון שירות של IAM, צריך לספק את הכתובת של חשבון השירות בלי הסיומת .gserviceaccount.com. לדוגמה, כדי לציין את חשבון השירות my-service@my-project.iam.gserviceaccount.com, צריך להשתמש בערך my-service@my-project.iam.

  7. כדי להקצות למשתמש תפקידים אחרים מלבד תפקיד ברירת המחדל alloydbsuperuser:

    1. מזינים את שם התפקיד בתפקידים.
    2. כדי להוסיף את התפקיד, מקישים על Enter או על Tab.
    3. לוחצים על x לצד כל תפקיד שרוצים להסיר מהמשתמש.

      מידע נוסף מופיע במאמר בנושא תפקידים מוגדרים מראש.

  8. לוחצים על הוספה.

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 או חשבון שירות מאשכול

המסוף

  1. עוברים לדף Clusters.

    מעבר אל Clusters

  2. לוחצים על שם האשכול שממנו רוצים להסיר את המשתמש.

  3. לוחצים על Users.

  4. בשורה שמייצגת את המשתמש שרוצים להסיר, לוחצים על פתיחת פעולות עבור המשתמש הזה.

  5. בוחרים באפשרות הסרה.

  6. בתיבת הדו-שיח 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.

המאמרים הבאים