本文解释了密钥管理服务KMS(Key Management Service)的基本概念,帮助您正确理解和使用KMS。

概念 说明
密钥服务(Key Service) 密钥服务提供密钥的全托管和保护,支撑基于云原生接口的极简数据加密和数字签名。

关于密钥服务的更多信息,请参见密钥服务概述

用户主密钥CMK(Customer Master Key) 用户主密钥主要用于加密保护数据密钥并产生信封,也可直接用于加密少量的数据。您可以调用CreateKey创建一个用户主密钥。
密钥材料(Key Material) 密钥材料是密码运算操作的重要输入之一。建议您对非对称密码算法的私钥的密钥材料和对称密码算法的密钥材料保密,以保护基于密钥材料的密码运算操作。

用户主密钥(CMK)是KMS的基本资源,由密钥ID、基本元数据以及密钥材料组成。默认情况下,当您创建CMK时,会由KMS生成密钥材料,创建后它的Origin属性为Aliyun_KMS。您也可以选择创建密钥材料来源为外部的密钥(Origin属性为EXTERNAL),此时,KMS将不会为该CMK生成密钥材料,您可以为该CMK导入密钥材料。

关于密钥材料的更多信息,请参见导入密钥材料

信封加密(Envelope Encryption) 当您需要加密业务数据时,您可以调用GenerateDataKeyGenerateDataKeyWithoutPlaintext生成一个对称密钥,同时使用指定的用户主密钥加密该对称密钥(被密封的信封保护)。在传输或存储等非安全的通信过程中,直接传递被信封保护的对称密钥。当您需要使用该对称密钥时,打开信封取出密钥即可。

关于信封加密的更多信息,请参见使用KMS信封加密在本地加密和解密数据

数据密钥DK(Data Key) 数据密钥是加密数据使用的明文数据密钥。

您可以调用GenerateDataKey生成一个数据密钥,同时使用指定用户主密钥加密该数据密钥,返回数据密钥的明文(DK)和密文(EDK)。

信封数据密钥EDK(Enveloped Data Key/Encrypted Data Key) 信封数据密钥是通过信封加密技术保密后的密文数据密钥。

如果暂时不需要数据密钥的明文,您可以调用 GenerateDataKeyWithoutPlaintext仅返回数据密钥密文。

硬件安全模块HSM(Hardware Security Module) 硬件安全模块也称为密码机,是一种执行密码运算、安全生成和存储密钥的硬件设备。KMS提供的托管密码机可以满足监管机构的检测认证要求,为您在KMS托管的密钥提供更高的安全等级保证。

关于硬件安全模块的更多信息,请参见托管密码机概述

加密上下文(Encryption Context) 加密上下文是KMS对可认证加密AEAD(Authenticated Encryption with Associated Data)的封装。KMS将传入的加密上下文作为对称加密算法的额外认证数据AAD(Additional Authenticated Data)进行密码运算,从而为加密数据额外提供完整性(Integrity)和可认证性(Authenticity)的支持。

关于加密上下文的更多信息,请参见EncryptionContext说明

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

关于凭据管家的更多信息,请参见凭据管家概述

应用接入点(Application Access Point) 应用接入点是KMS原生的访问控制手段,用于对KMS资源访问者进行身份认证和行为鉴权。

关于应用接入点的更多信息,请参见管理应用接入点

证书管家(Certificates Manager) 证书管家为您提供高可用、高安全的密钥和证书托管能力,以及签名验签能力。

关于证书管家的更多信息,请参见证书管家概述

专属KMS(Dedicated KMS) 专属KMS是专属于您的云上私有密钥管理服务。您可以完全掌控自己的专属KMS,例如:指定专属KMS所部署的专有网络VPC、配置专属KMS使用的密码资源池或定义应用接入RBAC(Role-Based Access Control)策略等。

关于专属KMS的更多信息,请参见概述

凭据(Secrets) 凭据是用于对应用程序进行身份验证的敏感信息,例如数据库账号密码、SSH Key、敏感地址、AK敏感数据等内容。