使用密碼政策管理內建驗證

本頁說明如何為 AlloyDB for PostgreSQL 執行個體的資料庫使用者設定及管理密碼政策。

如要瞭解 AlloyDB 提供的驗證方法,請參閱驗證

密碼政策簡介

如果應用程式的資料庫使用者是透過內建的密碼驗證方法,向 AlloyDB 執行個體驗證身分,您可以強制使用高強度密碼,進一步確保驗證安全。您可以在執行個體上設定密碼政策,定義及啟用密碼強制執行功能。

密碼政策的限制

AlloyDB 密碼政策有下列限制:

  • 密碼政策只會套用至您設定政策後建立的密碼。 現有使用者密碼不會受到密碼政策變更的影響。

  • 密碼政策僅適用於以純文字輸入的密碼。密碼政策不適用於以加密字串形式輸入的密碼。

設定執行個體密碼政策

如要為執行個體設定密碼政策,請在執行個體上設定密碼旗標

  • 禁止使用者名稱:禁止在密碼中使用使用者名稱。

  • 密碼複雜度:檢查密碼是否包含允許數量的小寫、大寫、數字和非英數字元。並檢查密碼長度是否有效。

  • 密碼到期:確保定期輪替密碼。

如需 AlloyDB 支援的密碼政策標記清單,請參閱「密碼政策標記」。

強制使用高複雜度密碼

如要強制執行密碼複雜度政策,請按照下列步驟操作:

  1. password.enforce_complexity 標記設為 ON
  2. 使用密碼政策標記定義密碼政策。

舉例來說,如要強制執行密碼政策,規定密碼必須包含至少一個大寫字母、一個數字,且長度至少為 10 個字元,您必須設定下列標記:

  • password.enforce_complexityON
  • 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_expirationON
  • password.expiration_in_days 旗標設為 30
  • password.notify_expiration_in_days 旗標設為 15

如果使用者密碼過期,就無法連線至 AlloyDB Omni 執行個體。如要重設使用者密碼,請參閱「變更資料庫使用者的密碼」。

禁止在密碼中加入使用者名稱

如要強制執行政策,禁止密碼包含使用者名稱,請按照下列步驟操作:

舉例來說,如要確保密碼不含使用者名稱做為子字串,請設定下列項目:

  • password.enforce_password_does_not_contain_usernameON

如果設定這個標記,下列作業就會失敗,因為密碼 alex-secret 包含使用者名稱 Alex

CREATE USER Alex WITH PASSWORD 'alex-secret';

後續步驟