使用 亚马逊云科技 Secrets Manager 提高亚马逊 RDS 主数据库证书的安全性

亚马逊关系数据库服务 (Amazon RDS) 使在 亚马逊云科技 云中设置、操作和扩展关系数据库变得更加简单。 亚马逊云科技 Secrets Manager 可帮助您管理、检索和轮换数据库证书、API 密钥和其他密钥。

Amazon RDS 现在提供与密钥管理器的集成,用于管理主数据库证书。您不再需要管理主数据库证书,例如在 Secrets Manager 中创建密钥或设置轮换,因为 Amazon RDS 会为您完成。

在这篇博客文章中,您将学习如何设置 Amazon RDS 数据库实例以及如何使用 Secrets Manager 集成来管理主数据库证书。您还将学习如何为应用程序证书设置交替用户轮换。

整合的好处

使用密钥管理器管理 Amazon RDS 主数据库证书具有以下好处:

  • Amazon RDS 会自动生成并帮助保护主数据库证书,因此您无需承担安全管理证书的繁重工作。
  • Amazon RDS 在密钥管理器中自动存储和管理数据库证书。
  • Amazon RDS 定期轮换数据库凭证,无需更改应用程序。
  • Secrets Manager 有助于保护数据库凭证免受人工访问和纯文本视图的侵害。
  • 密钥管理器允许使用其 API 或控制台检索数据库凭据。
  • Secrets Manager 允许使用 亚马逊云科技 身份和访问管理 (IAM) 对密钥中数据库凭证的访问 进行精细控制。
  • 您可以使用不同的 亚马逊云科技 密 钥管理服务 (亚马逊云科技 KM S) 密钥 将数据库加密与凭证加密区分开。
  • 您可以使用 亚马逊云科技 CloudTrail 和 亚马 逊 CloudWatch 监控对数据库证书的访问。

草率排练

在这篇博客文章中,我们将向您展示如何使用控制台执行以下操作:

  • 在密钥管理器中管理新 Amazon RDS 实例的主数据库证书。我们将使用 MySQL 引擎,但您也可以将此过程用于其他 Amazon RDS 数据库引擎。
  • 使用托管主数据库密钥为新数据库用户设置交替用户轮换。

在密钥管理器中管理 Amazon RDS 主数据库证书

在本节中,您将创建一个集成 Secrets Manager 的数据库实例。

要在密钥管理器中管理 Amazon RDS 主数据库证书,请:

  1. 打开 Amazon RDS 控制台 并选择 创建数据库
  2. 对于 选择数据库创建方法 ,选择 标准创建
  3. 引擎选项 中 ,对于 引擎类型 ,选择 MySQL
  4. 设置 中的 证书设置 下 ,选择在 亚马逊云科技 Secrets Manager 中 管理主证书
    Figure 1: Select Secrets Manager integration

    图 1:选择密钥管理器集成

  5. 您可以选择加密托管主数据库凭据。在此示例中,我们将使用默认 KMS 密钥。
    Figure 2: Choose KMS key

    图 2:选择 KMS 密钥

  6. (可选)选择其他设置以满足您的要求。有关更多信息,请参阅 数据库实例的 设置
  7. 选择 “ 创建数据库 ” ,然后等待几分钟以创建数据库。
  8. 创建数据库后,从 Amazon RDS 控制台的 实例 控制 面板导航到您的新 Amazon RDS 实例。
  9. 选择 “ 配置 ” 选项卡,在 “ 主证书 ARN ” 下 ,您将找到包含您的主数据库凭据的密钥。

使用主数据库凭据创建新的数据库用户

在本节中,您将学习如何创建和保护可在应用程序中用于连接数据库的证书。您将学习如何访问主数据库凭证以及如何使用主数据库凭据创建和设置子(应用程序)证书的轮换。

使用主数据库凭据创建新的数据库用户

  1. 按如下方式从 Secrets Manager 中检索主数据库凭据:
    1. 选择 RDS 实例仪表板的 “ 配置 ” 选项卡,然后在 “ 主证书 ARN ” 下选择 “ 在密钥 管理器 中管理 ” ,在 Secrets Manager 中打开您的托管主数据库密钥。
      Figure 3: View DB configuration

      图 3:查看数据库配置

    2. 您可以看到,Amazon RDS 已向密钥添加了一些系统标签,并且默认情况下轮换处于开启状态。
      Figure 4: View secret details

      图 4:查看密钥详细信息

    3. 要查看密码,请在 “ 机密值 ” 部分,选择 “ 检索机密值 ” 。

    注意 : 如果您的应用程序拥有 IAM 读取密钥的权限,则可以使用 A W S 命令行接口 ( 亚马逊云科技 CLI) 或 亚马逊云科技 开发工具包 检索这些证书。

  2. MySQL Workbench 中 ,使用您刚刚从密钥中检索到的证书,以主数据库的身份登录到您的 Amazon RDS 数据库。有关更多信息,请参阅 连接到运行 MySQL 数据库引擎的数据库实例
  3. 对于主数据库,通过运行以下 SQL 命令创建具有所需权限的新数据库用户。请务必 使用自己的信息进行替换,并确保使用强密码。

    创建用户 “child'@'%”,标识者为;

有关创建用户的更多信息,请参阅 MySQL 文档

为新数据库用户设置交替用户轮换

在本节中,您将学习如何使用主数据库凭据为应用程序证书设置多用户轮换。

