ניהול אימות מובנה באמצעות מדיניות סיסמאות

אתם יכולים להגדיר ולנהל מדיניות סיסמאות למשתמשי מסד נתונים במכונות AlloyDB ל-PostgreSQL.

במאמר בנושא אימות מופיעה סקירה כללית של שיטות האימות שזמינות ב-AlloyDB.

מידע על מדיניות בנושא סיסמאות

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

מגבלות של מדיניות הסיסמאות

יש מגבלות על מדיניות הסיסמאות ב-AlloyDB:

  • מדיניות הסיסמאות חלה רק על סיסמאות שנוצרו אחרי שהגדרתם את המדיניות. שינוי במדיניות הסיסמאות לא משפיע על סיסמאות קיימות של משתמשים.

  • מדיניות הסיסמאות חלה רק על סיסמאות שמוזנות כטקסט רגיל. המדיניות בנושא סיסמאות לא חלה על סיסמאות שמוזנות כמחרוזות מוצפנות.

הגדרת מדיניות סיסמאות למופע

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

  • איסור שימוש בשם משתמש: מונע שימוש בשם המשתמש בסיסמה.

  • מורכבות הסיסמה: צריך לבדוק אם הסיסמה מכילה את מספר התווים המותר של אותיות קטנות, אותיות גדולות, ספרות ותווים לא אלפאנומריים. כדאי גם לבדוק אם אורך הסיסמה תקין.

  • תוקף הסיסמה: חשוב לוודא שהסיסמאות מתחלפות באופן תקופתי.

רשימת הדגלים של מדיניות הסיסמאות שנתמכים ב-AlloyDB מופיעה במאמר דגלים של מדיניות הסיסמאות.

אכיפת סיסמאות מורכבות

כדי לאכוף מדיניות של סיסמאות מורכבות:

  1. מגדירים את הדגל password.enforce_complexity לערך ON.
  2. משתמשים בדגלים של מדיניות סיסמאות כדי להגדיר את מדיניות הסיסמאות.

לדוגמה, כדי לאכוף מדיניות סיסמאות שקובעת שסיסמה חייבת להכיל לפחות אות גדולה אחת, מספר אחד ולהיות באורך של 10 תווים לפחות, צריך להגדיר את הדגלים הבאים:

  • password.enforce_complexity עד ON
  • דגל password.min_uppercase_letters לערך 1
  • דגל password.min_numerical_chars לערך 1
  • דגל password.min_pass_length לערך 10

אחרי שמגדירים את הדגלים האלה, ניסיון להגדיר סיסמה למשתמש במסד נתונים שלא עומדת בדרישות של מדיניות הסיסמאות הזו ייכשל. לדוגמה, אם המדיניות הזו מוגדרת, הפקודה הבאה של הלקוח psql נכשלת כי הסיסמה foo קצרה מ-10 תווים ולא מכילה מספר או אות גדולה.

CREATE USER USERNAME WITH PASSWORD 'foo';

אכיפת תפוגת תוקף של סיסמאות

כדי לאכוף את מדיניות תפוגת הסיסמאות:

  1. מגדירים את הדגל password.enforce_expiration לערך ON.

  2. מגדירים את הדגל password.expiration_in_days למספר הימים שאחרי הגדרת הסיסמה, שבהם היא תפוג.

  3. מגדירים את הדגל password.notify_expiration_in_days למספר הימים לפני פקיעת התוקף של הסיסמה שבהם המשתמש מתחיל לקבל התראות על פקיעת התוקף של הסיסמה.

לדוגמה, כדי לאכוף מדיניות סיסמאות שקובעת שתוקף הסיסמאות יפוג אחרי 30 ימים ושהמשתמשים יקבלו התראה 15 ימים לפני שתוקף הסיסמה שלהם יפוג, צריך להגדיר את הערכים הבאים:

  • password.enforce_expiration עד ON
  • דגל password.expiration_in_days לערך 30
  • דגל password.notify_expiration_in_days לערך 15

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

הסיסמאות לא יכולות לכלול שמות משתמש

כדי לאכוף את המדיניות שמונעת מסיסמה להכיל שם משתמש, צריך:

לדוגמה, כדי לוודא שסיסמה לא מכילה שם משתמש כמחרוזת משנה, מגדירים את הדברים הבאים:

  • password.enforce_password_does_not_contain_username עד ON

אם הדגל הזה מוגדר, הפעולה הבאה נכשלת כי הסיסמה alex-secret מכילה את שם המשתמש Alex:

CREATE USER Alex WITH PASSWORD 'alex-secret';

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