重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

当您的应用需要访问RDS数据库时,您可以将RDS账号口令存储在KMS的凭据中(即RDS凭据),业务应用通过集成阿里云SDK、KMS实例SDK或凭据SDK向KMS动态获取账号口令,您还可以为凭据配置轮转,以减少账号口令的泄露风险。本文介绍如何管理及使用RDS凭据。

功能介绍

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

重要

您在KMS托管RDS账号口令后,请勿在云数据库 RDS修改或删除账号口令,以避免您的业务失败。

image

RDS凭据轮转

KMS为您转轮RDS凭据时,会重置对应RDS账号的密码(口令),数据库账号名称不变。正常情况下,RDS凭据轮转即时完成。如果轮转超过2分钟没有完成,请检查RDS实例状态及RDS账号是否正常。

重要

RDS凭据轮转时请勿删除凭据关联的RDS实例和RDS账号,避免轮转失败。

在KMS托管RDS凭据时,支持单账号托管和双账号托管,其轮转策略不同:

  • 单账号

    轮转即为账号生成一个新的口令,轮转时在口令切换的瞬间,凭据的当前版本可能暂时无法使用。因此建议您做好重试策略。

  • 多账号

    假设创建凭据时您有一个用户的RDS账号口令。第一次轮转时,KMS会调用RDS的API创建第二个用户的账号口令。第二次轮转时,会修改第一个用户的口令,以后每次轮转凭据时,KMS会交替修改这两个用户的口令。具体如下图所示。

    image

使用限制

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

前提条件

步骤一:创建RDS凭据

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

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

  2. 单击数据库凭据页签,选择实例ID后,单击创建凭据 > 创建单个凭据,完成各项配置后单击确定

    说明
    • RDS凭据不支持批量创建。

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

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

    配置项

    说明

    数据库类型

    选择RDS凭据

    凭据名称

    自定义的凭据名称。

    RDS实例

    选择阿里云账号下已有的RDS实例。

    账号托管

    长度不超过30720字节(30KB)。

    • 双账号托管(推荐):适用于程序化访问数据库场景。托管两个相同权限的账号,保证口令重置切换的瞬间,程序访问数据库不被中断。

      • 单击新建账号,配置账号名、选择数据库并指定权限。

        说明

        一键创建和授权不会立即为您配置新的账号,而是在您审核确认凭据信息之后进行配置。

      • 单击导入已有账号,选择用户名、配置口令。

        说明

        建议您将口令配置为创建RDS实例用户账号时对应的密码。如果导入的账号和口令不匹配,您可以在凭据首次轮转之后,获取正确的账号和口令。

    • 单账号托管:适用于高权限账号或者人工运维账号托管场景。口令重置切换的瞬间,凭据的当前版本可能暂时无法使用。

      • 单击新建账号,配置账号名、选择账号类型。

        您可以选择普通账号高权限账号两种账号类型。当您选择普通账号时,还需选择数据库并指定权限。

      • 单击导入已有账号页签,选择用户名、配置口令。

    加密主密钥

    选择用于加密凭据值的密钥。

    重要
    • 密钥和凭据需要属于同一个KMS实例,且密钥必须为对称密钥。关于KMS支持哪些对称密钥,请参见密钥管理类型和密钥规格

    • 如果是RAM用户、RAM角色,需要具备使用加密主密钥执行GenerateDataKey操作的权限。

    标签

    凭据的标签,方便您对凭据进行分类管理。每个标签由一个键值对(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角色授权

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

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

步骤二:应用程序集成RDS凭据

KMS提供了阿里云SDK、KMS实例SDK、凭据客户端、凭据JDBC客户端,用于获取凭据值,应用可以通过这些SDK集成RDS凭据。凭据JDBC客户端封装了业务逻辑、最佳实践和设计模式,应用程序可通过在KMS保存的RDS凭据完成数据库连接身份鉴别,在建立数据库连接后通过JDBC接口访问数据库。关于各SDK的详细介绍,请参见SDK参考

如果您的应用程序编程语言是Java,推荐您使用凭据JDBC客户端。详细信息,请参见凭据JDBC客户端。如果您的应用程序编程语言是Python或Go,推荐您使用凭据客户端。详细信息,请参见凭据客户端。其它编程语言,您可使用KMS实例SDK或阿里云SDK。

说明

如果您使用SDK进行管控类操作,例如创建RDS凭据、修改RDS标签等,仅支持使用阿里云SDK。

更多操作

轮转RDS凭据

重要
  • 轮转RDS凭据时,KMS将请求RDS重置相应数据库账号的密码(ResetAccountPassword)。在轮转RDS凭据前请确保您所有应用均从KMS获取RDS凭据,以免造成相关业务应用不可用。

  • 如果您在RDS中删除了对应数据库实例或账号,KMS将无法正常对该RDS凭据完成轮转。建议您在轮转前进行一次“检测账号”,且看到KMS提示检验成功后再进行轮转。

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

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

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

  3. 在凭据详情页面下方的版本列表区域,单击设置轮转

    • 定时自动轮转:开启后需要选择轮转周期,支持设置为6小时~365天。

    • 立即轮转:手动触发立即轮转。

检测凭据值

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

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

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

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

删除RDS凭据

警告

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

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

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

  2. 单击数据库凭据页签,选择实例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后,在凭据列表中勾选要操作的凭据。

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

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

常见问题