【问题标题】:How can I confirm my AWS MySQL connection is secure?如何确认我的 AWS MySQL 连接是安全的?
【发布时间】:2019-10-15 20:36:46
【问题描述】:

我正在从在 Express 上运行 NodeJS 的单独 AWS EC2 服务器连接到 AWS 上托管的 MySQL 实例。

这是我的连接设置:

var connection = mysql.createConnection({
    host: '<mydatabase>.rds.amazonaws.com',
    user: '<user>',
    password: '<password>',
    database: '<db_name>',
    ssl: 'Amazon RDS',
});

我使用node db_test.js 运行该文件,它返回一个SQL 查询就好了。如何验证它是否正在使用 ssl: 'Amazon RDS' 行并且它实际上是安全的?

【问题讨论】:

    标签: mysql node.js ssl amazon-rds


    【解决方案1】:

    使用这个查询:

    let sql= "show status like 'Ssl_version'";
    

    并检查输出

    connection.query(sql, function (err, result) {})
    

    官方文档说

    SSL 选项

    连接选项中的 ssl 选项采用字符串或对象。 当给定一个字符串时,它使用包含的预定义 SSL 配置文件之一。包括以下配置文件: - “Amazon RDS”:此配置文件用于连接到 Amazon RDS 服务器,包含来自 https://rds.amazonaws.com/doc/rds-ssl-ca-cert.pemhttps://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem 的证书

    所以,我认为你不能使用ssl:{rejectUnauthorized:true}

    但是你总是可以设置这个process.env.NODE_TLS_REJECT_UNAUTHORIZED = 1。它做同样的事情。因此,当您设置此选项时,如果您提供无效的 rds SSL 配置文件并且将无法连接到数据库,您将收到 TLS 授权错误

    您也可以阅读以下内容: https://medium.com/soluto-nashville/best-security-practices-for-amazon-rds-with-sequelize-600a8b497804

    【讨论】:

      猜你喜欢
      • 2013-11-08
      • 2014-03-22
      • 2013-12-10
      • 2017-09-26
      • 1970-01-01
      • 1970-01-01
      • 2012-09-09
      • 2015-03-01
      • 2013-12-25
      相关资源
      最近更新 更多