凭据管理概述
“凭据”用于验证身份和授权访问的证明信息。在信息安全和身份认证领域,凭据是确保只有授权用户才能访问系统、资源或服务的关键机制。凭据的类型包括:用户名和密码、数字证书、密钥对(公钥和私钥)、令牌、生物识别信息、一次性密码、智能卡等。
为什么使用凭据管理
数据库账号口令、服务器账号口令、SSH Key、访问密钥等凭据的泄露,是当今数据安全面临的主要威胁之一。为了降低数据泄露的安全风险,执行有效的凭据保护和周期性轮转非常关键。使用DEW的凭据管理功能可以为您带来以下安全优势:
- DEW对凭据值使用高安全强度的加密算法加密存储,防止凭据硬编码带来的凭据泄露以及高价值资产泄露,提升数据安全性。
- 提供安全便捷的客户端接入方式,应用程序以无代码或者低代码的方式,动态使用凭据。
- 具备应急处置能力,当您通过立即轮转的方式更新凭据时,应用程序和业务不受影响。
- 支持高频次轮转的全动态凭据,缩小凭据的有效时间窗口,降低凭据被破解的风险。
- 支持通过API、Terraform等运维编排工具,满足中心化、规模化的安全管理需求。
操作视频
本视频为您介绍凭据使用指导。
支持的凭据类型
DEW支持两种凭据类型:通用凭据、轮转凭据,两者差异如下。
| 凭据类型 | 说明 | 凭据类型子类 | 使用场景 | 是否支持自动轮转 |
|---|---|---|---|---|
| 通用凭据 | 通用凭据支持在各场景下进行自定义凭据的全生命周期管理,用户可以通过凭据管理服务实现对数据库账号口令、服务器口令、SSH Key、访问密钥等各类型凭据的统一管理、检索与安全存储,且支持多个版本管理,方便用户实现凭据轮转。 | - | 各场景下自定义凭据的全生命周期管理 | 否,需要用户自行触发轮转 |
| 轮转凭据 | 数据库凭据泄露是导致数据泄露的主要途径。凭据管理服务支持托管RDS、TaurusDB凭据,能够全自动的定期轮转与手动立即轮转,满足各类数据库凭据管理场景,降低业务数据面临的安全风险。 |
| 不同凭据的使用场景如下:
| 是,支持单双用户两种经典轮转模型 |
凭据的组成
凭据由元数据、一或多个凭据版本组成。您可以在凭据管理页面查看凭据详情。
- 元数据
包含凭据名称、凭据ID、创建时间、凭据类型、加密密钥等信息。

- 凭据版本
一个凭据可以有多个凭据版本。每个凭据版本包含版本号、版本状态、凭据值。

- 内置版本状态:
- SYSCURRENT:凭据的当前版本,即最新存入的凭据值的状态。
- SYSPREVIOUS:凭据的上一个版本。
- SYSPending:待处理版本,轮转过程中会产生该版本,轮转完成后不会出现该状态。
- 通过接口获取凭据值时读取SYSCURRENT对应的凭据值。
- 内置版本状态类似指针。例如,第一次存入一个凭据版本,版本号设置为v1,存入后内置版本状态为SYSCURRENT,此时继续存入一个凭据版本,版本号设置为v2,则v2对应的内置版本状态为SYSCURRENT,v1对应的版本状态会自动改为SYSPREVIOUS。
- 自定义版本状态:每个凭据版本可以自定义多个版本状态。
- 内置版本状态:
- 凭据值:您存入的凭据信息,可以是字符串或二进制值。
凭据轮转
凭据轮转即基于凭据支持多个版本的特征,通过存入新的凭据版本来更新凭据,以提升凭据的安全性。新创建的凭据版本被标记为“SYSCURRENT”状态,业务应用会动态读取“SYSCURRENT”对应的凭据值。
轮转过程

