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

同一区域EKS部署应用与Aurora MySQL RDS集群建立SSL连接方法问询

从us-east-1区域EKS应用连接同区域Aurora MySQL集群的SSL配置步骤

1. 准备RDS根证书

获取AWS us-east-1区域适用的RDS PEM格式根证书bundle,文件通常命名为global-bundle.pem,该证书可用于校验所有AWS区域RDS实例的服务端SSL证书。

2. 将证书存储为EKS Secret

在本地确认证书内容无误后,执行以下kubectl命令在你的应用所在命名空间创建Secret:

kubectl create secret generic rds-ssl-ca --from-file=./global-bundle.pem -n <你的应用部署命名空间>

3. 应用部署挂载证书

修改应用的Deployment配置文件,添加卷配置将Secret挂载到应用容器内可访问的路径:

  • 在spec.template.spec.volumes字段下新增卷定义:
volumes:
  - name: rds-ca-bundle
    secret:
      secretName: rds-ssl-ca
  • 在spec.template.spec.containers[*].volumeMounts字段下新增挂载配置:
volumeMounts:
  - name: rds-ca-bundle
    mountPath: /etc/ssl/certs/rds-global-bundle.pem
    subPath: global-bundle.pem
    readOnly: true

4. 修改数据库连接配置开启SSL

根据你的应用使用的数据库驱动,调整连接参数启用SSL并指定证书路径:

  • JDBC驱动连接串示例:
jdbc:mysql://<你的Aurora集群访问端点>:3306/<数据库名称>?useSSL=true&requireSSL=true&verifyServerCertificate=true&caCertificate=/etc/ssl/certs/rds-global-bundle.pem
  • Python PyMySQL驱动连接示例:
import pymysql
conn = pymysql.connect(
    host="<Aurora集群访问端点>",
    user="<数据库用户名>",
    password="<数据库密码>",
    database="<数据库名称>",
    ssl={"ca": "/etc/ssl/certs/rds-global-bundle.pem"}
)
  • Node.js mysql2驱动连接示例:
const mysql = require('mysql2');
const conn = mysql.createConnection({
  host: '<Aurora集群访问端点>',
  user: '<数据库用户名>',
  password: '<数据库密码>',
  database: '<数据库名称>',
  ssl: {
    ca: fs.readFileSync('/etc/ssl/certs/rds-global-bundle.pem')
  }
});
注意事项
  • 提前确认网络连通性:EKS Pod所在安全组需要放通到Aurora安全组3306端口的出方向规则,Aurora安全组需要放通EKS Pod CIDR段3306端口的入方向规则
  • 生产环境必须开启verifyServerCertificate参数,避免中间人攻击;仅测试场景可临时关闭该参数跳过证书校验
  • 证书到期更新时,只需更新对应Secret内容后滚动重启应用即可,无需修改应用镜像

内容的提问来源于stack exchange,提问作者Pracheer Pancholi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 22:51:02