使用IM策略的AWS RDS可以从另一个用户连接。

时间:2018-02-15 18:05:25

标签: mysql amazon-web-services rds

我在AWS上创建了一个MysQL RDS实例。 我可以使用我自己的用户连接到MysQL,用户是创建实例的用户:

mysql -h aws-host -P 3306 -u MyUser -p

我需要让已经在AWS上注册的其他用户访问Mysql。

手动:https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.DBAccounts.html

用户创建正在运行,但是当我从用户注销并尝试再次使用新用户进行日志记录时,它无效。

由于身份验证插件错误,我遇到了用户无法连接到Mysql的问题。

命令:

mysql -h aws-host -P 3306 -u newUser -p

当我输入密码时,我得到了:

Error: ERROR 2059 (HY000): Authentication plugin 'mysql_clear_password' cannot be loaded: plugin not enabled

密码是正确的,因为它是我用来登录aws的那个用户并启用了IAM DB身份验证,我认为IM和RDS应该共享密码或者我做错了什么?

2 个答案:

答案 0 :(得分:1)

问题的原因是数据库身份验证令牌和连接字符串中缺少SSL。使用IAM数据库身份验证时,使用安全套接字层(SSL)

加密进出数据库的网络流量

使用“generate-db-auth-token”生成数据库身份验证令牌 SSL要求使用可用的根证书here。一旦文件在计算机上可用,就可以使用以下语法进行身份验证:

RDSHOST="myinstance.***********.rds-us-east-1.amazonaws.com"
TOKEN="$(aws rds generate-db-auth-token --hostname $RDSHOST --port 3306 --username test )"
mysql --host=$RDSHOST --port=3306 --enable-cleartext-plugin --ssl-ca=[full path]rds-combined-ca-bundle.pem --ssl-mode=VERIFY_IDENTITY --user=test --password=$TOKEN

以下是connecting to MySQL Database with IAM DB Authentication

的官方文档

答案 1 :(得分:0)

就我而言,我必须从mysqlworkbench的SSL选项卡下将SSL要求更改为no,然后它就消失了。