轮转方式
轮转策略
创建轮转凭据时,根据“设置凭据值”的选择来决定采用哪种轮转策略。
- “设置凭据值”选择“单账号托管”时,采用“单用户轮转策略”。
- “双账号托管”时,采用“双用户轮转策略”。
| 轮转策略 | 说明 |
|---|---|
| 单用户轮转策略 | 单用户轮转策略适用于单一用户场景,多用于低频次轮转、可靠性要求不高的账号,这是最简单的轮换策略,适用于大多数用例。但是在密码重置切换的瞬间,凭据的当前版本可能暂时无法使用。 您可以使用单用户轮换来实现:
|
| 双用户轮转策略 | 双用户轮转多用于轮转频次较高、轮转可靠性要求高的账号,托管两个相同权限的账号,每次轮转SYSPREVIOUS的凭据版本,保证密码重置切换的瞬间,程序访问不被中断。在轮转时先将新版本的凭据改为SYSPENDING状态,通过调用RDS接口重置密码,重置完成后新版本凭据的SYSPENDING状态会改为SYSCURRENT,之前SYSCURRENT状态的凭据变为SYSPREVIOUS,即视为完成整个轮转流程。
|
轮转凭据使用流程
步骤一:轮转凭据创建委托
首次开启轮转时,当用户确认授权后,CSMS会在当前区域当前项目下,帮助用户自动创建委托授权。因此,用户需要确认账号拥有IAM相关权限:iam:permissions:grantRoleToAgencyOnProject、iam:agencies:listAgencies、iam:roles:listRoles、iam:agencies:createAgency、iam:permissions:checkRoleForAgencyOnProject、iam:roles:createRole。
根据轮转凭据类型不同,创建的委托不同:
- RDS凭据
- 创建一个名为CSMSAccessFunctionGraph的委托 ,账号是op_svc_kms,权限名称是CSMSAccessFunctionGraph,使用项目级服务策略,包含函数工作流服务(FunctionGraph)的同步执行函数的权限(functiongraph:function:invoke)。
- 创建一个名为FunctionGraphAgencyForRotateRDSByCSMSV3委托 ,云服务是FunctionGraph,权限名称是FunctionGraphAgencyForRotateRDSByCSMSV3,使用项目级服务策略,包含:
- 凭据管理服务(CSMS)的相关权限:csms:secret:getVersion、csms:secret:listVersion、csms:secret:createVersion、csms:secret:getStage、csms:secret:get、csms:secret:updateStage。
- 虚拟私有云云服务(VPC)的相关权限:vpc:ports:create、vpc:vpcs:get、vpc:ports:get、vpc:ports:delete、vpc:subnets:get。
- 密钥管理服务(KMS)的相关权限:kms:cmk:createDataKey、kms:cmk:decryptDataKey。
- 云数据库(RDS)的相关权限:rds:password:update。
- TaurusDB凭据
- 创建一个名为CSMSAccessFunctionGraph的委托 ,账号是op_svc_kms,权限名称是CSMSAccessFunctionGraph,使用项目级服务策略,包含函数工作流服务(FunctionGraph)的同步执行函数的权限(functiongraph:function:invoke)。
- 创建一个名为FunctionGraphAgencyForRotateGaussDBByCSMSV3委托 ,云服务是FunctionGraph,权限名称是FunctionGraphAgencyForRotateGaussDBByCSMSV3,使用项目级服务策略,包含:
- 凭据管理服务(CSMS)的相关权限:csms:secretVersion:get、csms:secretVersion:list、csms:secretVersion:create、csms:secretStage:get、csms:secret:get、csms:secretStage:update。
- 虚拟私有云云服务(VPC)的相关权限:vpc:ports:create、vpc:vpcs:get、vpc:ports:get、vpc:ports:delete、vpc:subnets:get。
- 密钥管理服务(KMS)的相关权限:kms:dek:create、kms:dek:decrypt。
- 云数据库TaurusDB的相关权限:gaussdb:user:modify。
- APIG凭据
- 创建一个名为CSMSAccessFunctionGraph的委托 ,账号是op_svc_kms,权限名称是CSMSAccessFunctionGraph,使用项目级服务策略,包含函数工作流服务(FunctionGraph)的同步执行函数的权限(functiongraph:function:invoke)。
- 创建一个名为FunctionGraphAgencyForRotateGaussDBByCSMSV3委托 ,云服务是FunctionGraph,权限名称是FunctionGraphAgencyForRotateGaussDBByCSMSV3,使用项目级服务策略,包含:
- 凭据管理服务(CSMS)的相关权限:csms:secretVersion:get、csms:secretVersion:list、csms:secretVersion:create、csms:secretStage:get、csms:secret:get、csms:secretStage:update。
- 虚拟私有云云服务(VPC)的相关权限:vpc:ports:create、vpc:vpcs:get、vpc:ports:get、vpc:ports:delete、vpc:subnets:get。
- 密钥管理服务(KMS)的相关权限:kms:dek:create、kms:dek:decrypt。
- API网关(APIG)的相关权限:apig:apps:update, apig:instances:get, apig:apps:get, apig:appCodes:create, apig:appCodes:get, apig:appCodes:delete。
- GaussDB凭据
- 创建一个名为CSMSAccessFunctionGraph的委托 ,账号是op_svc_kms,权限名称是CSMSAccessFunctionGraph,使用项目级服务策略,包含函数工作流服务(FunctionGraph)的同步执行函数的权限(functiongraph:function:invoke)。
- 创建一个名为FunctionGraphAgencyForRotateGaussDBByCSMSV3委托 ,云服务是FunctionGraph,权限名称是FunctionGraphAgencyForRotateGaussDBByCSMSV3,使用项目级服务策略,包含:
- 凭据管理服务(CSMS)的相关权限:csms:secretVersion:get、csms:secretVersion:list、csms:secretVersion:create、csms:secretStage:get、csms:secret:get、csms:secretStage:update。
- 虚拟私有云云服务(VPC)的相关权限:vpc:ports:create、vpc:vpcs:get、vpc:ports:get、vpc:ports:delete、vpc:subnets:get。
- 密钥管理服务(KMS)的相关权限:kms:dek:create、kms:dek:decrypt。
- 云数据库(GaussDB)的相关权限:gaussdb:instance:modify。
步骤三:获取凭据值并开启周期性自动轮转凭据
- 应用系统在使用过程中需要访问数据库时,可以向CSMS服务请求访问凭据,获取凭据值,调用API接口详情请参见查询凭据版本和凭据值。
- 应用系统通过访问返回的凭据值解析明文数据,获取账号和密码后,可以访问该用户对应的目标数据库。
- 开启周期性自动轮转凭据。 开启自动轮转后,数据库实例所托管的密码将定时轮转更新,请确认使用该数据库实例的应用端已完成代码适配,可在数据库连接建立时,动态获取最新凭据。
不要轻易缓存凭据中的任何信息,避免账号密码轮转后失效,导致数据库连接失败。