2017-06-22 83 views
4

我正在关注http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html以便从EC2到RDS进行身份验证。我能够运行generate-db-auth-token命令来检索令牌,但我不确定该如何处理它(指令莫名其妙地结束)。IAM数据库身份验证 - 如何使用CLI生成的令牌

我试图简单地传递反刍字符串(以及返回的字段的逻辑子)作为mysql客户端连接的密码,但是这似乎并没有工作..

返回令牌是在以下形式:{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}

任何帮助,非常感谢。

+0

在http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS上的Java连接示例是否不足.IAMDB Auth.html#UsingWithRDS.IAMDBAuth.Connecting? – jarmod

+0

这对java来说可能就足够了:)。我正在使用CLI,并希望用户指南在获得该令牌后解释如何处理令牌。 –

回答

3

我有同样的问题,我正在使用一个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 \ 
--port 3306 \ 
--username iam_user \ 
--region ap-northeast-1` \ 
--ssl-ca=/Users/hoge/rds-combined-ca-bundle.pem \ 
--enable-cleartext-plugin

更新: 这是现在的工作对我来说,我有作用的政策的另一个问题。

+0

看起来像这样的作品!我设置了一个环境变量来尝试启用明文插件,但我认为它没有工作。谢谢您的帮助! –

+1

@ safaa-selim您是否记得您的IAM角色策略存在什么问题?我仍然看到拒绝访问错误。 – PlagueHammer

2

添加更多回答上面提供(谢谢SAFAA塞利姆)

步骤1:http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html(CERT链接https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem

第2步获取证书:使用在RDS root帐户添加用户DB() CREATE USER mydbuser IDENTIFIED WITH AWSAuthenticationPlugin as'RDS';

步骤3:请确保您有〜/ .aws /凭证和〜/ .aws /轮廓与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-plugin

相关问题