如何在 Aurora PostgreSQL 相容版本的資料庫執行個體上開啟 SSL 連線,以及如何使用 SSL 憑證來與我的執行個體連線?
上次更新日期:2022 年 12 月 16 日
我想要使用 Secure Socket Layer (SSL) 連線跟 Amazon Aurora PostgreSQL 相容版本資料庫叢集連線。
簡短說明
您可以使用 SSL 或 Transport Layer Security (TLS) 來加密從應用程式到 Aurora PostgreSQL 相容版本資料庫叢集的連線。SSL 和 TLS 連線可為叢集提供單層安全性,並加密在用戶端和叢集之間移動的資料。如需詳細資訊,請參閱 Using SSL/TLS to encrypt a connection to a DB cluster (使用 SSL/TLS 來加密資料庫叢集的連線)。
為了安全起見,連線前必須先在用戶端和伺服器上設定 SSL 連線。如果伺服器上未設定 SSL,用戶端可能會傳送密碼等敏感資訊。如需有關建立 SSL 加密連線的詳細資訊,請參閱 PostgreSQL 說明文件中的 SSL 支援。
適用於 PostgreSQL 的 SSL 模式如下:
- 完整驗證
- 憑證授權單位驗證
- 需要
- 偏好
- 允許
- 停用
如需有關針對使用案例選擇適當 SSL 模式的詳細資訊,請參閱 PostgreSQL 說明文件中的以不同模式提供的保護。
解決方案
Amazon Relational Database Service (Amazon RDS) 會在您建立叢集時,為叢集建立 SSL 或 TLS 憑證。如需詳細資訊,請參閱 Amazon Aurora PostgreSQL 的安全性。
透過 SSL/TLS 與您的資料庫叢集連線
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.conf 檔案將修改以支援新的 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,表示它處於關閉狀態。若要開啟此參數,請將 rds.force_ssl 設定為 1。這會讓使用 SSL/TLS 成為與資料庫叢集進行連線的要求。
如需詳細資訊,請參閱 Securing Aurora PostgreSQL data with 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)