文档首页/ 云应用引擎 CAE/ 最佳实践/ 通过事件网格(EG)实现端到端RDS凭证自动轮转
更新时间:2025-05-28 GMT+08:00
分享

通过事件网格(EG)实现端到端RDS凭证自动轮转

背景信息

在数字化业务持续演进的当下,数据库作为企业核心数据的存储与管理中枢,其安全性面临日益严峻的挑战。传统静态数据库密码管理方式存在诸多隐患,一旦密码泄露,可能引发数据泄露、恶意篡改等严重安全事故。为提升数据库安全防护能力,动态凭证轮转机制应运而生,它通过定期更换数据库密码,有效降低密码被破解的风险,成为保障数据库安全的重要手段。

华为云数据加密服务(DEW)具备对云数据库(RDS)凭证进行定期轮转和修改的能力,能够实时将修改后的凭证更新至RDS实例,极大增强了数据库密码的安全性。然而,云应用引擎(CAE)作为数据库客户端,在RDS凭证更新后,无法自动感知这一变化,导致其无法及时更新凭证信息,进而无法建立新的数据库连接,影响业务的正常运行。这一矛盾使得RDS凭证轮转机制在实际应用中难以实现端到端的自动化,成为制约数据库安全防护体系高效运作的瓶颈。

解决方案

为打破上述困局,充分发挥RDS凭证轮转的安全效能,华为云构建了以事件网格(EG)为核心的端到端RDS凭证自动轮转解决方案。该方案基于华为云各服务间的协同运作,形成完整的凭证更新与同步闭环。

本章节将详细介绍如何通过EG实现端到端的RDS凭证自动轮转流程。

  1. 步骤一:使用DEW服务创建事件通知,再创建凭据并绑定事件通知

    DEW依据预设的安全策略,定期对RDS凭证进行轮转与修改,并将更新后的凭证实时同步至RDS实例。

  2. 步骤二:使用EG服务创建事件通道,再创建事件订阅

    DEW通过事件网格(EG)发送凭证更新事件通知,将RDS实例ID、新凭证版本号等关键信息推送至EG主题。

    EG作为事件路由中枢,按照预先配置的订阅规则,识别并筛选出与RDS凭证更新相关的事件,将其路由至云应用引擎(CAE)的指定接收端点。

  3. 步骤三:使用CAE服务创建凭据

    CAE接收到EG发送的事件通知后,立即启动凭证更新流程。通过解析事件中的凭证信息,CAE将新凭证注入到相关组件的配置中,并触发组件重启或连接池刷新操作,实现使用新凭证建立与RDS的数据库连接。

  4. (可选)步骤四:使用AOM服务创建告警通知规则,再创建事件告警规则

    通过在AOM中创建告警通知规则和事件告警规则,实时监控“CAE组件更新凭据失败”事件。一旦发生异常,AOM将按照预设的通知方式(如短信、邮件等)及时向运维人员发送告警,以便快速定位和解决问题,确保整个凭证自动轮转流程的可靠运行。

使用限制

端到端RDS凭证自动轮转功能当前在亚太-新加坡区域开放。

前提条件

已在RDS控制台创建了RDS实例,并在实例中创建了数据库。本案例选用PostgreSQL数据库。

步骤一:使用DEW服务创建事件通知,再创建凭据并绑定事件通知

创建事件通知

  1. 进入DEW控制台
  2. 在左侧导航栏选择“凭据管理 > 事件通知”。
  3. 单击右上角“创建事件”,参考表1设置参数信息,其中消息类型选择EG(事件网格),事件类型全部勾选。创建事件的参数详细说明请参见创建事件

    表1 创建事件参数示例

    参数

    本案例的示例

    事件名称

    填写“report-eg”。

    状态

    选择“启用”。

    消息类型

    选择“EG(事件网格)”。

    通道名称

    选择“default”。

    事件类型

    全部勾选,包括“新版本创建”、“版本过期”、“凭据轮转”、“凭据删除”等。

  4. 单击“确定”,完成事件创建。

创建凭据并绑定事件通知

  1. 在DEW控制台,左侧导航栏选择“凭据管理 > 凭据列表”。
  2. 单击”创建凭据”,参考表2设置参数信息,其中关联事件选择刚才创建的事件。创建轮转凭据的参数详细说明请参见创建轮转凭据

    表2 创建凭据-基本信息参数示例

    参数

    本案例的示例

    凭据类型

    选择“轮转凭据”,然后在下拉框中选择“RDS凭据”。

    凭据名称

    填写“test-case”。

    企业项目

    选择“default”。

    选择数据库类型

    选择“PostgreSQL”。

    选择RDS实例

    选择和数据库类型对应的RDS实例。

    设置凭据值

    选择“双账号托管”。

    填入一个数据库账号及密码后,会克隆一个具有一致权限的账号。需勾选“我已知晓风险”。

    KMS加密

    选择“列表选择”,然后填写“csms/default”。

    关联事件

    选择刚才创建的事件“report-eg”。

  3. 单击“下一步”,参考表3设置参数信息。

    表3 创建凭据-选择轮转周期参数示例

    参数

    本案例的示例

    自动轮转

    开启开关

    选择轮转周期

    选择“6小时”。

    轮转函数

    通过FunctionGraph函数工作流实现凭据值轮转,可以创建函数或者使用账号中已有的轮转函数。

  4. 单击“下一步 > 确定”,完成凭据创建。

