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

为什么使用凭据管家

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

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

应用场景

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

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

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

凭据差异

功能特性

  • 加密保护凭据:凭据管家使用KMS中的用户主密钥(CMK)对凭据进行加密保护。您既可以指定特定的CMK,也可以依赖凭据管家为您自动生成的CMK。凭据管家会为每个阿里云账号在每个地域分配一个独立的CMK用作默认系统加密。
  • 动态使用凭据:在程序中通过凭据管家的客户端工具,动态读取凭据,使用实时的最新凭据。
  • 自动轮转凭据:凭据管家对特定类型凭据支持“开箱即用“的自动轮转,您也可以通过函数计算编码的方式,自定义周期性轮转凭据。
  • 控制访问和审计使用:您可以通过访问控制RAM控制对凭据的访问,也可以通过操作审计Actiontrail审计对凭据的轮转、读取等操作。

使用凭据管家

凭据管家主要用于安全管理、应用研发和部署。
  • 安全管理
    基于实际使用场景选择合适的凭据类型,创建、管理和轮转凭据。
  • 应用研发和部署

    您可以使用KMS SDK、凭据管家客户端、Kubernetes插件等多种方式接入凭据管家,通过凭据的名称,在应用中动态读取凭据的敏感值。更多信息,请参见:应用程序接入凭据管家