【问题标题】:IAM Database Authentication - How to use CLI generated TokenIAM 数据库身份验证 - 如何使用 CLI 生成的令牌
【发布时间】:2017-09-20 23:13:01
【问题描述】:

我正在关注http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html,以便从 EC2 向 RDS 进行身份验证。我可以运行generate-db-auth-token 命令来检索令牌,但我不确定之后该怎么处理(指令莫名其妙地结束了)。

我尝试简单地将反刍字符串(以及返回字段的逻辑子字符串)作为 mysql 客户端连接的密码传递,但这似乎不起作用..

返回的token格式如下:{instance identifier}.{region}.rds.amazonaws.com:3306/?Action=connect&DBUser={auth db username}&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=900&X-Amz-Date=20170622T221608Z&X-Amz-SignedHeaders=host&X-Amz-Security-Token={super long, web-escaped string containing special characters}&X-Amz-Credential={some shorter, web-escaped string containing special characters}&X-Amz-Signature={some long string of alphanumeric characters}

非常感谢任何帮助。

【问题讨论】:

标签: mysql amazon-web-services amazon-ec2 amazon-rds amazon-iam


【解决方案1】:

我有同样的问题,我正在使用 php 应用程序并尝试使用 CLI 在添加代码修改之前确保它正常工作。

我找到了这种方式,但我仍然收到“拒绝访问”,也许它对你有用:

$ mysql -u iam_user -h iamtest.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com \
--password=`aws rds generate-db-auth-token --hostname iamtest.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com \
--端口 3306 \
--用户名 iam_user \
--region ap-northeast-1`\
--ssl-ca=/用户/hoge/rds-combined-ca-bundle.pem \
--enable-cleartext-plugin

更新: 现在这对我有用,我在角色政策方面遇到了另一个问题。

【讨论】:

  • 看起来这行得通!我正在设置一个环境变量来尝试启用明文插件,但我认为它不起作用。感谢您的帮助!
  • @safaa-selim 您还记得您的 IAM 角色策略存在什么问题吗?我仍然看到拒绝访问错误。
【解决方案2】:

为上面提供的答案添加更多内容(谢谢 Safaa Selim)

第 1 步:从 http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html 获取证书(证书链接 https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem

第 2 步:使用 RDS 上的 root 帐户将用户添加到数据库 (http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html) 使用 AWSAuthenticationPlugin 创建用户 mydbuser 标识为“RDS”;

第 3 步:确保您拥有 ~/.aws/credentials 和 ~/.aws/profile 以及 mydbuser

第 4 步:将策略附加到来自 http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html 的用户/角色

{ “版本”:“2012-10-17”, “陈述”: [ { “效果”:“允许”, “行动”: [ “rds-db:连接” ], “资源”:[ “arn:aws:rds-db:us-west-2:12345678:dbuser:*/mydbuser” ] } ] }

第 4 步:

mysql -u mydbuser -h dbinstance.us-west-2.rds.amazonaws.com --password=`aws --profile=mydbuser rds generate-db-auth-token --hostname dbinstance.us-west- 2.rds.amazonaws.com --port 3306 --region us-west-2 --username mydbuser` --ssl-ca=/path/to/rds-combined-ca-bundle.pem --enable-cleartext-插件

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-23
    • 1970-01-01
    • 2018-03-05
    • 2015-10-24
    • 1970-01-01
    • 1970-01-01
    • 2015-03-01
    • 1970-01-01
    相关资源
    最近更新 更多