【问题标题】:Unable to Connect to RDS Instance with IAM Auth via mysql CLI Tool无法通过 mysql CLI 工具使用 IAM Auth 连接到 RDS 实例
【发布时间】:2018-03-31 13:28:48
【问题描述】:

这是我迄今为止所取得的成就:

1) 我创建了一个属于 AdministratorAccess 组的 AWS IAM 用户。此外,我为该用户创建并附加了一个策略,以允许访问 RDS 实例。政策如下:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "rds-db:connect"
            ],
            "Resource": [
                "arn:aws:rds:<region>:<account id>:<user>:<DB instance resource id>/<DB instance user>"
            ]
        }
    ]
}

此政策源自 AWS 文档中的一个示例:Creating and Using an IAM Policy for IAM Database Access

但是,在创建策略后,我收到以下错误:

我环顾四周,但不知道如何解决这些错误。

2) 我创建了一个启用了 IAM 数据库身份验证的 RDS 实例。在此之后,我向实例的安全组添加了一条规则,允许我的笔记本电脑连接到数据库实例。

3) 最后,按照“Command Line: AWS CLI and mysql Client”中的说明,我创建了一个脚本,用于从我的笔记本电脑连接到数据库。脚本如下:

#!/bin/bash

USERNAME="<IAM user>"

CERTIFICATE="<full path>/rds-combined-ca-bundle.pem"

RDSHOST="<RDS instance Endpoint>"

TOKEN="$(aws rds generate-db-auth-token --hostname $RDSHOST --port 3306 --region us-west-2 --username $USERNAME)"

mysql --host=$RDSHOST --port=3306 --ssl-ca=$CERTIFICATE --enable-cleartext-plugin --user=$USERNAME --password=$TOKEN

当我运行脚本时,我收到以下错误:

ERROR 1045 (28000): Access denied for user '<IAM user>'@'c-73-227-21-39.hsd1.ct.comcast.net' (using password: YES)

看来问题可能是由于我创建的策略中的错误,但我无法弄清楚。我将不胜感激有关此问题的一些建议/帮助。

【问题讨论】:

    标签: mysql amazon-web-services


    【解决方案1】:

    您需要创建一个数据库用户。 Creating a Database Account 并且用户名应该是 DB 用户,而不是 IAM 用户

    CREATE USER jane_doe IDENTIFIED WITH AWSAuthenticationPlugin AS 'RDS'; 
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-08
    • 2020-06-27
    • 1970-01-01
    • 2013-05-05
    • 1970-01-01
    • 1970-01-01
    • 2020-11-26
    相关资源
    最近更新 更多