全部产品
Search
文档中心

密钥管理服务:管理及使用RDS凭据

更新时间:Mar 22, 2024

针对数据库的攻击是数据安全面临的主要威胁之一,对于阿里云关系型云数据库RDS,凭据管家支持托管RDS凭据。凭据管家支持对托管的凭据进行全自动的定期轮转或立即轮转,从而降低凭据泄露的风险。本文介绍如何管理及使用RDS凭据。

概述

使用RDS凭据,应用程序将无需配置静态数据库账号口令。管理员在凭据管家创建RDS凭据,应用程序调用GetSecretValue接口获取RDS数据库账号和口令信息,用于访问RDS数据库。

重要

RDS凭据轮转成功后,凭据关联的RDS实例的账号和口令将同步发生更新。请勿删除凭据关联的RDS实例,避免凭据轮转失败。

架构

使用限制

凭据管家支持的RDS数据库为:RDS MySQL、RDS MariaDB、RDS SQL Server(2017集群版除外)和RDS PostgreSQL。

前提条件

步骤一:创建RDS凭据

创建凭据时可以设置凭据全自动的定期轮转,从而降低凭据泄露的安全风险。

  1. 登录密钥管理服务控制台,在顶部菜单栏选择地域后,在左侧导航栏单击资源 > 凭据管理

  2. 单击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角色。

        管理员支持的权限列表

        {
        	"Statement": [
        		{
        			"Action": [
        				"kms:List*",
        				"kms:Describe*",
        				"kms:PutSecretValue",
        				"kms:Update*",
        				"kms:DeleteSecret",
        				"kms:RestoreSecret",
        				"kms:RotateSecret",
        				"kms:TagResource",    
        				"kms:UntagResource" 
        			]
        		}
        	]
        }
      • 使用者:支持使用凭据,即获取凭据值。支持选择当前账号下的RAM用户和RAM角色。

        使用者支持的权限列表

        {
            "Statement": [
                {
                    "Action": [
                        "kms:List*",
        								"kms:Describe*",
        								"kms:GetSecretValue",
                    ]
                }
            ]
        }
      • 其他账号使用者:仅支持使用凭据,即获取凭据值。可以是其他阿里云账号的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角色授权

        其他账号使用者支持的权限列表

        {
            "Statement": [
                {
                    "Action": [
                        "kms:List*",
        								"kms:Describe*",
        								"kms:GetSecretValue",
                    ]
                }
            ]
        }
    说明

    创建凭据时,系统会自动创建服务关联角色AliyunServiceRoleForKMSSecretsManagerForRDS,并为其授权权限策略AliyunServiceRolePolicyForKMSSecretsManagerForRDS。凭据管家使用该角色为您管理动态RDS凭据,完成RDS账号口令的轮转等任务。

    您可以登录RAM控制台查看服务关联角色和权限策略的详细信息,具体操作,请参见查看RAM角色查看权限策略基本信息

步骤二:应用程序接入凭据管家JDBC客户端

凭据管家JDBC客户端基于KMS凭据管家API,封装了业务逻辑、最佳实践和设计模式,应用程序可通过在凭据管家托管的RDS凭据完成数据库连接身份鉴别,在建立数据库连接后通过JDBC接口访问数据库。具体操作,请参见凭据JDBC客户端

更多操作

轮转RDS凭据

您可以为凭据设置周期性自动轮转,降低凭据泄露的安全风险。也可以在凭据泄露时,通过控制台立即轮转功能快速轮转凭据,阻断入侵威胁。

  1. 登录密钥管理服务控制台,在顶部菜单栏选择地域后,在左侧导航栏单击资源 > 凭据管理

  2. 单击RDS凭据页签,选择实例ID后,定位到要立即轮转的凭据名称创建凭据,单击操作列的详情

  3. 在凭据详情页面配置凭据轮转策略。

    • 周期性自动轮转:在页面右上角单击设置轮转策略,开启或关闭周期性自动轮转,然后单击确定

    • 立即轮转:在页面右上角单击立即轮转,确认无误后单击确定

