KMS的凭据管理(Secrets Manager)功能为您提供凭据的全生命周期管理和安全便捷的应用接入方式,帮助您规避在代码中硬编码凭据带来的敏感信息泄露风险。

为什么使用凭据管理功能

数据库账号口令、服务器账号口令、SSH Key、访问密钥等凭据的泄露,是当今数据安全面临的主要威胁之一。为了降低数据泄露的安全风险,执行有效的凭据保护和周期性轮转非常关键。企业在实施凭据保护和轮转策略时,面临以下挑战:

  • 为了保护凭据,需要对其进行加密。应用部署的流程变长,带来很高的研发运维成本,也很难强制执行。
  • 缺乏凭据自动轮转的软件设施,而人工轮转依赖安全、运维、研发等多个角色相互配合,流程制定和实施难度高且容易出错。
  • 缺乏针对凭据泄露事件的快速应急响应能力,处理凭据泄露事件时容易造成系统故障。
  • 缺乏对各类云资源所需凭据的中心化管理手段,无法实现规模化管理,管理成本高。
使用KMS的凭据管理功能可以为您带来以下安全优势:
  • 通过托管和加密凭据,防止凭据硬编码带来的凭据泄露以及高价值资产泄露,提升数据安全性。
  • 提供安全便捷的客户端接入方式,应用程序以无代码或者低代码的方式,动态使用凭据。
  • 具备应急处置能力,当您通过立即轮转的方式更新凭据时,应用程序不受影响。
  • 支持高频次轮转的全动态凭据,缩小凭据的有效时间窗口,进一步避免凭据泄露带来的安全风险。
  • 支持通过API、阿里云ROS或Terraform等运维编排工具,满足中心化、规模化的安全管理需求。

应用场景

以数据库用户名和口令为例,为您介绍基本的凭据托管和使用场景。

基本场景
  1. 管理员在目标数据库配置MyApp访问数据库所需的用户名和密码。
  2. 管理员在KMS创建一个凭据对象MyDbCreds,用来加密存储上述用户名和密码。
  3. 当MyApp需要访问数据库时,需要向KMS请求凭据MyDbCreds。
  4. KMS读取到存储的凭据密文,解密后将明文通过HTTPS返回给MyApp。
  5. MyApp读取并解析KMS返回的凭据明文,获取到用户名和密码,使用该账号可以访问目标数据库。

对应用MyApp而言,通过调用KMS的API来获取敏感的凭据,避免了在程序中硬编码凭据带来的信息泄露风险。硬编码凭据和使用KMS的应用程序之间的差异,如下图所示。

凭据差异

功能特性

  • 加密保护凭据:KMS使用您指定的密钥对凭据进行加密保护。
    重要 密钥和凭据需要属于同一个KMS实例,且密钥必须为对称密钥。关于KMS支持哪些对称密钥,请参见密钥管理类型和密钥规格
  • 动态使用凭据:在程序中通过凭据管理SDK,动态读取凭据,使用实时的最新凭据。
  • 自动轮转凭据:KMS对特定类型凭据支持“开箱即用”的自动轮转,您也可以通过函数计算编码的方式,自定义周期性轮转凭据。
  • 控制访问和审计使用:您可以通过访问控制RAM控制对凭据的访问,也可以通过操作审计Actiontrail审计对凭据的轮转、读取等操作。

支持的凭据类型

KMS支持托管四种凭据:通用凭据、RAM凭据、RDS凭据、ECS凭据,不同类型凭据的详细说明见下表。

凭据类型说明凭据轮转方式参考文档
通用凭据通用凭据(Generic Secret)是KMS支持的基础类型凭据。您可以使用通用凭据存储账号口令、访问密钥、OAuth密钥和Token、API Key等任意的敏感数据。支持通过函数计算编码的方式周期性轮转凭据,也支持通过为凭据存入新凭据值来立即轮转凭据。
RAM凭据RAM凭据是指RAM用户的访问密钥(AccessKey),包括AccessKey ID和AccessKey Secret,用于RAM用户在调用阿里云API时完成身份验证。

KMS支持托管RAM凭据,对RAM凭据进行全自动周期性轮转和立即轮转,从而帮助您降低RAM凭据泄漏风险。通过使用RAM凭据插件,您在应用程序开发时可更方便的集成RAM凭据。

支持配置周期性轮转凭据,也支持立即轮转。
RDS凭据RDS凭据是指RDS(阿里云关系型数据库)实例的数据库账号和密码。KMS支持托管RDS凭据,支持对凭据进行全自动的周期性轮转和立即轮转,降低业务数据面临的安全威胁。支持配置周期性轮转凭据,也支持立即轮转。
ECS凭据ECS凭据是指您登录ECS实例时用于身份验证的口令和公私钥。KMS支持托管ECS凭据,支持对凭据进行全自动的周期性轮转和立即轮转,为ECS实例更换高强度口令和公私钥,从而降低ECS凭据泄露的风险。支持配置周期性轮转凭据,也支持立即轮转。