通过RDS代理连接到现有的Amazon RDS MySQL数据库-2
#mysql #rds #ec2 #vpc

这是在 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。

使用的资源:

AWS Secrets Manager

IAM Roles

该项目实施的步骤:

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.

  • 复制此值,如稍后在本教程中需要的那样。

Image description

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

  • 转到上一个窗口

Image description

  • Next

  • 选择角色,然后选择“刷新”。

Image description

  • Next

  • 角色 - 名称----> rds-role

  • 审查部分,给您的角色姓名和描述,以便您以后可以轻松找到它。

  • 然后,选择创建角色。

  • 确认策略角色

Image description

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身份验证。)
  • 在连接部分中,执行以下操作:

    • 清除要求运输层安全复选框。
    • 对于子网,请在不同的可用性区域中选择至少两个子网。
    • 扩展额外的连接配置,对于VPC安全组,请为安全组选择现有的 rds-sg
  • 在“高级配置”部分中,保持激活选择以进行增强记录。

  • 选择创建代理。

  • 您将在创建 rds-proxy 时看到此消息。

    • 创建RDS代理 rds-proxy 数据库 database-1 。您的代理可能需要长达20分钟才能创建和可用。已创建了一个秘密经理和IAM策略,该策略已创建了供代理使用的秘密。要查看这些资源,请检查代理的详细信息页面。
  • 等待代理状态从创建变为可用,然后选择代理。

  • 代理配置部分,记下代理端点,并确认所有其他参数都是正确的。

rds-proxy端点

rds-proxy.proxy-cgizjtuyxkda.us-east-1.rds.amazonaws.com

Image description

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数据库。