删除RDS凭据

警告

删除凭据前,请确认该凭据已不再使用,否则可能导致您的业务失败。

您可以选择计划删除凭据和立即删除凭据两种方式,删除不需要的凭据。删除RDS凭据仅删除凭据管家的RDS凭据信息,不会删除RDS中的账户和口令。

  1. 登录密钥管理服务控制台,在顶部菜单栏选择地域后,在左侧导航栏单击资源 > 凭据管理

  2. 单击RDS凭据页签,选择实例ID后,定位到要删除的凭据名称创建凭据,单击操作列的计划删除凭据

  3. 计划删除凭据对话框中,选择凭据删除方式,并单击确定

    • 计划删除凭据:设置预删除周期(7~30天),系统将在预删除周期结束后删除凭据。

    • 立即删除凭据:系统将立即删除凭据。

    在预删除周期内,您可以单击目标凭据操作列的还原凭据,取消删除操作。

为凭据配置标签

凭据的标签,方便您对凭据进行分类管理。每个标签由一个键值对(Key:Value)组成,包含标签键(Key)、标签值(Value)。

说明
  • 标签键和标签值的格式:最多支持128个字符,可以包含英文大小写字母、数字、正斜线(/)、反斜线(\)、下划线(_)、短划线(-)、半角句号(.)、加号(+)、等于号(=)、半角冒号(:)、字符at(@)。

  • 标签键不能以aliyun或acs:开头。

  • 每个凭据最多可以设置20个标签键值对。

为单个凭据配置标签

方式

操作

方式一:在凭据管理页面配置标签

  1. 登录密钥管理服务控制台,在顶部菜单栏选择地域后,在左侧导航栏单击资源 > 凭据管理

  2. 单击相应的凭据类型页签,选择实例ID后,定位到目标凭据,单击标签列的image.png图标。

  3. 单击绑定,在编辑标签对话框中输入多个标签键标签值后,单击确定,然后在变更提示对话框中单击关闭

    您也可以在编辑标签对话框中修改标签值、批量解绑标签。

方式二:在凭据详情页面配置标签

  1. 登录密钥管理服务控制台,在顶部菜单栏选择地域后,在左侧导航栏单击资源 > 凭据管理

  2. 单击相应的凭据类型页签,选择实例ID后,定位到目标凭据,单击操作列的详情

  3. 在凭据详情页面,单击标签后的image.png图标。

  4. 编辑标签对话框中输入多个标签键标签值后,单击确定,然后在变更提示对话框中单击关闭

    您也可以在编辑标签对话框中修改标签值、批量解绑标签。

为多个凭据批量配置标签

  1. 登录密钥管理服务控制台,在顶部菜单栏选择地域后,在左侧导航栏单击资源 > 凭据管理

  2. 单击相应的凭据类型页签,选择实例ID后,在凭据列表中勾选要操作的凭据。

    • 增加标签:在凭据列表的最下方,单击增加标签,输入多个标签键标签值后,单击确认,然后在变更提示对话框中单击关闭

    • 删除标签:在凭据列表的最下方,单击删除标签,在批量解绑标签对话框勾选要解绑的标签,单击解绑标签,然后在变更提示对话框中单击关闭

检测凭据值

KMS将检测凭据保护的数据库账号是否属于您配置的RDS实例,检测成功说明该凭据可以正常轮转,否则您需要删除后重新创建RDS凭据。

  1. 登录密钥管理服务控制台,在顶部菜单栏选择地域后,在左侧导航栏单击资源 > 凭据管理

  2. 单击RDS凭据页签,选择实例ID后,定位到目标凭据,单击操作列的详情

  3. 版本列表区域,单击检测账号,验证完成后,查看验证结果。

常见问题

设置轮转策略或立即轮转时,提示“您的凭据在轮转中,请稍后再试”