这是在 my 1st article 的延续中,我们通过EC2实例创建并连接到Amazon RDS MySQL数据库。
在本文中,我将向您展示如何创建RDS代理并将其连接到已经存在的Amazon RDS MySQL数据库。
请访问我的 GitHub Repository for Aurora articles 有关各种主题的不断更新。
让我们开始!
目标:
6。在AWS Secrets Manager中存储数据库凭据
7。创建IAM角色和政策
8。创建RDS代理
9。通过RDS代理连接到RDS数据库
10。清理
先决条件:
- AWS用户帐户带有管理员访问,而不是根帐户。
- Cloud9 IDE与AWS CLI。
使用的资源:
该项目实施的步骤:
6.将数据库凭据存储在AWS Secrets Manager中
- RDS代理通过存储在AWS Secrets Manager中的秘密访问数据库。
-
这些秘密不过是数据库用户凭据,例如用户名和密码。
-
转到AWS管理控制台的秘密经理部分,然后选择
Store a new secret.
-
在“选择秘密类型”框中,选择RDS数据库的凭据。
-
然后,键入创建RDS数据库时使用的
user name and password
。 -
选择相应的RDS数据库 -
database-1
以访问秘诀。 -
选择下一步。
-
秘密名称 -
rdssecret
和描述部分,给您的秘密一个名称和描述,以便您以后可以轻松找到它。 -
然后,选择下一步。
-
选择禁用自动旋转选项,
-
然后选择下一步。
-
Secrets Manager控制台显示您的秘密配置设置以及一些示例代码,这些示例代码演示了如何使用您的秘密。
-
滚动到页面底部,然后选择存储到
保存您的秘密。 -
创建秘密后,秘密管理器页面将显示您创建的秘密。
-
选择您的
rdssecret
。 -
在秘密详细信息框中,它显示
ARN of your secret.
-
复制此值,如稍后在本教程中需要的那样。
7.创建IAM角色和政策
-
通过随附的政策,RDS代理访问您在AWS Secrets Manager中创建的秘密。
-
创建角色
-
选择您的用例,
-
选择RDS-将角色添加到数据库,
-
选择下一步:
-
添加权限
-
创建策略
-
创建策略并选择“ JSON”选项卡。
-
删除现有的策略语句。
-
将您的秘密ARN值替换为下面列出的示例。 - 然后,选择审查策略。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"secretsmanager:GetRandomPassword",
"secretsmanager:CreateSecret",
"secretsmanager:ListSecrets"
],
"Resource": "*"
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": "secretsmanager:*",
"Resource": [
"your_secret_ARN"
]
}
]
}
-
审查策略部分,给您的策略名称
rds-policy
和描述,以便您以后可以轻松找到它。 -
然后,选择创建策略。
-
接下来,下一步 - 评论
-
名称
rds-policy
-
转到上一个窗口
-
Next
-
选择角色,然后选择“刷新”。
-
Next
-
角色 - 名称---->
rds-role
-
审查部分,给您的角色姓名和描述,以便您以后可以轻松找到它。
-
然后,选择创建角色。
-
确认策略角色
8.创建RDS代理
- 转到RDS控制台。在RDS导航窗格中,选择代理,
-
然后创建代理。
-
在“代理配置”部分中,执行以下操作:
- 对于代理标识符,给代理一个名称 -
rds-proxy
- 将空闲客户连接超时留作30分钟。
- 目标组配置部分,对于数据库,选择RDS mysql db实例 -
database -1
(此RDS db实例与您在步骤5中验证的连接相同的实例。) )
- 对于连接池最大连接,请保持默认值100。
- 对于代理标识符,给代理一个名称 -
-
在身份验证部分中,执行以下操作:
- 对于Secrets Manager Secret,请选择您在步骤6中创建的秘密。-
rdssecret
- 对于IAM角色,请选择您在步骤7中创建的角色。RDS-lole
- 对于IAM身份验证,请保持--->不允许的默认设置(本教程使用DB凭据与RDS代理连接,因此不使用IAM身份验证。)
- 对于Secrets Manager Secret,请选择您在步骤6中创建的秘密。-
-
在连接部分中,执行以下操作:
- 清除要求运输层安全复选框。
- 对于子网,请在不同的可用性区域中选择至少两个子网。
- 扩展额外的连接配置,对于VPC安全组,请为安全组选择现有的
rds-sg
。
-
在“高级配置”部分中,保持激活选择以进行增强记录。
-
选择创建代理。
-
您将在创建
rds-proxy
时看到此消息。- 创建RDS代理
rds-proxy
数据库database-1
。您的代理可能需要长达20分钟才能创建和可用。已创建了一个秘密经理和IAM策略,该策略已创建了供代理使用的秘密。要查看这些资源,请检查代理的详细信息页面。
- 创建RDS代理
-
等待代理状态从创建变为可用,然后选择代理。
-
代理配置部分,记下代理端点,并确认所有其他参数都是正确的。
rds-proxy端点
rds-proxy.proxy-cgizjtuyxkda.us-east-1.rds.amazonaws.com
9.通过RDS代理连接到RDS数据库
-
在EC2控制台上,选择
myec2
实例 -
选择连接。
-
或ssh进入
myec2
sudo su
yum install mysql
mysql -h <proxy endpoint> -P 3306 --user=admin --password
mysql -h rds-proxy.proxy-cgizjtuyxkda.us-east-1.rds.amazonaws.com -P 3306 --user=admin --password
-
提示时,输入密码,然后按Enter。
-
一条消息显示您已成功连接到RDS DB实例。
10.清理
-
删除RDS代理
-
删除秘密
-
删除IAM角色和策略
-
删除其他资源,例如EC2实例,RDS实例和相应的安全组
到目前为止我们所做的
- 我们已经成功证明了通过RDS代理连接到现有的Amazon RDS MySQL数据库。