You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Amazon Aurora MySQL实例强制启用SSL/TLS连接?

如何为Amazon Aurora MySQL兼容实例强制所有连接使用SSL/TLS?

我正尝试为所有连接至Amazon Aurora MySQL兼容实例的请求启用SSL/TLS。查阅AWS文档后,未找到可在实例层面强制启用该配置的对应参数值。

我已能通过以下命令在用户层面使用SSL连接RDS:

mysql -h rdsinstance.us-west-2.rds.amazonaws.com --ssl-ca=us-ca.pem --ssl-mode=REQUIRED -P 3306 -u user123 -p

执行\s查看连接信息,确认SSL已生效:

--------------
mysql  Ver 8.0.31 for Win64 on x86_64 (MySQL Community Server - GPL)

Connection id:          41
Current database:
Current user:           user123@171.165.11.11
SSL:                    Cipher in use is ECDHE-RSA-AES128-GCM-SHA256
Using delimiter:        ;
Server version:         5.7.12 MySQL Community Server (GPL)
Protocol version:       10
Connection:             rdsinstance.us-west-2.rds.amazonaws.com via TCP/IP
Server characterset:    latin1
Db     characterset:    latin1
Client characterset:    cp850
Conn.  characterset:    cp850
TCP port:               3306

但我希望所有数据库连接都强制使用SSL,不确定是否因社区版导致无法配置,恳请协助。


解决方案

1. 通过用户权限强制SSL

Aurora MySQL(兼容MySQL 5.7/8.0)支持通过修改用户权限,强制该用户必须使用SSL连接。执行以下SQL配置:

-- 为单个用户开启SSL强制
ALTER USER 'user123'@'%' REQUIRE SSL;

-- 批量更新所有现有用户(操作前确认业务无影响)
UPDATE mysql.user SET ssl_type = 'ANY' WHERE ssl_type = '';
FLUSH PRIVILEGES;

配置后,未使用SSL的连接会直接被拒绝:ERROR 1045 (28000): Access denied for user 'user123'@'xxx.xxx.xxx.xxx' (using password: YES)

2. 全局参数强制SSL(适用于高版本兼容实例)

若你的Aurora兼容MySQL 5.7.20+或8.0+,可通过参数组设置require_secure_transport参数实现全局强制:

  • 进入AWS RDS控制台,找到目标集群的参数组
  • 编辑参数组,将require_secure_transport设为ON
  • 保存参数组后重启Aurora实例,配置即可生效

该参数会直接拒绝所有未加密的连接,无需逐个配置用户权限。

3. 验证强制效果

配置完成后,尝试不携带SSL参数连接测试:

mysql -h rdsinstance.us-west-2.rds.amazonaws.com -P 3306 -u user123 -p

若返回权限拒绝错误,说明SSL强制已生效。

注意事项

  • 兼容MySQL 5.7.19及更早版本的Aurora不支持require_secure_transport参数,只能通过用户权限层面实现强制
  • 配置前务必确认应用程序已适配SSL连接参数,避免业务中断

内容的提问来源于stack exchange,提问作者aka baka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 17:05:59