全部产品
Search
文档中心

密钥管理服务:PolarDB凭据

更新时间:Dec 24, 2024

当您的应用需要访问云原生数据库 PolarDB时,为了减少账号口令的泄露风险,您可以将PolarDB账号口令托管于KMS的PolarDB凭据,本文介绍如何管理及使用PolarDB凭据。

应用背景

当业务应用需要访问云原生数据库 PolarDB,若对其账号口令不进行有效保护,有可能会导致应用数据泄露、关键性用户数据被窃取以及数据库被攻击等风险。针对此情况KMS提供了PolarDB凭据功能,您可以将云原生数据库 PolarDB的账号口令存储在KMS的凭据中(即PolarDB凭据),业务应用通过集成阿里云SDK、KMS实例SDK或凭据SDK向KMS动态获取账号口令,您还可以为凭据配置轮转,定期修改账号口令,来减少云原生数据库 PolarDB账号口令的泄露风险。

前提条件

支持类型

PolarDB凭据支持托管的数据库类型如下:

  • PolarDB MySQL版

  • PolarDB PostgreSQL版

  • PolarDB PostgreSQL版(兼容Oracle)

PolarDB凭据支持托管模式:

  • 新建账号托管且为双账号模式。

PolarDB凭据支持账号类型:

  • 普通账号

重要
  • PolarDB-X-2.0、PolarDB-X-1.0暂不支持。

  • 导入已有账号、以及单账号模式暂不支持。

使用流程

使用PolarDB凭据,应用程序将无需配置静态数据库账号口令。

  1. 管理员根据业务要求在KMS创建PolarDB凭据。

  2. 应用程序集成PolarDB凭据。

  3. 使用PolarDB凭据中获取的账号口令连接数据库。

重要

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

image

步骤一:创建PolarDB凭据

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

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

    配置项

    说明

    数据库类型

    选择PolarDB凭据

    凭据名称

    自定义的凭据名称,凭据名称在当前地域内唯一。

    PolarDB实例

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

    账号托管

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

    新建账号:配置账号名和权限,账号类型只支持普通账号。MySQL凭据创建时候需要选择数据库+权限

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

    • 账号名必须唯一,如果账号名已经存在,就不能托管到凭据中

    加密主密钥

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

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

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

    标签

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

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

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

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

    自动轮转

    选择开启或关闭凭据的周期性自动轮转。

    轮转周期

    仅当开启自动轮转时需要设置。支持设置为6小时~365天。

    表示轮转的周期,设置后KMS将定期为您更新凭据值。

    描述信息

    凭据的描述信息。

    策略配置

    凭据的策略配置。详细介绍,请参见凭据策略概述

    您可以先选择默认策略,创建凭据后根据业务需要再修改策略。

说明
  • 创建PolarDB凭据,请先确保PolarDB实例状态为Normal。

  • PolarDB凭据创建成功后,系统会自动创建服务关联角色AliyunServiceRoleForKMSSecretsManagerForPolardb,并为其授权权限策略AliyunServiceRolePolicyForKMSSecretsManagerForPolardb。KMS使用该角色调用PolarDB API为您管理PolarDB凭据,完成PolarDB账号口令轮转等任务。

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

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

KMS提供凭据客户端、KMS实例SDK、阿里云SDK来调用OpenAPI-GetSecretValueKMS实例API-GetSecretValue接口获取PolarDB凭据值。如何使用SDK获取凭据值,请参考SDK参考应用程序获取凭据

SDK

适用开发语言

API类型

支持认证方式

接入点(Endpoint)

凭据客户端

应用开发语言需要为Java(Java 8及以上版本)、Go或者Python。

KMS实例API(推荐)

应用接入点(AAP)的ClientKey

说明

网络规则-网络类型选择Private,作用域选择实例ID

具体操作,请参见创建应用接入点

{实例ID}.cryptoservice.kms.aliyuncs.com。

OpenAPI

  • AccessKey

  • ECS实例RAM角色

  • STS Token

  • 可信实体为阿里云服务的RAM角色

  • 应用接入点(AAP)的ClientKey

    说明

    网络规则-网络类型选择PublicVPC,权限规则-作用域选择KMS共享网关

    具体操作,请参见创建应用接入点

公网接入地址:kms.cn-地域ID.aliyuncs.com。

vpc接入地址:kms-vpc.cn-地域ID.aliyuncs.com。

更多请参见接入点说明

KMS实例SDK

应用开发语言需要为Java(Java 8及以上版本)、PHP、Go、Python、.NET(仅C#)。

KMS实例API

应用接入点(AAP)的ClientKey

说明

网络规则-网络类型选择Private,作用域选择实例ID

具体操作,请参见创建应用接入点

{实例ID}.cryptoservice.kms.aliyuncs.com。

阿里云SDK

应用开发语言需要为Java(Java 6及以上版本)、PHP、Go、Python、.NET(仅C#)、C++、Node.js。

OpenAPI

  • AccessKey

  • ECS实例RAM角色

  • STS Token

  • 可信实体为阿里云服务的RAM角色

  • 应用接入点(AAP)的ClientKey

    说明

    网络规则-网络类型选择PublicVPC,权限规则-作用域选择KMS共享网关

    具体操作,请参见创建应用接入点

公网接入地址:kms.cn-地域ID.aliyuncs.com。

vpc接入地址:kms-vpc.cn-地域ID.aliyuncs.com。

更多请参见接入点说明

步骤三:使用PolarDB凭据连接数据库

根据获取的PolarDB凭据中存储的数据库账号口令,使用数据库驱动程序完成数据库连接。

重要
  • 数据库驱动使用请参考各驱动使用说明。

  • 如果您的应用程序编程语言是Java且数据库类型是PolarDB MySQL版推荐您使用凭据JDBC客户端,该客户端自动从KMS获取凭据用于数据库连接,无需再调GetSecretValue接口。凭据JDBC客户端目前暂时不支持PolarDB PostgreSQL版PolarDB PostgreSQL版(兼容Oracle)

更多功能

1、轮转PolarDB凭据

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

在KMS托管PolarDB凭据时,仅支持双账号托管。即在KMS配置PolarDB凭据信息时,您需要自定义PolarDB数据库的账号,此时KMS会调用PolarDB的API新创建两个权限相同的PolarDB数据库账号及口令所以在轮转时采用交替修改账号口令的方式进行,流程示例如下:

image
重要
  • 轮转PolarDB凭据时请勿删除凭据相关联的PolarDB实例和账号。

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

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

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

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

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

    1. 周期性轮转,轮转周期支持:6小时~365天

    2. 立即轮转,用户点击立即轮转后,等待后台任务拉起到轮转完成,预计耗时3分钟完成。

    3. 轮转结果通过云监控透出。

2、凭据检测

KMS提供凭据检测功能,该功能可检测当前凭据保护的PolarDB实例的数据库账号状态是否正常,是否被删除停用。检测通过说明该凭据可以正常轮转,否则您需要删除后重新创建PolarDB凭据。

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

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

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

3、删除PolarDB凭据

警告

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

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

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

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

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

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

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

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

4、配置凭据标签

凭据的标签,方便您对凭据进行分类管理。每个标签由一个键值对(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后,在凭据列表中勾选要操作的凭据。

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

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