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

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

במאמר אימות מפורטות שיטות האימות שזמינות ב-AlloyDB.

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

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

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

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

  • כללי מדיניות הסיסמאות חלים רק על משתמשים במסד נתונים מובנה (BUILT_IN). משתמשי מסד נתונים שמבוססים על IAM (IAM_BASED) לא נכללים בכללי המדיניות של סיסמאות למכונות.

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

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

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

כדי להגדיר מדיניות סיסמאות במכונה, צריך להגדיר דגלי סיסמאות במכונה.

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

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

  • תפוגת סיסמה: דרישה להחלפת סיסמה מדי פעם.

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

כדי לעמוד בתקני האבטחה ולפעול בהתאם להנחיות של המלצות האבטחה, צריך להפעיל את שלוש האפשרויות יחד על ידי הגדרת דגלי האכיפה הראשיים שלהן לערך ON:

  • password.enforce_password_does_not_contain_username
  • password.enforce_complexity
  • password.enforce_expiration

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

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

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

  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 מציג את ההודעה הבאה בחיבור של הלקוח וכותב אותה ב-postgres.log:

Caution: Password is set to expire soon. Be sure to update the password before the expiration time.

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

אי אפשר להשתמש בשמות משתמשים בסיסמאות

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

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

  • הדגל password.enforce_password_does_not_contain_username לערך ON

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

CREATE USER alex WITH PASSWORD 'alex-secret';

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