本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 SSL/TLS 加密對 MariaDB 資料庫執行個體的用戶端連線
Secure Sockets Layer (SSL) 是一種產業標準通訊協定,可保護用戶端與伺服器之間的網路連線。SSL 3.0 版之後,名稱已變更為 Transport Layer Security (TLS)。Amazon RDS 支援 MariaDB 資料庫執行個體的 SSL/TLS 加密。使用 SSL/TLS,您可以加密應用程式用戶端與 MariaDB 資料庫執行個體之間的連接。SSL/TLS 支援在所有方面都可以使用。 AWS 區域
將 SSL/TLS 與 MariaDB 資料庫執行個體搭配使用
當 Amazon RDS 佈建執行個體時,Amazon RDS 會建立 SSL/TLS 憑證,並將該憑證安裝在資料庫執行個體上。憑證由憑證授權機構簽署。SSL/TLS 憑證會以通用名稱 (CN) 加入資料庫執行個體端點,讓 SSL/TLS 憑證免於遭受詐騙攻擊。
Amazon RDS 建立的 SSL/TLS 憑證是可信任的根實體,應可適用於大多數情況,但若您的應用程式不接受憑證鏈結,則可能無法使用。若您的應用程式不接受憑證鏈結,您可能需要使用中繼憑證來連線至您的 AWS 區域。例如,您必須使用中繼憑證來連線到使用 SSL/TLS 的 AWS GovCloud (US) 區域。
如需有關下載憑證的詳細資訊,請參閱使用SSL/TLS來加密資料庫執行個體或叢集集的連線。如需在使用 SSL/TLS 搭配 MySQL 的詳細資訊,請參閱 更新應用程式,以使用新的 SSL/TLS 憑證連線至 MariaDB 執行個體。
Amazon RDS for MariaDB 支援傳輸層安全性 (TLS) 1.3、1.2、1.1 和 1.0 版。TLS 支持取決於 MariaDB 的次要版本。下表顯示了對 MariaDB 次要版本的 TLS 支援。
TLS 版本控制 | MariaDB 10.11 | MariaDB 10.6 | MariaDB 10.5 | MariaDB 10.4 |
---|---|---|---|---|
TLS 1.3 |
所有次要版本 |
所有次要版本 |
所有次要版本 |
所有次要版本 |
TLS 1.2 |
所有次要版本 |
所有次要版本 |
所有次要版本 |
所有次要版本 |
TLS 1.1 |
10.11.6 及更低版本 |
十六月十六日及更低版本 |
5 月 10 日及更低版本 |
10.4.32 及更低版本 |
TLS 1.0 |
10.11.6 及更低版本 |
十六月十六日及更低版本 |
5 月 10 日及更低版本 |
10.4.32 及更低版本 |
您可以要求特定使用者帳戶使用 SSL/TLS 連線。例如,您可以根據 MariaDB 版本,使用下列任一陳述式,要求使用者帳戶 encrypted_user
使用 SSL/TLS 連線。
使用以下陳述式。
ALTER USER 'encrypted_user'@'%' REQUIRE SSL;
如需使用 MariaDB 的 SSL/TLS 連線詳細資訊,請參閱 MariaDB 文件中的保護用戶端和伺服器的連線
MariaDB 資料庫執行個體的所有連線都需要 SSL/TLS
使用 require_secure_transport
參數來要求使用者與 MariaDB 資料庫執行個體的所有連線都使用 SSL/TLS。依預設,require_secure_transport
參數設為 OFF
。您可以將 require_secure_transport
參數設為 ON
,以要求對資料庫執行個體的連線使用 SSL/TLS。
注意
僅 MariaDB 10.5 版和更新版本支援 require_secure_transport
參數。
您可以更新資料庫執行個體的資料庫參數群組,以設定 require_secure_transport
參數值。您不需要重新啟動資料庫執行個體,變更即可生效。
當資料庫執行個體的 require_secure_transport
參數設為 ON
時,如果可以建立加密的連線,則資料庫用戶端即可連線到該資料庫叢集。否則,類似下列內容的錯誤訊息會傳回至用戶端:
ERROR 1045 (28000): Access denied for user 'USER
'@'localhost' (using password: YES | NO
)
如需有關設定參數的詳細資訊,請參閱 修改 Amazon RDS Amazon 數據庫參數組中的參數。
如需 require_secure_transport
參數的詳細資訊,請參閱 MariaDB 文件
使用 SSL/TLS (加密) 從 MySQL 命令列用戶端連線
如果您使用的是 MySQL 5.7 版、MySQL 8.0 版或 MariaDB 版本,mysql
用戶端程式的參數略有不同。
若要找出您擁有的版本,請執行具有 --version
選項的 mysql
命令。在以下範例中,輸出顯示了用戶端程式是來自 MariaDB。
$ mysql --version mysql Ver 15.1 Distrib 10.5.15-MariaDB, for osx10.15 (x86_64) using readline 5.1
大多數 Linux 發行版本,例如 Amazon Linux、CentOS、SUSE 和 Debian 都用 MariaDB 取代 MySQL,而且發行版本中的 mysql
版是來自 MariaDB。
若要使用 SSL/TLS 連線到資料庫執行個體,請執行以下步驟:
使用 MySQL 命令列用戶端搭配 SSL/TLS 連接至資料庫執行個體
-
下載適用於所有人的根憑證 AWS 區域。
如需有關下載憑證的詳細資訊,請參閱使用SSL/TLS來加密資料庫執行個體或叢集集的連線。
-
使用 MySQL 命令列用戶端搭配 SSL/TLS 加密連接至資料庫執行個體。在
-h
參數中,將 DNS 名稱 (端點) 取代為您的資料庫執行個體。在--ssl-ca
參數中,取代 SSL/TLS 憑證檔名稱。在-P
參數中,取代為您的資料庫執行個體連接埠。在-u
參數中,請以有效資料庫使用者取代使用者名稱,例如主要使用者。出現提示時,輸入主要使用者密碼。下列範例顯示如何對於 MariaDB 用戶端更新的版本使用
--ssl-ca
參數啟動用戶端:mysql -h
mysql–instance1.123456789012.us-east-1.rds.amazonaws.com
--ssl-ca=global-bundle.pem
--ssl -P 3306 -umyadmin
-p若要要求 SSL/TLS 連線根據 SSL/TLS 憑證中的端點來驗證資料庫執行個體端點,請輸入下列命令:
mysql -h
mysql–instance1.123456789012.us-east-1.rds.amazonaws.com
--ssl-ca=global-bundle.pem
--ssl-verify-server-cert -P 3306 -umyadmin
-p下列範例顯示如何對於 MySQL 5.7 用戶端更新的版本使用
--ssl-ca
參數啟動用戶端:mysql -h
mysql–instance1.123456789012.us-east-1.rds.amazonaws.com
--ssl-ca=global-bundle.pem
--ssl-mode=REQUIRED -P 3306 -umyadmin
-p 出現提示時,輸入主要使用者密碼。
您應該會看到類似下列的輸出。
Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 31 Server version: 10.6.10-MariaDB-log Source distribution Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>