我想要使用 Secure Socket Layer (SSL) 連線來連接至我的 Amazon Aurora PostgreSQL 相容版本資料庫叢集。
簡短描述
您可以使用 SSL 或 Transport Layer Security (TLS) 從應用程式加密與 Aurora PostgreSQL 相容資料庫叢集的連線。SSL 和 TLS 連線為叢集提供了單一安全層,並加密用戶端與叢集之間移動的資料。如需詳細資訊,請參閱使用 SSL/TLS 加密資料庫叢集的連線。
為了安全起見,在建立連線之前,必須先同時在用戶端和伺服器上設定 SSL 連線。如果伺服器上未設定 SSL,則用戶端可能會傳送敏感資訊,如密碼。如需有關如何建立 SSL 安全連線的詳細資訊,請參閱 PostgreSQL 網站上的 SSL 支援。
PostgreSQL 的 SSL 模式有:
- verify-full
- verify-ca
- require
- prefer
- allow
- disable
如需有關如何為您的使用案例選擇正確 SSL 模式的詳細資訊,請參閱 PostgreSQL 網站上的在不同的模式下提供的保護。
解決方法
Amazon Relational Database Service (Amazon RDS) 會為您的叢集建立 SSL 或 TLS 憑證。在建立叢集時會發生這種情況。如需詳細資訊,請參閱 Aurora PostgreSQL 的安全性。
透過 SSL/TLS 連接至您的資料庫叢集
- 下載 SSL/TSL 憑證。
- 將憑證匯入您的作業系統。
- 透過 SSL/TLS 連接至 Aurora PostgreSQL 相容資料庫叢集。
例如:
psql -h DBInstance.cluster-Account-Number.eu-west-1.rds.amazonaws.com -p 5432 "dbname=postgres user=postgres sslrootcert=global-bundle.pem sslmode=verify-full"
在您將 rds.force_ssl 設定為 1 (開啟) 時,系統會修改資料庫執行個體的 pg_hba.con 檔案,以支援新的 SSL 組態。使用 pg_hba_file_rules 視圖來查看 pg_hba.conf 檔案的內容摘要。在 rds.force_ssl 設定為 1 (開啟) 之後,pg_hba_file_rules 視圖中的類型值會更新為 hostssl。
您可能需要連線至資料庫叢集才能使用 SSL/TLS。若要執行此操作,請使用 rds.force_ssl 參數。依預設,rds.force_ssl 參數設定為 0。0 值表示已關閉。若要開啟此參數,請將 rds.force_ssl 設定為 1。這會讓 SSL/TLS 成為連接至資料庫叢集的要求。
如需詳細資訊,請參閱使用 SSL/TLS 保護 Aurora PostgreSQL 資料。
檢閱 SSL 連線
若要檢閱 SSL 連線,請執行以下命令:
postgres=> select ssl_is_used(); ssl_is_used
-------------
t
(1 row)
postgres=> select ssl_cipher();
ssl_cipher
-----------------------------
ECDHE-RSA-AES128-GCM-SHA256
(1 row)
注意: Amazon RDS 執行個體 SSL 是單向 SSL。這意味著用戶端可以驗證伺服器的身分。