使用 IAM 角色允许访问 RDS 上的 MySQL 数据库

Using IAM Role to allow access to MySQL database on RDS

我的项目有一个 IAM 角色 myRole。我有一个 RDS 服务器,上面有一个 MySQL 实例。 MySQL 实例需要用户名和密码,但是我不想通过命令行将它们作为纯文本传递,也不想将它们存储在某个地方以供以后检索。

我想做的是以某种方式使用 IAM 角色作为身份验证,以便能够执行备份等。

这可能吗?

这是不可能的。 IAM 用于 AWS 资源。与 RDS 相关,您可以使用 IAM 授予某人创建或修改 RDS 服务器的权限。 MySQL 数据库引擎不知道它在 AWS 上是 运行 并且对 IAM 角色一无所知,因此它不能将其用于用户身份验证。您必须坚持使用 username/passwords 才能对数据库进行身份验证。

2017 年 12 月 13 日更新: You can now use IAM authentication for RDS MySQL and Aurora

现在可以用于 MySQL 或 Amazon Aurora:

http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html

请参阅此要点,其中包含代码示例和有关使用 IAM 通过 PHP 向 Amazon Aurora 验证 MySQL 的说明:

https://gist.github.com/sators/38dbe25f655f1c783cb2c49e9873d58a