相关疑难解决方法(0)

使用 IAM 设置 RDS (MySQL) 数据库访问以生成访问令牌

mysql-client我已按照说明设置 AWS 和 MySQL,这样我应该能够使用用户(名为)登录 mysql,aws_iam无需密码,但使用附加awscli到我的 EC2 实例的角色生成的令牌。

说明在这里

所以我所拥有的是:

  • 具有允许我生成 RDS 凭证的角色的 EC2 实例
  • 运行 MySQL 的 RDS 实例,其用户aws_iam标识为AWSAuthenticationPlugin
  • 通过 SSH 登录 EC2 实例后,我可以运行mysql -h mydb.randomstring.region.rds.amazonaws.com -u root -p并输入 RDS 设置中的主密码来获取 mysql shell。
  • 此外,当通过 SSH 登录到 EC2 实例时,我可以运行aws rds generate-db-auth-token --hostname mydb.randomstring.region.rds.amazonaws.com --port 3306 --username aws_iam,并且在运行时我会得到一个如下所示的令牌:

mydb.randomstring.region.rds.amazon.aws.com:port-number/?Action=connect&DBUser=aws_iam&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=900&X-Amz-Date=current_time&X-Amz-SignedHeaders=host&X-Amz-Security-Token=really-long-url-encoded-string&X-Amz-Credential=string/region/rds-db/aws4_request&X-Amz-Signature=long-hash

然后我运行连接命令:

mysql -h mydb.randomstring.region.rds.amazonaws.com --ssl-ca=rds-ca-2015-eu-west-1.pem --ssl-mode=VERIFY_IDENTITY -u aws_iam --enable-cleartext-plugin --password=TOKEN
Run Code Online (Sandbox Code Playgroud)

但后来我就得到了

ERROR 1045 (28000): Access denied for user 'aws_iam'@IP (using …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services amazon-rds amazon-iam

5
推荐指数
1
解决办法
2930
查看次数