本文章发表比较晚了,因为在本轮北京区更新完证书以后,后续的证书都是RDS自动轮换,不再需要手动轮换。
通过如下AWS CLI指令来查看各数据库引擎版本是否支持更换证书不重启功能:
--Aurora MySQL:
[ec2-user@ip-192-168-0-0 ~]$ aws rds describe-db-engine-versions --engine aurora-mysql --query 'DBEngineVersions[*].[EngineVersion,SupportsCertificateRotationWithoutRestart]' --output table
---------------------------------------
| DescribeDBEngineVersions |
+----------------------------+--------+
........
| 5.7.mysql_aurora.2.10.0 | False |
| 5.7.mysql_aurora.2.10.1 | False |
| 5.7.mysql_aurora.2.10.2 | False |
| 5.7.mysql_aurora.2.10.3 | False |
| 5.7.mysql_aurora.2.11.0 | False |
| 5.7.mysql_aurora.2.11.1 | True | //--> 不需要重启
| 5.7.mysql_aurora.2.11.2 | True |
| 5.7.mysql_aurora.2.11.3 | True |
| 5.7.mysql_aurora.2.11.4 | True |
-- RDS SQL Server
[ec2-user@ip-192-168-0-0 ~]$ aws rds describe-db-engine-versions --engine sqlserver-se --engine-version 15.00.4198.2.v1 --query 'DBEngineVersions[*].SupportsCertificateRotationWithoutRestart'
[
false
]
[ec2-user@ip-192-168-0-0 ~]$ aws rds describe-db-engine-versions --engine sqlserver-se --engine-version 15.00.4316.3.v1 --query 'DBEngineVersions[*].SupportsCertificateRotationWithoutRestart'
[
false
]
-- RDS MySQL
-- 对于RDS MySQL来说,MySQL 5.7版本更新证书需要重启数据库实例,而MySQL 8.0以上版本无需重启即可更新证书。
轮换证书以后的影响:
如果我们的应用程序没有使用SSL连接RDS呢, 那么证书轮换除了特定版本会造成重启以外,没有任何影响。
若我们的应用,使用SSL证书连接数据库,那么我们需要在数据库更新证书后,及时更新应用侧的数据库证书捆绑包[1].
建议可以先在非生产环境测试证书轮换以后的应用程序连接,如果应用程序受到影响,需要更新应用侧证书捆绑包,那么可以参考文档[2]将证书捆绑包导入。
参考文档:
[1]特定 Amazon Web Services 区域的证书捆绑包
https://docs.amazonaws.cn/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.RegionCertificates-BJS
[2] https://docs.amazonaws.cn/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL-certificate-rotation.html#UsingWithRDS.SSL-certificate-rotation-sample-script