אימות של מסד נתונים באמצעות ניהול זהויות והרשאות גישה (IAM) מאפשר לכם לשלוט בגישה למסדי הנתונים של AlloyDB ל-PostgreSQL ולנהל אותה באמצעות כללי מדיניות מרכזיים של IAM, במקום סיסמאות של מסדי נתונים.
אימות מסד נתונים ב-IAM מציע את האפשרויות הבאות:
- אימות IAM פרטני: אתם מוסיפים לאשכול משתמשים או חשבונות שירות ספציפיים.
- אימות IAM של קבוצה: אתם מוסיפים קבוצת IAM לאשכול, וכל חברי הקבוצה מקבלים הרשאות לאימות.
אימות אישי שימושי כשצריך לתת גישה ישירה לחשבונות ספציפיים. אימות קבוצתי מאפשר לכם לנהל את הגישה למסד הנתונים על ידי שינוי החברות בקבוצה, וכך מפחית את הצורך להוסיף או להסיר משתמשים ספציפיים ברמת האשכול.
מושגים שקשורים לאימות ב-IAM
כשמשתמשים באימות IAM, הרשאת הגישה למכונה של AlloyDB לא ניתנת ישירות למשתמש הקצה. במקום זאת, ההרשאות מקובצות לתפקידים, והתפקידים מוקצים לחשבונות משתמשים. למידע נוסף על תפקידים והרשאות ב-IAM, קראו את הסקירה הכללית על IAM.
אדמינים שהמשתמשים שלהם נכנסים באמצעות אימות מסד נתונים של IAM יכולים להשתמש ב-IAM כדי לנהל באופן מרכזי את בקרת הגישה למכונות שלהם באמצעות מדיניות IAM.
מדיניות IAM כוללת את הישויות הבאות:
חשבונות משתמשים: ב-AlloyDB, אתם יכולים להשתמש בחשבון משתמש, בחשבון שירות לאפליקציות או בקבוצת IAM. למידע נוסף על חשבונות משתמשים, ראו חשבונות משתמשים.
תפקידים: כדי לבצע אימות של מסד נתונים ב-IAM, לחשבון המשתמש נדרשת ההרשאה
alloydb.users.login, שכלולה בתפקיד "משתמש במסד נתונים ב-AlloyDB" (roles/alloydb.databaseUser) ובתפקיד "צרכן השימוש בשירות" (roles/serviceusage.serviceUsageConsumer). כדי להעניק את ההרשאות האלה, צריך לקשר את המשתמש, את חשבון השירות או את הקבוצה לתפקידים המוגדרים מראש האלה או לתפקיד בהתאמה אישית שכולל את ההרשאות הנדרשות. למידע נוסף על תפקידים והרשאות, קראו את המאמר הרשאות ותפקידים.משאבים: המשאבים שהחשבונות הראשיים ניגשים אליהם הם אשכולות של AlloyDB. קישורי מדיניות IAM חלים ברמת הפרויקט, כך שחשבונות ראשיים מקבלים הרשאות תפקיד לכל המכונות של AlloyDB בפרויקט. למידע נוסף על משאבים, ראו משאבים.
השוואה בין אפשרויות האימות של מסד הנתונים
אתם יכולים להיעזר בטבלה הבאה כדי להחליט איזו שיטת אימות הכי מתאימה לתרחיש לדוגמה שלכם.
| תכונה | אימות מובנה של מסד נתונים | אימות מסד נתונים ב-IAM |
|---|---|---|
| שיטת אימות | סיסמה | טוקן אימות זמני |
| הצפנת תנועה ברשת | לא נדרש SSL | נדרש SSL |
| ניהול משתמשים | גלילה ידנית | ריכוז באמצעות IAM |
אימות אוטומטי לעומת אימות ידני של מסד נתונים ב-IAM
ב-AlloyDB יש שתי שיטות לאימות מסד נתונים ב-IAM: אוטומטית וידנית.
אימות אוטומטי של מסד נתונים ב-IAM
אימות אוטומטי של מסד נתונים ב-IAM מאפשר לכם להעביר את הבקשה והניהול של טוקני הגישה למחבר AlloyDB מתווך, כמו Auth Proxy או אחד ממחברי השפה.
באימות אוטומטי של מסד נתונים ב-IAM, האפליקציה צריכה להעביר רק את שם המשתמש של מסד הנתונים ב-IAM בבקשת התחברות מהלקוח. המחבר שולח את פרטי אסימון הגישה למאפיין הסיסמה בשם הלקוח.
אימות ידני של מסד נתונים ב-IAM
באימות ידני של מסד נתונים באמצעות IAM, חשבון המשתמש ב-IAM צריך להעביר באופן מפורש את אסימון הגישה למאפיין הסיסמה בבקשת החיבור של הלקוח. חשבונות משתמשים צריכים קודם להיכנס ל- Google Cloud ולבקש במפורש את טוקן הגישה מ-IAM.
כדי לשמור תיעוד של הגישה לנתונים, כולל כניסות לחשבון, אתם יכולים להשתמש ביומני הביקורת של Cloud. כברירת מחדל, יומני הביקורת של Cloud מושבתים. כדי לעקוב אחרי הכניסות, צריך להפעיל את יומני הביקורת של הגישה לנתונים.
אימות קבוצות ב-IAM
אימות קבוצות ב-IAM מאפשר לכם לנהל את משתמשי AlloyDB ברמת הקבוצה באשכולות חדשים וקיימים, למשל באמצעות קבוצת Cloud Identity. אתם יכולים לנהל את התפקידים וההרשאות של PostgreSQL לכמה משתמשי IAM בו-זמנית, במקום לעדכן כל משתמש או חשבון שירות בנפרד. כשאתם נותנים או מבטלים תפקידים במסד הנתונים לקבוצה ב-Cloud Identity, כל החשבונות שאתם מוסיפים לקבוצה הזו מקבלים את ההרשאות והתפקידים של הקבוצה.
כדי להפעיל אימות של קבוצות IAM במכונה, מגדירים את הדגלים alloydb.iam_authentication ו-alloydb.iam_group_authentication לניהול מסד הנתונים לערך on.
באמצעות אימות קבוצתי ב-IAM, אתם יכולים:
להפעיל אימות קבוצתי באשכולות חדשים וקיימים בלי תיקון ידני של האשכול.
הוספת משתמש לקבוצה כדי שהמשתמש יקבל באופן אוטומטי תפקידי IAM והרשאות למסד הנתונים.
כדי לבטל את הרשאות הגישה למסד הנתונים ואת הרשאות ההתחברות של משתמש באשכולות של AlloyDB, צריך להסיר אותו מהקבוצה.
לתת או לבטל הרשאות התחברות וגישה לאובייקטים של מסד נתונים לקבוצה שלמה בבת אחת, במקום לעדכן חשבונות בנפרד.
כניסה ישירות ל-AlloyDB Studio במסוף Google Cloud , למכונות הראשיות או למכונות של מאגר הקריאה, כולל כניסות ראשונות ישירות למכונות של מאגר הקריאה בלי להתחבר קודם למכונה הראשית.
שחזור או העברה של אשכול AlloyDB מגיבוי של Cloud SQL ל-PostgreSQL, תוך מיפוי ושמירה של הגדרות משתמשים פרטיים וקבוצות IAM.
למרות שהתפקידים וההרשאות של IAM מוקצים ברמת הקבוצה, המשתמשים וחשבונות השירות משתמשים בחשבונות ובפרטי הכניסה הנפרדים שלהם ב-IAM – ולא בחשבון קבוצתי משותף – כדי להיכנס למכונות הראשיות, למכונות של מאגר הקריאה או ל-AlloyDB Studio. בפעם הראשונה שהחשבון הזה נכנס לאשכול, AlloyDB יוצרת לו חשבון מסד נתונים.
פעילות הכניסה ומסד הנתונים של כל משתמש או חשבון שירות מופיעה ביומני הביקורת, וכך אתם יכולים לוודא איזה חשבון ביצע כל פעולה במסד הנתונים.
למידע נוסף על עבודה עם קבוצות ב-Cloud Identity, קראו את הסקירה הכללית על Cloud Identity. מידע נוסף על העברה מגיבוי של Cloud SQL ל-PostgreSQL זמין במאמר העברה מ-Cloud SQL ל-PostgreSQL אל AlloyDB.
כשמוסיפים משתמש או חשבון שירות לקבוצה, מתרחשים השינויים הבאים ב-AlloyDB:
אם כבר נתתם לקבוצה הרשאות התחברות ב-IAM, המשתמש או חשבון השירות יכולים להיכנס לאשכול AlloyDB כי הם שייכים לקבוצה.
המשתמש מקבל באופן אוטומטי את כל הרשאות מסד הנתונים או התפקידים שהוקצו לקבוצה.
כשמסירים משתמש או חשבון שירות מהקבוצה, מתרחשים השינויים הבאים ב-AlloyDB:
- המשתמש מאבד את כל הרשאות מסד הנתונים שקיבל בירושה כשהיה חבר בקבוצה.
- יכול להיות שהמשתמש עדיין יוכל ליצור סשנים חדשים אם הוא יקבל הרשאות כניסה ב-IAM לאשכול AlloyDB דרך חברויות בקבוצות אחרות. עם זאת, למשתמש לא יהיו הרשאות למסד הנתונים מהחברות הקודמת שלו בקבוצה אחרי הכניסה לחשבון.
שיטות מומלצות
כדאי לפעול לפי השיטות המומלצות הבאות כשמשתמשים באימות של קבוצת IAM:
כשמבטלים את התפקיד
roles/alloydb.databaseUserשל קבוצת IAM ב-IAM, צריך למחוק את הקבוצה מאשכול AlloyDB.כשמוחקים קבוצה מ-Cloud Identity, צריך למחוק אותה גם מאשכול AlloyDB.
אתם יכולים להשתמש בקבוצות כדי להגדיר בקרת גישה המבוססת על תפקידים (RBAC) במסד הנתונים. לתת לקבוצה את ההרשאות המינימליות הנדרשות.
מגבלות
לאימות של קבוצות IAM יש את המגבלות הבאות:
אימות קבוצות ב-IAM נתמך רק במסד נתונים מגרסה
POSTGRES_15ואילך.מטעמי אבטחה, אפשר להיכנס באמצעות אימות מסד נתונים של IAM רק דרך חיבור SSL. חיבורים לא מוצפנים נדחים.
לכל מכונה יש מכסת כניסות לדקה, שכוללת גם כניסות מוצלחות וגם כניסות שנכשלו. אם חורגים מהמכסה, אי אפשר להיכנס לחשבון באופן זמני. להימנע מכניסות תכופות ולהגביל את הכניסות באמצעות רשתות מורשות.
החשבון המקוצר של חשבון השירות, שהוא כתובת האימייל בלי הסיומת
., לא יכול להכיל יותר מ-63 תווים. PostgreSQL חותך שמות של תפקידים שארוכים מ-63 תווים בקטלוג של מסד הנתונים, מה שגורם לאימות של IAM להיכשל. אם אתם לא יכולים לקצר את השם של חשבון השירות, תוכלו להשתמש בפתרון העקיף להתחזות לחשבון שירות.אפשר להוסיף עד 200 קבוצות IAM לאשכול.
אי אפשר להוסיף משתמשי IAM או חשבונות שירות נפרדים ששייכים לקבוצה באותו אשכול. במילים אחרות, אי אפשר להוסיף חשבון מסוג
ALLOYDB_IAM_USERאם כבר קיים חשבון זהה מסוגALLOYDB_IAM_GROUP_USERאוALLOYDB_IAM_GROUP_SERVICE_ACCOUNT.אם באשכול כבר קיים חשבון פרטי מסוג
ALLOYDB_IAM_USER, אי אפשר להשתמש בחשבון לאימות קבוצת IAM. סוגי המשתמשים האלה לא מקבלים בירושה תפקידי IAM והרשאות למסד הנתונים מקבוצה. כדי לפתור את הבעיה ולהשתמש בחשבון עם אימות של קבוצת IAM, צריך להסיר את המשתמש או את חשבון השירות הספציפיים ב-IAM. למידע נוסף על פתרון הבעיה, קראו את המאמר חשבון קיים לא מקבל הרשאות בירושה.שינויים בחברות בקבוצה ב-Cloud Identity, כמו הוספת חשבון, מתעדכנים תוך כ-15 דקות. זמן ההפצה הזה הוא בנוסף לזמן שנדרש לשינויים ב-IAM.
כדי להשתמש באימות של קבוצות IAM, צריך להגמיש או להשבית את כל הדגלים לניהול מסד נתונים שקשורים לסיסמאות, שקובעים את המספר המינימלי של תווים, תווים מספריים ואורך מינימלי.
אימות קבוצת IAM לא נתמך עם מאגר חיבורים מנוהל או עם חיבורי PgBouncer.
אי אפשר להשתמש באימות של קבוצות IAM עם זהויות מאוחדות.