
# 通过事件网格（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控制台](https://console.huaweicloud.com/dew/#/kms/keyList/customKey)。
2. 在左侧导航栏选择"凭据管理 \> 事件通知"。
3. 单击右上角"创建事件"，参考[表1]设置参数信息，**其中消息类型选择EG（事件网格），事件类型全部勾选** 。创建事件的参数详细说明请参见[创建事件](https://support.huaweicloud.com/usermanual-dew/dew_01_2006.html)。
   
    表1创建事件参数示例 
   | 参数   | 本案例的示例                                |
   |:---|:---|
   | 事件名称 | 填写"report-eg"。                        |
   | 状态   | 选择"启用"。                               |
   | 消息类型 | 选择"EG（事件网格）"。                         |
   | 通道名称 | 选择"default"。                          |
   | 事件类型 | 全部勾选，包括"新版本创建"、"版本过期"、"凭据轮转"、"凭据删除"等。 |
      
   
   
4. 单击"确定"，完成事件创建。
**创建凭据并绑定事件通知**
1. 在DEW控制台，左侧导航栏选择"凭据管理 \> 凭据列表"。
2. 单击"创建凭据"，参考[表2]设置参数信息，**其中关联事件选择刚才创建的事件** 。创建轮转凭据的参数详细说明请参见[创建轮转凭据](https://support.huaweicloud.com/usermanual-dew/dew_01_9993.html)。
   
    表2创建凭据-基本信息参数示例 
   | 参数      | 本案例的示例                                                                              |
   |:---|:---|
   | 凭据类型    | 选择"轮转凭据"，然后在下拉框中选择"RDS凭据"。                                                          |
   | 凭据名称    | 填写"test-case"。                                                                      |
   | 企业项目    | 选择"default"。                                                                        |
   | 选择数据库类型 | 选择"PostgreSQL"。                                                                     |
   | 选择RDS实例 | 选择和数据库类型对应的RDS实例。                                                                   |
   | 设置凭据值   | 选择"双账号托管"。 填入一个数据库账号及密码后，会克隆一个具有一致权限的账号。需勾选"我已知晓风险"。 |
   | KMS加密   | 选择"列表选择"，然后填写"csms/default"。                                                        |
   | 关联事件    | 选择刚才创建的事件"report-eg"。                                                               |
      
   
   
3. 单击"下一步"，参考[表3]设置参数信息。
   
    表3创建凭据-选择轮转周期参数示例 
   | 参数     | 本案例的示例                                                                                      |
   |:---|:---|
   | 自动轮转   | 开启开关![](https://support.huaweicloud.com/bestpractice-cae/zh-cn_image_0000002297825525.png)。 |
   | 选择轮转周期 | 选择"6小时"。                                                                                    |
   | 轮转函数   | 通过FunctionGraph函数工作流实现凭据值轮转，可以创建函数或者使用账号中已有的轮转函数。                                           |
      
   
   
4. 单击"下一步 \> 确定"，完成凭据创建。
 
 #### 步骤二：使用EG服务创建事件通道，再创建事件订阅
**创建事件通道**
1. 进入[EG控制台](https://console.huaweicloud.com/egs)。
2. 在左侧导航栏选择"事件通道"，EG服务已默认创建一条云服务事件通道（通道名称为default），云服务事件通道负责接收来自云服务事件源的事件。
**创建事件订阅**
1. 在EG控制台，在左侧导航栏选择"事件订阅"。
2. 单击"创建事件订阅"，进入事件订阅页面。 
   图1事件订阅页面   
   ![](https://support.huaweicloud.com/bestpractice-cae/zh-cn_image_0000002298985753.png "点击放大")
   
   
   
3. 单击"事件源"，参考[表4]设置参数信息。创建事件订阅的参数详细说明请参见[创建事件订阅](https://support.huaweicloud.com/usermanual-eg/eg-ug-007.html)。
   
    表4事件源参数示例 
   | 参数    | 本案例的示例                                                                                                                    |
   |:---|:---|
   | 选择提供方 | 选择"云服务"。                                                                                                                  |
   | 事件源   | 选择"云凭据管理服务 CSMS"。                                                                                                         |
   | 事件类型  | 全部勾选，包含"DEW:CSMS:SecretRotated"、"DEW:CSMS:SecretVersionCreated"，"DEW:CSMS:SecretDeleted"和"DEW:CSMS:SecretVersionExpired"。 |
   | 过滤规则  | 保持默认。                                                                                                                     |
      
   
   
4. 单击"确定"，完成事件源设置。
5. 单击"事件目标"，参考[表5]设置参数信息。
   
    表5事件目标参数示例 
   | 参数                      | 本案例的示例                                                                                                                                             |
   |:---|:---|
   | 选择提供方                   | 选择"云服务"。                                                                                                                                           |
   | 事件目标                    | 选择"云服务接口"。该功能需要提交工单申请才能使用。详细操作请参考[提交工单](https://support.huaweicloud.com/usermanual-ticket/zh-cn_topic_0127038618.html)。                            |
   | 云服务                     | 选择"云应用引擎 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. 单击"确定"，完成事件目标设置。 
   ![](https://support.huaweicloud.com/bestpractice-cae/zh-cn_image_0000002264531758.png "点击放大")
   
   
   
7. 单击"保存"，完成事件订阅创建。
 
 #### 步骤三：使用CAE服务创建凭据
1. 进入[CAE控制台](https://console.huaweicloud.com/cae/)。
2. 在左侧导航栏选择"系统设置"。
3. 单击凭据配置卡片的"编辑"。
4. 在凭据配置页面，单击"创建凭据配置"，参考[表6]填写参数信息。
   
    表6配置凭据参数示例 
   | 参数   | 本案例的示例                                                |
   |:---|:---|
   | 凭据名称 | 填写刚才在DEW控制台创建的凭据的名称。凭据名称获取方式：在DEW控制台的凭据列表页面，可以获取凭据名称。 |
   | 凭据版本 | 选择最新的版本。                                              |
      
   
   
5. 单击"确定"，完成凭据配置。
 
 #### （可选）步骤四：使用AOM服务创建告警通知规则，再创建事件告警规则
**查看"CAE组件更新凭据失败"事件**
1. 进入[AOM控制台](https://console.huaweicloud.com/aom/#/aom/ams/summary)。
2. 在左侧导航栏选择"告警中心 \> 告警列表"。
3. 在上方页签选择"事件"。当CAE组件更新凭据失败时，会上报"CAE组件更新凭据失败"事件到AOM。 
   ![](https://support.huaweicloud.com/bestpractice-cae/zh-cn_image_0000002299131785.png "点击放大")
   
   
**创建告警通知规则**
1. 在AOM控制台，左侧导航栏选择"告警中心 \> 告警通知"。
2. 单击"创建告警通知规则"，参考[表7]设置参数信息。创建告警通知规则的参数详细说明请参见[创建AOM告警通知规则](https://support.huaweicloud.com/usermanual-aom2/mon_01_0015.html)。
   
    表7创建告警通知规则参数示例 
   | 参数     | 本案例的示例                                                                                                    |
   |:---|:---|
   | 通知规则名称 | 填写"CAE通知规则"。                                                                                              |
   | 企业项目   | 选择"default"。                                                                                              |
   | 通知规则类型 | 选择"prometheus监控"。                                                                                         |
   | 消息模板   | 选择"aom.built-in.template.zh"。                                                                             |
   | 主题     | 选择一个SMN主题。创建主题的详细操作请参见[创建主题](https://support.huaweicloud.com/usermanual-smn/zh-cn_topic_0043961401.html)。 |
      
   
   
3. 单击"确定"，完成告警通知规则创建。
**创建事件告警规则**
1. 在AOM控制台，左侧导航栏选择"告警中心 \> 告警规则"。
2. 单击"创建告警规则"，参考[表8]设置参数信息。创建事件告警规则的参数详细说明请参见[创建AOM事件告警规则](https://support.huaweicloud.com/usermanual-aom2/mon_01_0010.html)。
   
    表8创建事件告警规则参数示例 
   | 参数     | 本案例的示例                                                                                                                                                                                          |
   |:---|:---|
   | 规则原始名称 | 填写"CAE组件更新凭据失败"。                                                                                                                                                                                |
   | 企业项目   | 选择"default"。                                                                                                                                                                                    |
   | 规则类型   | 选择"事件告警规则"。                                                                                                                                                                                     |
   | 事件类型   | 选择"自定义事件"。                                                                                                                                                                                      |
   | 事件来源   | 选择"CAE"。                                                                                                                                                                                        |
   | 监控对象   | 事件名称：选择"CAE组件更新凭据失败"。 触发方式：选择"立即触发"。 告警级别：选择![](https://support.huaweicloud.com/bestpractice-cae/zh-cn_image_0000002299076745.png)。 |
   | 告警方式   | 选择"直接告警"。                                                                                                                                                                                       |
   | 通知规则   | 选择刚才创建的告警通知规则。                                                                                                                                                                                  |
      
   
   
3. 单击"立即创建"，完成事件告警规则创建。当"CAE组件更新凭据失败"事件告警触发时，会按照您在SMN配置的通知方式向您发送事件告警通知。
 
