開啟SSL鏈路加密後,如未設定用戶端存取控制,用戶端仍能通過參數PGSSLMODE=disable實現非SSL方式串連,如需強制用戶端採用SSL方式進行串連,請參考本文進行相應配置。
前提條件
若僅需用戶端通過SSL串連RDS PostgreSQL,請為RDS PostgreSQL啟用SSL加密。具體操作,請參見使用雲端認證快速開啟SSL加密或使用自訂認證開啟SSL加密。
在用戶端通過SSL串連RDS PostgreSQL的前提下,如需對用戶端認證進行驗證,則必須配置用戶端CA認證。具體操作,請參見配置用戶端CA認證。
操作步驟
RDS PostgreSQL提供如下方式,強制用戶端在訪問資料庫時必須使用SSL鏈路加密。
方法一:配置ACL用戶端存取控制
在配置用戶端CA認證後,您可以在RDS PostgreSQL執行個體中配置ACL,以管理用戶端的存取權限。此時,用戶端必須攜帶其相應的用戶端認證和私密金鑰,並通過相應的認證方式進行驗證,方可串連資料庫。
配置ACL期間,PostgreSQL資料庫執行個體將不能操作,用時約1分鐘。
如果在RDS PostgreSQL資料庫未設定用戶端存取控制(預設
prefer),用戶端可以使用PGSSLMODE=disable來實現非SSL方式串連資料庫。當需要禁止非SSL串連時,請確保在開啟SSL鏈路加密後將ACL配置為除prefer以外的其他認證方式。
單擊配置ACL後的修改,選擇不同的用戶端串連控制模式。
配置如下認證方法可以強制用戶端通過SSL串連RDS PostgreSQL執行個體:
cert:使用認證代替密碼登入,加密資料鏈路,同時檢查用戶端認證真偽,檢查認證CN與資料庫使用者名稱匹配。
verify-ca:加密資料鏈路,同時檢查用戶端認證真偽。
verify-full(RDS PostgreSQL 12以上支援):加密資料鏈路,同時檢查用戶端認證真偽,檢查認證CN與資料庫使用者名稱匹配。
方法二:配置pg_hba.cnf檔案
在配置SSL鏈路加密後,您可以通過RDS PostgreSQL提供的AD網域服務配置功能實現修改pg_hba.cnf檔案的目的,使用戶端串連資料庫時必須使用SSL方式。
訪問RDS執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。
在左側導覽列單擊帳號管理,切換至AD網域服務資訊頁簽下。
將第一條記錄中的TYPE取值修改為
hostssl。
單擊提交。
說明提交後系統狀態將變為維護執行個體中,預計時間長度約1分鐘,修改後的新配置僅對新串連生效,對於舊串連,您需要斷開已有串連後重新串連才會生效。