AWS RDS - IAM身份验证的含义?

时间:2017-07-05 10:46:56

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

我正在设置AWS RDS群集,我正在研究如何使用凭据连接到群集。这些选项似乎是通过用户名/密码,或者使用IAM并使用15分钟令牌。

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

提供给EC2的IAM实例角色也可以指定允许连接到群集,所以这看起来很不错,我想在这种情况下不需要令牌。

在这种情况下是否有人使用IAM,或者通常的用户/ pw更简单?文档指出,在使用IAM时,您应该将连接限制为每秒20或更低。我很难评估这个是低还是低。任何人都知道IAM身份验证对AWS RDS的性能影响吗?

1 个答案:

答案 0 :(得分:0)

准备EC2实例

安装以下软件包和命令

yum install curl mysql -y
service mysqld start
chkconfig mysqld on

设置数据库以使用IAM

# Connect to DB
RDS_HOST="db-with-iam-support.ct5b4uz1gops.eu-central-1.rds.amazonaws.com"
REGION="eu-central-1"
# mysql -h {database or cluster endpoint} -P {port number database is listening on} -u {master db username} -p
mysql -h ${RDS_HOST} -P 3306 -u dbuser -p

运行此命令以创建将使用AWS身份验证令牌而非密码的数据库用户帐户:

CREATE USER 'db_iam_user' IDENTIFIED WITH AWSAuthenticationPlugin as 'RDS';

(可选)运行此命令以要求用户使用SSL连接到数据库:此处了解详情

GRANT USAGE ON *.* TO 'db_iam_user'@'%'REQUIRE SSL;

运行“退出”命令以关闭MySQL

IAM内联政策

允许用户访问数据库的内联策略,相应地更改数据库信息

{
    "Version": "2012-10-17",
    "Statement": [
       {
          "Effect": "Allow",
          "Action": [
              "rds-db:connect"
          ],
          "Resource": [
              "arn:aws:rds-db:eu-central-1:111111111111:dbuser:db-RWXD2T7YIWZU4VI2FBHSM2GE24/db_iam_user"
          ]
       }
    ]
}

下载SSL证书 下载AWS RDS证书pem文件,

mkdir -p /var/mysql-certs/
cd /var/mysql-certs/
curl -O https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem

生成AWS身份验证令牌

身份验证令牌由数百个字符组成。在命令行上可能很笨拙。解决此问题的一种方法是将令牌保存到环境变量,然后在连接时使用该变量。

TOKEN="$(aws rds generate-db-auth-token --hostname ${RDS_HOST} --port 3306 --region ${REGION} --username db_iam_user)"

连接到数据库

mysql --host="${RDS_HOST}" \
      --port=3306 \
      --user=db_iam_user \
      --ssl-ca=/var/mysql-certs/rds-combined-ca-bundle.pem \
      --ssl-verify-server-cert \
      --enable-cleartext-plugin \
      --password="$TOKEN

参考:https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.IAMPolicy.html

https://aws.amazon.com/premiumsupport/knowledge-center/users-connect-rds-iam/

相关问题