通过事件网格(EG)实现端到端RDS凭证自动轮转
背景信息
在数字化业务持续演进的当下,数据库作为企业核心数据的存储与管理中枢,其安全性面临日益严峻的挑战。传统静态数据库密码管理方式存在诸多隐患,一旦密码泄露,可能引发数据泄露、恶意篡改等严重安全事故。为提升数据库安全防护能力,动态凭证轮转机制应运而生,它通过定期更换数据库密码,有效降低密码被破解的风险,成为保障数据库安全的重要手段。
华为云数据加密服务(DEW)具备对云数据库(RDS)凭证进行定期轮转和修改的能力,能够实时将修改后的凭证更新至RDS实例,极大增强了数据库密码的安全性。然而,云应用引擎(CAE)作为数据库客户端,在RDS凭证更新后,无法自动感知这一变化,导致其无法及时更新凭证信息,进而无法建立新的数据库连接,影响业务的正常运行。这一矛盾使得RDS凭证轮转机制在实际应用中难以实现端到端的自动化,成为制约数据库安全防护体系高效运作的瓶颈。
解决方案
为打破上述困局,充分发挥RDS凭证轮转的安全效能,华为云构建了以事件网格(EG)为核心的端到端RDS凭证自动轮转解决方案。该方案基于华为云各服务间的协同运作,形成完整的凭证更新与同步闭环。
本章节将详细介绍如何通过EG实现端到端的RDS凭证自动轮转流程。
- 步骤一:使用DEW服务创建事件通知,再创建凭据并绑定事件通知
DEW依据预设的安全策略,定期对RDS凭证进行轮转与修改,并将更新后的凭证实时同步至RDS实例。
- 步骤二:使用EG服务创建事件通道,再创建事件订阅
DEW通过事件网格(EG)发送凭证更新事件通知,将RDS实例ID、新凭证版本号等关键信息推送至EG主题。
EG作为事件路由中枢,按照预先配置的订阅规则,识别并筛选出与RDS凭证更新相关的事件,将其路由至云应用引擎(CAE)的指定接收端点。
- 步骤三:使用CAE服务创建凭据
CAE接收到EG发送的事件通知后,立即启动凭证更新流程。通过解析事件中的凭证信息,CAE将新凭证注入到相关组件的配置中,并触发组件重启或连接池刷新操作,实现使用新凭证建立与RDS的数据库连接。
- (可选)步骤四:使用AOM服务创建告警通知规则,再创建事件告警规则
通过在AOM中创建告警通知规则和事件告警规则,实时监控“CAE组件更新凭据失败”事件。一旦发生异常,AOM将按照预设的通知方式(如短信、邮件等)及时向运维人员发送告警,以便快速定位和解决问题,确保整个凭证自动轮转流程的可靠运行。
使用限制
端到端RDS凭证自动轮转功能当前在亚太-新加坡区域开放。
前提条件
已在RDS控制台创建了RDS实例,并在实例中创建了数据库。本案例选用PostgreSQL数据库。
步骤一:使用DEW服务创建事件通知,再创建凭据并绑定事件通知
创建事件通知
- 进入DEW控制台。
- 在左侧导航栏选择“凭据管理 > 事件通知”。
- 单击右上角“创建事件”,参考表1设置参数信息,其中消息类型选择EG(事件网格),事件类型全部勾选。创建事件的参数详细说明请参见创建事件。
- 单击“确定”,完成事件创建。
创建凭据并绑定事件通知
步骤二:使用EG服务创建事件通道,再创建事件订阅
创建事件通道
- 进入EG控制台。
- 在左侧导航栏选择“事件通道”,EG服务已默认创建一条云服务事件通道(通道名称为default),云服务事件通道负责接收来自云服务事件源的事件。
创建事件订阅
- 在EG控制台,在左侧导航栏选择“事件订阅”。
- 单击“创建事件订阅”,进入事件订阅页面。
图1 事件订阅页面
- 单击“事件源”,参考表4设置参数信息。创建事件订阅的参数详细说明请参见创建事件订阅。
- 单击“确定”,完成事件源设置。
- 单击“事件目标”,参考表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" } }
- 单击“确定”,完成事件目标设置。
- 单击“保存”,完成事件订阅创建。
(可选)步骤四:使用AOM服务创建告警通知规则,再创建事件告警规则
查看“CAE组件更新凭据失败”事件
- 进入AOM控制台。
- 在左侧导航栏选择“告警中心 > 告警列表”。
- 在上方页签选择“事件”。当CAE组件更新凭据失败时,会上报“CAE组件更新凭据失败”事件到AOM。
创建告警通知规则
- 在AOM控制台,左侧导航栏选择“告警中心 > 告警通知”。
- 单击“创建告警通知规则”,参考表7设置参数信息。创建告警通知规则的参数详细说明请参见创建AOM告警通知规则。
表7 创建告警通知规则参数示例 参数
本案例的示例
通知规则名称
填写“CAE通知规则”。
企业项目
选择“default”。
通知规则类型
选择“prometheus监控”。
消息模板
选择“aom.built-in.template.zh”。
主题
选择一个SMN主题。创建主题的详细操作请参见创建主题。
- 单击“确定”,完成告警通知规则创建。
创建事件告警规则
- 在AOM控制台,左侧导航栏选择“告警中心 > 告警规则”。
- 单击“创建告警规则”,参考表8设置参数信息。创建事件告警规则的参数详细说明请参见创建AOM事件告警规则。
- 单击“立即创建”,完成事件告警规则创建。当“CAE组件更新凭据失败”事件告警触发时,会按照您在SMN配置的通知方式向您发送事件告警通知。