针对数据库的攻击是数据安全面临的主要威胁之一,对于阿里云关系型云数据库RDS,凭据管家支持托管RDS凭据。凭据管家支持对托管的凭据进行全自动的定期轮转或立即轮转,从而降低凭据泄露的风险。本文介绍如何管理及使用RDS凭据。
概述
使用RDS凭据,应用程序将无需配置静态数据库账号口令。管理员在凭据管家创建RDS凭据,应用程序调用GetSecretValue接口获取RDS数据库账号和口令信息,用于访问RDS数据库。
RDS凭据轮转成功后,凭据关联的RDS实例的账号和口令将同步发生更新。请勿删除凭据关联的RDS实例,避免凭据轮转失败。
使用限制
凭据管家支持的RDS数据库为:RDS MySQL、RDS MariaDB、RDS SQL Server(2017集群版除外)和RDS PostgreSQL。
前提条件
已购买并启用KMS实例。具体操作,请参见购买和启用KMS实例。
已创建密钥。具体操作,请参见密钥管理快速入门。
已完成阿里云RDS实例创建。具体操作,请参见创建RDS MySQL实例。
如果您使用RAM用户(子账号)或RAM角色管理RDS凭据,请确保阿里云账号(主账号)已将系统策略AliyunKMSSecretAdminAccess授予RAM用户或RAM角色。具体操作,请参见为RAM用户授权或为RAM角色授权。
步骤一:创建RDS凭据
创建凭据时可以设置凭据全自动的定期轮转,从而降低凭据泄露的安全风险。
登录密钥管理服务控制台,在顶部菜单栏选择地域后,在左侧导航栏单击 。
单击RDS凭据页签,选择实例ID后,单击创建凭据,完成各项配置后单击确定。
配置项
说明
凭据名称
自定义的凭据名称。
选择RDS实例
选择阿里云账号下已有的RDS实例。
设置凭据值
长度不超过30720字节(30KB)。
双账号托管(推荐):适用于程序化访问数据库场景。托管两个相同权限的账号,保证口令重置切换的瞬间,程序访问数据库不被中断。
单击一键创建和授权页签,配置账号名、选择数据库并指定权限。
说明一键创建和授权不会立即为您配置新的账号,而是在您审核确认凭据信息之后进行配置。
单击导入已有账号页签,选择用户名、配置口令。
说明建议您将口令配置为创建RDS实例用户账号时对应的密码。如果导入的账号和口令不匹配,您可以在凭据首次轮转之后,获取正确的账号和口令。
单账号托管:适用于高权限账号或者人工运维账号托管场景。口令重置切换的瞬间,凭据的当前版本可能暂时无法使用。
单击一键创建和授权页签,配置账号名、选择账号类型。
您可以选择普通账号和高权限账号两种账号类型。当您选择普通账号时,还需选择数据库并指定权限。
单击导入已有账号页签,选择用户名、配置口令。
加密主密钥
选择用于加密凭据值的密钥。
重要密钥和凭据需要属于同一个KMS实例,且密钥必须为对称密钥。关于KMS支持哪些对称密钥,请参见密钥管理类型和密钥规格。
标签
凭据的标签,方便您对凭据进行分类管理。每个标签由一个键值对(Key:Value)组成,包含标签键(Key)、标签值(Value)。
说明标签键和标签值的格式:最多支持128个字符,可以包含英文大小写字母、数字、正斜线(/)、反斜线(\)、下划线(_)、短划线(-)、半角句号(.)、加号(+)、等于号(=)、半角冒号(:)、字符at(@)。
标签键不能以aliyun或acs:开头。
每个凭据最多可以设置20个标签键值对。
自动轮转
选择开启或关闭凭据的周期性自动轮转。
轮转周期
仅当开启自动轮转时需要设置。支持设置为6小时~365天。
表示轮转的周期,设置后KMS将定期为您更新凭据值。
描述信息
凭据的描述信息。
高级设置
凭据的策略配置。
默认策略:凭据由当前主账号使用,或者资源共享单元中的主账号使用,请选择默认策略。
实例未共享给其他账号:仅当前主账号能管理及使用凭据。
实例已共享给其他账号:以主账号1将KMS实例A共享给主账号2为例介绍。
主账号1创建的凭据:仅主账号1能管理及使用凭据。
主账号2创建的凭据:主账号1和主账号2,都能管理及使用凭据。
自定义策略:如果凭据需要授权给RAM用户、RAM角色,或授权给其他账号使用,请选择自定义策略。
重要选择管理员、使用者时不消耗访问管理数量配额。选择其他账号使用者时,会消耗KMS实例的访问管理数量配额,按主账号个数计算消耗的配额,如果您取消了授权,请等待约5分钟,再查看配额,配额的消耗数量会相应减少。
使用凭据时,还需要授予使用对应密钥进行解密(Decrypt)的权限。
管理员:对凭据进行管控类操作,不支持使用凭据(即获取凭据值)。支持选择当前账号下的RAM用户和RAM角色。
使用者:支持使用凭据,即获取凭据值。支持选择当前账号下的RAM用户和RAM角色。
其他账号使用者:仅支持使用凭据,即获取凭据值。可以是其他阿里云账号的RAM用户或RAM角色。
RAM用户:格式为
acs:ram::<userId>:user/<ramuser>
,例如acs:ram::119285303511****:user/testpolicyuser
。RAM角色:格式为
acs:ram::<userId>:role/<ramrole>
,例如acs:ram::119285303511****:role/testpolicyrole
。
说明授权给RAM用户、RAM角色后,您仍需在访问控制RAM侧,使用该RAM用户、RAM角色的主账号为其授权使用该凭据,RAM用户、RAM角色才能使用该凭据。
具体操作,请参见使用RAM实现对资源的访问控制、为RAM用户授权、为RAM角色授权。
说明创建凭据时,系统会自动创建服务关联角色AliyunServiceRoleForKMSSecretsManagerForRDS,并为其授权权限策略AliyunServiceRolePolicyForKMSSecretsManagerForRDS。凭据管家使用该角色为您管理动态RDS凭据,完成RDS账号口令的轮转等任务。
您可以登录RAM控制台查看服务关联角色和权限策略的详细信息,具体操作,请参见查看RAM角色和查看权限策略基本信息。
步骤二:应用程序接入凭据管家JDBC客户端
凭据管家JDBC客户端基于KMS凭据管家API,封装了业务逻辑、最佳实践和设计模式,应用程序可通过在凭据管家托管的RDS凭据完成数据库连接身份鉴别,在建立数据库连接后通过JDBC接口访问数据库。具体操作,请参见凭据JDBC客户端。
更多操作
轮转RDS凭据
您可以为凭据设置周期性自动轮转,降低凭据泄露的安全风险。也可以在凭据泄露时,通过控制台立即轮转功能快速轮转凭据,阻断入侵威胁。
登录密钥管理服务控制台,在顶部菜单栏选择地域后,在左侧导航栏单击 。
单击RDS凭据页签,选择实例ID后,定位到要立即轮转的凭据名称创建凭据,单击操作列的详情。
在凭据详情页面配置凭据轮转策略。
周期性自动轮转:在页面右上角单击设置轮转策略,开启或关闭周期性自动轮转,然后单击确定。
立即轮转:在页面右上角单击立即轮转,确认无误后单击确定。
删除RDS凭据
删除凭据前,请确认该凭据已不再使用,否则可能导致您的业务失败。
您可以选择计划删除凭据和立即删除凭据两种方式,删除不需要的凭据。删除RDS凭据仅删除凭据管家的RDS凭据信息,不会删除RDS中的账户和口令。
登录密钥管理服务控制台,在顶部菜单栏选择地域后,在左侧导航栏单击 。
单击RDS凭据页签,选择实例ID后,定位到要删除的凭据名称创建凭据,单击操作列的计划删除凭据。
在计划删除凭据对话框中,选择凭据删除方式,并单击确定。
计划删除凭据:设置预删除周期(7~30天),系统将在预删除周期结束后删除凭据。
立即删除凭据:系统将立即删除凭据。
在预删除周期内,您可以单击目标凭据操作列的还原凭据,取消删除操作。
为凭据配置标签
凭据的标签,方便您对凭据进行分类管理。每个标签由一个键值对(Key:Value)组成,包含标签键(Key)、标签值(Value)。
标签键和标签值的格式:最多支持128个字符,可以包含英文大小写字母、数字、正斜线(/)、反斜线(\)、下划线(_)、短划线(-)、半角句号(.)、加号(+)、等于号(=)、半角冒号(:)、字符at(@)。
标签键不能以aliyun或acs:开头。
每个凭据最多可以设置20个标签键值对。
为单个凭据配置标签
方式 | 操作 |
方式一:在凭据管理页面配置标签 |
|
方式二:在凭据详情页面配置标签 |
|
为多个凭据批量配置标签
登录密钥管理服务控制台,在顶部菜单栏选择地域后,在左侧导航栏单击 。
单击相应的凭据类型页签,选择实例ID后,在凭据列表中勾选要操作的凭据。
增加标签:在凭据列表的最下方,单击增加标签,输入多个标签键和标签值后,单击确认,然后在变更提示对话框中单击关闭。
删除标签:在凭据列表的最下方,单击删除标签,在批量解绑标签对话框勾选要解绑的标签,单击解绑标签,然后在变更提示对话框中单击关闭。
检测凭据值
KMS将检测凭据保护的数据库账号是否属于您配置的RDS实例,检测成功说明该凭据可以正常轮转,否则您需要删除后重新创建RDS凭据。
登录密钥管理服务控制台,在顶部菜单栏选择地域后,在左侧导航栏单击 。
单击RDS凭据页签,选择实例ID后,定位到目标凭据,单击操作列的详情。
在版本列表区域,单击检测账号,验证完成后,查看验证结果。