本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon Aurora My 的安全性SQL
Amazon Aurora MySQL 的安全管理分為三個層級:
-
若要控制誰可以在 Aurora MySQL 資料庫叢集和資料庫執行個體上執行 Amazon RDS管理動作,您可以使用 AWS Identity and Access Management (IAM)。當您 AWS 使用IAM憑證連線至 時, AWS 您的帳戶必須具有授予執行 Amazon RDS管理操作所需許可IAM的政策。如需詳細資訊,請參閱 Aurora 的身份和訪問管理
如果您使用 IAM 來存取 Amazon RDS主控台,請務必先 AWS Management Console 使用IAM使用者憑證登入 。然後前往位於 的 Amazon RDS主控台https://console.aws.amazon.com/rds/
。 -
請務必根據 Amazon VPC服務在虛擬公有雲端 (VPC) 中建立 Aurora MySQL 資料庫叢集。若要控制哪些裝置和 Amazon EC2執行個體可以開啟 中 Aurora MySQL 資料庫叢集資料庫執行個體端點和連接埠的連線VPC,請使用VPC安全群組。您可以使用 Transport Layer Security () 建立這些端點和連接埠連線TLS。此外,貴公司的防火牆規則可控管在公司內執行的裝置是否可開啟與資料庫執行個體的連線。如需 的詳細資訊VPCs,請參閱 Amazon VPC 和 極光。
支援的VPC租用取決於 Aurora MySQL 資料庫叢集使用的資料庫執行個體類別。
default
VPC 租用時, 會在共用硬體VPC上執行。dedicated
VPC 租用時, 會在專用硬體執行個體VPC上執行。爆量效能資料庫執行個體類別僅支援預設VPC租用。爆量效能資料庫執行個體類別包括 db.t2、db.t3 和 db.t4g 資料庫執行個體類別。所有其他 Aurora MySQL 資料庫執行個體類別都支援預設和專用VPC租用。注意
建議您在開發、測試伺服器或其他非生產伺服器時,僅使用 T 資料庫執行個體類別。如需詳細了解 T 執行個體類別,請參閱 使用 T 執行個體類別進行開發和測試。
如需執行個體類別的詳細資訊,請參閱Amazon Aurora 數據庫實例類。如需
default
和dedicated
VPC 租用的詳細資訊,請參閱 Amazon Elastic Compute Cloud 使用者指南 中的專用執行個體。 -
若要驗證 Amazon Aurora MySQL 資料庫叢集的登入和許可,您可以採取下列其中一種方法,或結合這些方法:
-
您可以採取與 My 獨立執行個體相同的方法SQL。
CREATE USER
、RENAME USER
、GRANT
、REVOKE
及SET PASSWORD
等命令的運作方式與現場部署資料庫所使用的命令相同,會直接修改資料庫結構描述資料表。如需詳細資訊,請參閱我的SQL文件中的存取控制和帳戶管理。 -
您也可以使用IAM資料庫身分驗證。
透過IAM資料庫身分驗證,您可以使用IAM使用者或IAM角色和身分驗證權杖來對資料庫叢集進行身分驗證。身分驗證字符是不重複的值,由 Signature 第 4 版簽署程序所產生。透過使用IAM資料庫身分驗證,您可以使用相同的憑證來控制對 AWS 資源和資料庫的存取。如需詳細資訊,請參閱 IAM 資料庫身分驗證。
-
注意
如需詳細資訊,請參閱Aurora 的安全。
在下列各節中,請參閱有關 Aurora MySQL 的使用者許可以及與 Aurora MySQL 資料庫叢集的TLS連線的資訊。
Amazon Aurora My 的主要使用者權限SQL
當您建立 Amazon Aurora MySQL 資料庫執行個體時,主要使用者具有 中列出的預設權限主要使用者帳戶權限。
若要為每個資料庫叢集提供管理服務,建立資料庫執行個體時,系統會一併建立 admin
和 rdsadmin
使用者。若企圖移除、重新命名 rdsadmin
帳戶或變更其密碼或權限,皆會導致發生錯誤。
在 Aurora MySQL 第 2 版資料庫叢集中,會在建立資料庫叢集時建立 admin
和 rdsadmin
使用者。在 Aurora MySQL 第 3 版資料庫叢集中,會建立 admin
、 rdsadmin
和 rds_superuser_role
使用者。
重要
我們強烈建議您不要直接在您的應用程式中使用主要使用者。而是遵循最佳實務,使用以應用程式所需的最低權限建立的資料庫使用者。
為了管理 Aurora MySQL 資料庫叢集,已限制標準 kill
和 kill_query
命令。反之,請使用 Amazon RDS命令rds_kill
和 rds_kill_query
來終止 Aurora MySQL 資料庫執行個體上的使用者工作階段或查詢。
注意
中國 (寧夏) 區域不支援資料庫執行個體和快照的加密。
TLS Aurora MySQL 資料庫叢集的連線
Amazon Aurora MySQL 資料庫叢集支援使用與 RDS MySQL 資料庫執行個體相同的程序和公有金鑰,從應用程式進行 Transport Layer Security (TLS) 連線。
當 Amazon RDS佈建執行個體時,Amazon 會RDS建立TLS憑證並在資料庫執行個體上安裝憑證。憑證由憑證授權機構簽署。TLS 憑證包含資料庫執行個體端點作為TLS憑證的通用名稱 (CN),以防止詐騙攻擊。因此,只有在用戶端支援主體別名 () TLS時,您才能使用 資料庫叢集端點連線至資料庫叢集SAN。否則,您必須使用寫入器執行個體的執行個體端點。
如需有關下載憑證的詳細資訊,請參閱使用 SSL/TLS 加密與資料庫叢集的連線。
我們建議驅動程式 AWS JDBC作為支援 SAN 的用戶端TLS。如需有關驅動程式的詳細資訊 AWS JDBC和完整的驅動程式使用指示,請參閱 Amazon Web Services (AWS) JDBC驅動程式 GitHub 儲存庫
主題
需要TLS連線至 Aurora MySQL 資料庫叢集
您可以使用TLSrequire_secure_transport
資料庫叢集參數,要求所有使用者連線至 Aurora MySQL 資料庫叢集。依預設,require_secure_transport
參數設為 OFF
。您可以將 require_secure_transport
參數設定為 TLS ON
,以要求 連線至資料庫叢集。
您可以更新資料庫叢集的資料庫叢集參數群組,以設定 require_secure_transport
參數值。您不需要重新啟動資料庫叢集,變更即可生效。如需參數群組的詳細資訊,請參閱Amazon Aurora 的參數組 RDS。
注意
require_secure_transport
參數適用於 Aurora MySQL 第 2 版和第 3 版。您可以在自訂資料庫叢集參數群組中設定此參數。該參數不適用於資料庫執行個體參數群組。
當資料庫叢集的 require_secure_transport
參數設為 ON
時,如果可以建立加密的連線,則資料庫用戶端即可連線到該資料庫叢集。否則,類似下列內容的錯誤訊息會傳回至用戶端:
MySQL Error 3159 (HY000): Connections using insecure transport are prohibited while --require_secure_transport=ON.
TLS Aurora My 的版本SQL
Aurora MySQL 支援 Transport Layer Security (TLS) 1.0、1.1、1.2 和 1.3 版。從 Aurora MySQL 3.04.0 版及更新版本開始,您可以使用 TLS 1.3 通訊協定來保護連線。下表顯示 Aurora MySQL 版本的TLS支援。
Aurora MySQL 版本 | TLS 1.0 | TLS 1.1 | TLS 1.2 | TLS 1.3 | 預設 |
---|---|---|---|---|---|
Aurora MySQL 第 2 版 |
支援 | 支援 |
支援 |
不支援 | 所有支援的TLS版本 |
Aurora MySQL 第 3 版 (低於 3.04.0) |
支援 | 支援 | 支援 | 不支援 | 所有支援的TLS版本 |
Aurora MySQL 第 3 版 (3.04.0 及更高版本) |
不支援 | 不支援 | 支援 | 支援 | 所有支援的TLS版本 |
重要
如果您使用的是 Aurora MySQL 叢集的自訂參數群組,其版本為 2 版且版本低於 3.04.0,我們建議您使用 TLS 1.2,因為 TLS 1.0 和 1.1 較不安全。MySQL 8.0.26 和 Aurora MySQL 3.03 的社群版本及其次要版本已取代了對 1.1 和 1.0 TLS版的支援。
MySQL 8.0.28 的社群版本和相容的 Aurora MySQL 3.04.0 及更高版本不支援 TLS 1.1 和 TLS 1.0。如果您使用的是 Aurora MySQL 3.04.0 版和更新版本,請勿在自訂參數群組中將TLS通訊協定設定為 1.0 和 1.1。
對於 Aurora MySQL 3.04.0 版和更新版本,預設設定為 TLS 1.3 和 TLS 1.2。
您可以使用 tls_version
資料庫叢集參數來指示允許的通訊協定版本。大多數用戶端工具或資料庫驅動程式都有類似的用戶端參數 有些較舊的用戶端可能不支援較新的TLS版本。根據預設,資料庫叢集會嘗試使用伺服器和用戶端組態允許的最高TLS通訊協定版本。
將 tls_version
資料庫叢集參數設定為下值之一:
-
TLSv1.3
-
TLSv1.2
-
TLSv1.1
-
TLSv1
您也可以設定 tls_version
參數作為逗號分隔的字符串列表。如果您想要同時使用 TLS 1.2 和 TLS 1.0 通訊協定, tls_version
參數必須包含從最低到最高通訊協定的所有通訊協定。在這種情況下,tls_version
設定為:
tls_version=TLSv1,TLSv1.1,TLSv1.2
如需修改資料庫叢集參數群組中的參數之相關資訊,請參閱 在 Amazon Aurora 中修改資料庫叢集參數群組中的參數。如果您使用 tls_version
AWS CLI 來修改資料庫叢集參數,ApplyMethod
則必須將 設定為 pending-reboot
。當套用方法是 pending-reboot
,在停止並重新啟動與參數群組相關聯的資料庫叢集之後,都會套用至參數變更。
設定用於連線至 Aurora MySQL 資料庫叢集的密碼套件
透過使用可設定的密碼套件,您可以更進一步控制資料庫連線的安全性。您可以指定要允許 加密套件的清單,以保護資料庫的用戶端TLS連線。您可以使用可設定的密碼套件來控制資料庫伺服器接受的連線加密。這樣做可避免使用不安全或已作廢的密碼。
Aurora MySQL 第 3 版和 Aurora MySQL 第 2 版支援可設定的密碼套件。若要指定加密連線的允許 TLS 1.2、TLS1.1、TLS1.0 密碼清單,請修改ssl_cipher
叢集參數。使用 AWS Management Console、 AWS CLI或 RDS 設定叢集ssl_cipher
參數群組中的 參數API。
將 ssl_cipher
參數設定為 TLS版本的逗號分隔密碼值字串。對於用戶端應用程式,您可在連線至資料庫時使用 --ssl-cipher
選項指定用於加密連線的密碼套件。如需有關連線至資料庫的詳細資訊,請參閱 連接到 Amazon Aurora 我的SQL資料庫叢集。
從 Aurora MySQL 3.04.0 版及更新版本開始,您可以指定 TLS 1.3 密碼套件。若要指定允許的 TLS 1.3 密碼套件,請修改參數群組tls_ciphersuites
中的 參數。TLS 1.3 已因為移除所使用金鑰交換機制和憑證的命名慣例變更,而減少了可用密碼套件的數量。將 tls_ciphersuites
設定為逗號分隔的密碼值字串,以用於 TLS 1.3。
下表顯示支援的密碼,以及TLS加密通訊協定和每個密碼的有效 Aurora MySQL 引擎版本。
加密 | 加密通訊協定 | 支援的 Aurora MySQL 版本 |
---|---|---|
|
TLS 1.0 | Aurora MySQL 第 3 版的所有版本都低於 3.04.0 |
|
TLS 1.2 | Aurora MySQL 第 3 版的所有版本都低於 3.04.0 |
|
TLS 1.2 | Aurora MySQL 第 3 版的所有版本都低於 3.04.0 |
|
TLS 1.0 | Aurora MySQL 第 3 版的所有版本都低於 3.04.0 |
|
TLS 1.2 | Aurora MySQL 第 3 版的所有版本都低於 3.04.0 |
|
TLS 1.2 | Aurora MySQL 第 3 版的所有版本都低於 3.04.0 |
|
TLS 1.0 | 3.01.0 及更高版本、2.11.0 及更高版本 |
|
TLS 1.2 | 3.01.0 及更高版本、2.11.0 及更高版本 |
|
TLS 1.2 | 3.01.0 及更高版本、2.11.0 及更高版本 |
|
TLS 1.0 | 3.01.0 及更高版本、2.11.0 及更高版本 |
|
TLS 1.2 | Aurora MySQL 第 3 版、2.11.0 版及更新版本皆低於 3.04.0 |
|
TLS 1.2 | 3.01.0 及更高版本、2.11.0 及更高版本 |
|
TLS 1.2 | 3.01.0 及更高版本、2.11.0 及更高版本 |
|
TLS 1.2 | 3.01.0 及更高版本、2.11.0 及更高版本 |
|
TLS 1.2 | 3.04.0 和更高版本、2.11.0 和更高版本 |
|
TLS 1.3 | 3.04.0 及更新版本 |
|
TLS 1.3 | 3.04.0 及更新版本 |
|
TLS 1.3 | 3.04.0 及更新版本 |
重要
DHE-RSA
Aurora MySQL 2.11.0 版開始,在 Aurora MySQL 2 中,從 SQL3.04.0 版開始,不支援密碼。
如需修改資料庫叢集參數群組中的參數之相關資訊,請參閱 在 Amazon Aurora 中修改資料庫叢集參數群組中的參數。如果您使用 ssl_cipher
CLI修改資料庫叢集參數,請務必將 設定為 ApplyMethod
pending-reboot
。當套用方法是 pending-reboot
,在停止並重新啟動與參數群組相關聯的資料庫叢集之後,都會套用至參數變更。
您也可以使用 describe-engine-default-cluster-parameters CLI命令來判斷特定參數群組系列目前支援哪些密碼套件。下列範例顯示如何取得 Aurora MySQL 第 2 版ssl_cipher
叢集參數的允許值。
aws rds describe-engine-default-cluster-parameters --db-parameter-group-family aurora-mysql5.7 ...some output truncated... { "ParameterName": "ssl_cipher", "ParameterValue": "DHE-RSA-AES128-SHA,DHE-RSA-AES128-SHA256,DHE-RSA-AES128-GCM-SHA256,DHE-RSA-AES256-SHA,DHE-RSA-AES256-SHA256,DHE-RSA-AES256-GCM-SHA384,ECDHE-RSA-AES128-SHA,ECDHE-RSA-AES128-SHA256,ECDHE-RSA-AES128-GCM-SHA256,ECDHE-RSA-AES256-SHA,ECDHE-RSA-AES256-SHA384,ECDHE-RSA-AES256-GCM-SHA384", "Description": "The list of permissible ciphers for connection encryption.", "Source": "system", "ApplyType": "static", "DataType": "list", "AllowedValues": "DHE-RSA-AES128-SHA,DHE-RSA-AES128-SHA256,DHE-RSA-AES128-GCM-SHA256,DHE-RSA-AES256-SHA,DHE-RSA-AES256-SHA256,DHE-RSA-AES256-GCM-SHA384,ECDHE-RSA-AES128-SHA,ECDHE-RSA-AES128-SHA256,ECDHE-RSA-AES128-GCM-SHA256,ECDHE-RSA-AES256-SHA,ECDHE-RSA-AES256-SHA384,ECDHE-RSA-AES256-GCM-SHA384", "IsModifiable": true, "SupportedEngineModes": [ "provisioned" ] }, ...some output truncated...
如需密碼的詳細資訊,請參閱 MySQL 文件中的 ssl_cipher
加密 Aurora MySQL 資料庫叢集的連線
如要使用預設的 mysql
用戶端來加密連線,請使用 --ssl-ca
參數公有金鑰,以啟動 mysql 用戶端,例如:
對於 MySQL 5.7 和 8.0:
mysql -h myinstance.123456789012.rds-us-east-1.amazonaws.com --ssl-ca=
full_path_to_CA_certificate
--ssl-mode=VERIFY_IDENTITY
對於 MySQL 5.6:
mysql -h myinstance.123456789012.rds-us-east-1.amazonaws.com --ssl-ca=
full_path_to_CA_certificate
--ssl-verify-server-cert
Replace (取代) full_path_to_CA_certificate
包含憑證授權單位 (CA) 憑證的完整路徑。如需有關下載憑證的資訊,請參閱 使用 SSL/TLS 加密與資料庫叢集的連線。
您可以要求特定使用者帳戶的TLS連線。例如,您可以使用下列其中一項陳述式,視您的 MySQL 版本而定,在使用者帳戶 上要求TLS連線encrypted_user
。
對於 MySQL 5.7 和 8.0:
ALTER USER 'encrypted_user'@'%' REQUIRE SSL;
對於 MySQL 5.6:
GRANT USAGE ON *.* TO 'encrypted_user'@'%' REQUIRE SSL;
當您使用 RDS Proxy 時,您會連線至 Proxy 端點,而不是一般叢集端點。您可以讓 SSL/TLS 必要或選用 來連線至代理,方法與直接連線至 Aurora 資料庫叢集相同。如需使用 RDS Proxy 的相關資訊,請參閱 使用 Amazon RDS Proxy for Aurora。
注意
如需與 My TLS連線的詳細資訊SQL,請參閱 MySQL 文件