步骤二:使用EG服务创建事件通道,再创建事件订阅

创建事件通道

  1. 进入EG控制台
  2. 在左侧导航栏选择“事件通道”,EG服务已默认创建一条云服务事件通道(通道名称为default),云服务事件通道负责接收来自云服务事件源的事件。

创建事件订阅

  1. 在EG控制台,在左侧导航栏选择“事件订阅”。
  2. 单击“创建事件订阅”,进入事件订阅页面。

    图1 事件订阅页面

  3. 单击“事件源”,参考表4设置参数信息。创建事件订阅的参数详细说明请参见创建事件订阅

    表4 事件源参数示例

    参数

    本案例的示例

    选择提供方

    选择“云服务”。

    事件源

    选择“云凭据管理服务 CSMS”。

    事件类型

    全部勾选,包含“DEW:CSMS:SecretRotated”、“DEW:CSMS:SecretVersionCreated”,“DEW:CSMS:SecretDeleted”和“DEW:CSMS:SecretVersionExpired”。

    过滤规则

    保持默认。

  4. 单击“确定”,完成事件源设置。
  5. 单击“事件目标”,参考表5设置参数信息。

    表5 事件目标参数示例

    参数

    本案例的示例

    选择提供方

    选择“云服务”。

    事件目标

    选择“云服务接口”。该功能需要提交工单申请才能使用。详细操作请参考提交工单

    云服务

    选择“云应用引擎 CAE”。

    接口

    选择“修改用户已在DEW服务上注册的凭据版本”。

    委托

    选择“EG_TARGET_AGENCY”。若没有可选的委托,可以单击右侧“创建委托”。

    X-Enterprise-Project-ID

    不要求填写。

    secret_id

    填写刚才在DEW控制台创建的凭据的凭据ID。凭据ID获取方式:在DEW控制台的凭据列表页面,可以获取凭据ID。

    Body

    单击“切换为文本输入”,填写以下Body:

    {
      "api_version": "v1",
      "kind": "Secret",
      "spec": {
        "name": "test",
        "version_id": "v2"
      }
    }

  6. 单击“确定”,完成事件目标设置。

  7. 单击“保存”,完成事件订阅创建。

步骤三:使用CAE服务创建凭据

  1. 进入CAE控制台
  2. 在左侧导航栏选择“系统设置”。
  3. 单击凭据配置卡片的“编辑”。
  4. 在凭据配置页面,单击“创建凭据配置”,参考表6填写参数信息。

    表6 配置凭据参数示例

    参数

    本案例的示例

    凭据名称

    填写刚才在DEW控制台创建的凭据的名称。凭据名称获取方式:在DEW控制台的凭据列表页面,可以获取凭据名称。

    凭据版本

    选择最新的版本。

  5. 单击“确定”,完成凭据配置。

(可选)步骤四:使用AOM服务创建告警通知规则,再创建事件告警规则

查看“CAE组件更新凭据失败”事件

  1. 进入AOM控制台
  2. 在左侧导航栏选择“告警中心 > 告警列表”。
  3. 在上方页签选择“事件”。当CAE组件更新凭据失败时,会上报“CAE组件更新凭据失败”事件到AOM。

创建告警通知规则

  1. 在AOM控制台,左侧导航栏选择“告警中心 > 告警通知”。
  2. 单击“创建告警通知规则”,参考表7设置参数信息。创建告警通知规则的参数详细说明请参见创建AOM告警通知规则

    表7 创建告警通知规则参数示例

    参数

    本案例的示例

    通知规则名称

    填写“CAE通知规则”。

    企业项目

    选择“default”。

    通知规则类型

    选择“prometheus监控”。

    消息模板

    选择“aom.built-in.template.zh”。

    主题

    选择一个SMN主题。创建主题的详细操作请参见创建主题

  3. 单击“确定”,完成告警通知规则创建。

创建事件告警规则

  1. 在AOM控制台,左侧导航栏选择“告警中心 > 告警规则”。
  2. 单击“创建告警规则”,参考表8设置参数信息。创建事件告警规则的参数详细说明请参见创建AOM事件告警规则

    表8 创建事件告警规则参数示例

    参数

    本案例的示例

    规则原始名称

    填写“CAE组件更新凭据失败”。

    企业项目

    选择“default”。

    规则类型

    选择“事件告警规则”。

    事件类型

    选择“自定义事件”。

    事件来源

    选择“CAE”。

    监控对象

    事件名称:选择“CAE组件更新凭据失败”。

    触发方式:选择“立即触发”。

    告警级别:选择

    告警方式

    选择“直接告警”。

    通知规则

    选择刚才创建的告警通知规则。

  3. 单击“立即创建”,完成事件告警规则创建。当“CAE组件更新凭据失败”事件告警触发时,会按照您在SMN配置的通知方式向您发送事件告警通知。

相关文档