本文为您介绍凭据加密方式、安全分发凭据的实现原理、访问控制和凭据的使用,以及凭据定期轮转方式。

凭据管理是企业IT系统运维安全的核心诉求之一。KMS凭据管家为您提供凭据的创建、检索、更新、删除等全生命周期的管理服务,轻松实现对敏感凭据的统一管理。用户或应用程序可以通过调用凭据管理API,规避账号口令、访问密钥、服务器证书硬编码等风险问题,有效避免敏感信息泄密以及权限失控的业务风险。

加密保护凭据

使用凭据管家,您可以托管各种类型的凭据,包括但不限于访问密钥、API密钥、服务器证书和私钥、账号口令等。凭据管家对您托管的凭据进行加密存储,保证其在服务端的安全性。凭据支持以下两种加密方式:

  • 默认系统加密

    如果您不指定特定的KMS主密钥作为凭据的保护机制,凭据管家会在您首次托管凭据时,自动生成一个凭据管家专用的主密钥,用于默认加密保护您阿里云账号内的托管凭据。这个自动生成的默认加密密钥归属于凭据管家,您无需管理、查看、审计其使用,也无需为其付费。

    说明 凭据管家会为每一个阿里云账号分配一个独立的KMS主密钥用作默认加密密钥。
  • 自选密钥加密

    您可以指定一个KMS主密钥作为凭据对象的加密密钥,凭据管家会在您存入凭据明文时,生成一个数据密钥用于加密凭据明文,并且将凭据的密文、数据密钥的密文存入持久化存储中。通过这种方式,您可以在KMS管理主密钥的生命周期,在操作审计查看和审计KMS主密钥的调用记录。操作审计详细介绍,请参见什么是操作审计

    说明 自选密钥加密凭据时,您需要注意以下事项:
    • 除了凭据的相应权限,在以下情形,您需要额外具备关联的KMS主密钥的使用权限:
      • 当您调用CreateSecret接口或PutSecretValue接口存入凭据值时,需要具备相应加密主密钥的kms:GenerateDataKey权限,以便凭据管家以调用者的身份调用GenerateDataKey接口产生数据密钥,随后使用数据密钥加密凭据值。

        API接口详情,请参见:

      • 当您调用GetSecretValue接口读取凭据值时,需要具备相应加密主密钥的kms:Decrypt权限,以便凭据管家以调用者的身份调用Decrypt接口解密数据密钥,随后使用数据密钥解密凭据值的密文。

        API接口详情,请参见:

    • 凭据的加密主密钥,可以被独立管理,其密钥状态会影响您使用凭据。例如:如果凭据的加密主密钥处于禁用(Disabled)或者待删除(PendingDeletion)状态,则不能对被保护的凭据执行上一条说明中提到的存入凭据值,或者读取凭据值的相应操作。

安全分发凭据

凭据管家可以帮助您安全的分发敏感的凭据。您无需将凭据的明文作为静态信息配置在代码、配置文件或数据库中,只需为应用程序配置凭据管家中的凭据名称,在应用系统需要时动态的获取凭据的明文。实现原理如下:

  1. 服务端使用相应的KMS主密钥解密凭据对应的数据密钥密文。
  2. 凭据管家使用数据密钥的明文解密凭据的密文。
  3. 凭据管家通过HTTPS信道加密的方式返回凭据给客户端。
  4. 客户端通过HTTPS信道解密获取凭据的明文。

控制访问和审计使用

企业的信息系统可能有成千上万的凭据需要管理,请您使用凭据管家时,合理的分配每个凭据的使用权限。KMS凭据管家与访问控制和操作审计服务集成,为您提供如下功能:
  • 控制对凭据的访问

    方便您自定义细粒度的权限策略,防范对敏感信息的非法访问和泄漏。

  • 审计对凭据的使用

    您可以通过持续监控对凭据的访问,还可以将审计日志接入SIEM解决方案等方式进一步提升威胁检测和响应能力。

定期轮转凭据

凭据的定期轮转可以极大的降低安全风险。通过KMS凭据管家,凭据的管理者和凭据的使用者(应用系统)采用发布、订阅(pub-sub)的模式对凭据进行管理分发,使得管理者可以从发布侧进行定期轮转,而使用者(应用系统)通过定时重新请求或采用实时请求的方式,保证使用最新的凭据。

KMS凭据管家为定期轮转凭据进行数据模型的优化,支持凭据对象内保存多个版本的凭据值。每个版本通过状态标记(Stage Label)的方式,来辅助自动化轮转。最常见的轮转场景里,通常有两个版本的凭据值:“当前版本”和“先前版本”,凭据管家内建了ACSCurrentACSPrevious两个状态的标记以及相应的变换规则,方便您切换“当前版本”。客户端调用GetSecretValue接口时,如果不指定状态标记或版本号,则默认获取被标记为ACSCurrent状态的版本。