设置交替用户轮换

  1. 密钥管理器控制台 密钥 下 ,选择 存储新密钥
  2. 对于 密钥类型 ,选择 Amazon RDS 数据库的 证书
  3. 凭据 部分中,输入新数据库用户的用户名和密码。
  4. 数据库 部分中,选择您的 Amazon RDS 实例,然后选择 下一步 ,如图 5 所示。
    Figure 5: Select the RDS instance

    图 5:选择 RDS 实例

  5. 配置密钥 页面上,为密钥命名和描述。无需其他配置。
  6. 在 “ 配置旋转-可选 ” 页面上,打开 “ 自动旋转 ” 。
    Figure 6: Select automatic rotation

    图 6:选择自动旋转

  7. 轮换时间表 部分中,根据需要配置轮换时间表。
  8. 旋转函数 部分中,执行以下操作:
    1. 为将要创建的 Lambda 函数 输入描述性名称。
    2. 对于 “ 使用单独的证书轮换此密钥 ” ,选择 “ ” 。
    3. 对于 密钥 ,选择由 Amazon RDS 创建的主数据库密钥。

      注意 :要找到您的主数据库密钥的名称,请在 Amazon RDS 控制台的 Amazon RDS 实例详细信息页面上,选择 配置 选项卡,然后查看 主证书 ARN

    Figure 7: Select separate credentials for rotation

    图 7:为轮换选择单独的证书

  9. 选择 “ 下一步 ” ,然后在 “ 评论 ” 页面上选择 “ 存储 ” 。

在新的数据库用户密钥准备好轮换之前,Secrets Manager 工作流程需要几分钟时间来设置轮换 Lambda 函数。

检查旋转是否已启用

  1. 在密钥管理器控制台中,导航到新的数据库用户密钥。
    Figure 8: View the child secret

    图 8:查看子密钥

  2. 在 “ 旋转配置” 部分 中 ,验证 旋转状态 是否 为 “ 启用”
    Figure 9: Verify the rotation status

    图 9:验证旋转状态

有关此过程的更多详细信息和疑难解答,请参阅 为 亚马逊云科技 Secrets Manager 设置交替用户轮换

清理资源

通过删除 Amazon RDS 实例,您将自动清理托管的主数据库凭证密钥。

删除亚马逊 RDS 实例

  1. 打开 亚马逊 RDS 控制台
  2. 在导航窗格中,选择 数据库 , 然后选择要修改的数据库集群。
  3. 选择 “ 操作 ” ,然后选择 “ 修改集群 ” 。
  4. 选择 “ 禁用删除保护 ” ,然后选择 “ 继续 ” 。
  5. 选择 “ 立即 应用 ” 。
  6. 从 “ 操作 ” 下拉列表中,选择 “ 删除 ” 。
  7. (可选)使用菜单创建 Amazon RDS 实例的最终快照或自动备份。
    Figure 10: Create snapshots and backups

    图 10:创建快照和备份

  8. 当你准备好后,输入 delete me

有关更多信息,请参阅 删除数据库实例

清理新数据库用户密钥上的交替用户轮换

  1. 密钥管理器控制台 中 ,打开新的数据库用户密钥。
    Figure 11: Select child secret

    图 11:选择子密钥

  2. 旋转配置 部分中,选择 Lambda 旋转功能。
    Figure 12: View the rotation function

    图 12:查看旋转函数

  3. 在 Lambda 控制台的 应用程序 下 ,选择应用程序。
    Figure 13: Open application

    图 13:打开应用程序

  4. 在 “部 ” 选项卡上,选择 CloudFormation 堆栈
  5. 选择 “ 删除 ”, 然后按照 “ 删除 ” 菜单步骤操作。您可能需要导航到根堆栈,然后 再次选择 “ 删除 ”。您可能还需要禁用堆栈的终止保护。控制台将引导您完成此操作。
    Figure 14: Choose delete

    图 14:选择删除

  6. 现在您已经清理了新数据库用户密钥的轮换,您需要删除子密钥。导航到密钥管理器控制台,然后选择要删除的密钥。
  7. 操作 下 拉列表中,选择 删除密钥 以删除密钥。
    Figure 15: Delete child secret

    图 15:删除子密钥

摘要

Amazon RDS 与 Secrets Manager 的集成可帮助您更好地保护和管理主数据库证书。这种集成可帮助您在创建数据库实例时存储证书,并省去设置凭证轮换的麻烦。

在这篇博客文章中,你学习了如何执行以下操作:

  1. 设置使用密钥管理器存储主数据库证书的 Amazon RDS 实例
  2. 在 Secrets Manager 中查看证书并确认轮换已设置
  3. 使用主数据库凭据创建数据库用户凭证
  4. 在数据库用户凭证上设置交替用户轮换

其他资源

有关如何为其他 Amazon RDS 引擎类型创建数据库用户的说明,请参阅以下资源:

  • PostgreSQ
  • MariaDB
  • 微软 SQL 服务器
  • 甲骨文
  • 密钥管理器 JDBC 库


如果您对这篇文章有反馈,请在下面的 评论 部分提交评论。如果您对这篇文章有疑问, 请联系 亚马逊云科技 Support

想了解更多 亚马逊云科技 安全新闻?在 推特 上关注我们 。

Vinod Santhanam

Vinod Santhanam

Vinod 是 亚马逊云科技 的高级技术项目经理。他在设计和开发软件方面拥有超过17年的经验。他目前与其他 亚马逊云科技 平台团队合作,为客户构建安全功能。工作之余,他喜欢骑自行车,探索太平洋西北地区美丽的步道和山脉。

Adithya Solai

Adithya Solai

Adithya 是一名软件开发工程师,正在为 亚马逊云科技 Secrets Manager 开发核心后端功能。他毕业于马里兰大学帕克分校,获得计算机科学学士学位。他热衷于教育领域的社会工作。他喜欢阅读、国际象棋和嘻哈/R&B 音乐。


*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您发展海外业务和/或了解行业前沿技术选择推荐该服务。