密钥服务是KMS的核心组件,支持管理软件密钥、硬件密钥、默认密钥,提供密钥的全生命周期管理和安全存储能力,同时支持基于云原生接口的极简数据加密和数字签名。本文介绍KMS提供的密钥管理类型及密码运算API。
密钥管理类型
KMS提供默认密钥、软件密钥和硬件密钥、外部密钥四种密钥管理类型,以满足不同业务场景、安全与合规要求。具体内容如下表所示。
使用默认密钥无需购买KMS实例,使用软件密钥、硬件密钥、外部密钥,需要购买KMS实例。关于实例功能间的区别,请参见产品选型。
密钥管理类型 | 应用场景 | 功能描述 | 算法类型 | 密钥规格 | 说明 |
默认密钥 | 被云产品集成用于服务端加密。更多信息,请参见云产品集成KMS加密概述。 | 仅支持数据加密解密。 | AES | Aliyun_AES_256 | 默认密钥包含:
|
软件密钥 |
| 支持数据加密解密和数字签名。 | AES、RSA、ECC |
更多信息,请参见密钥管理类型和密钥规格。 | 由您在KMS创建和管理生命周期,密钥材料由KMS生成。 说明 暂不支持您自主导入密钥材料。 |
硬件密钥 |
| 支持数据加密解密和数字签名。 | AES、RSA、ECC |
更多信息,请参见密钥管理类型和密钥规格。 | 由您在KMS创建和管理生命周期,密钥材料可由KMS生成,也可以由您自主导入。 重要 使用硬件密钥管理功能前,您需要购买加密服务提供的密码机实例并完成密码机集群的相关配置。密码机实例可满足FIPS 140-2 第三级的合规性。 |
外部密钥 |
| 支持数据加密解密。 | AES | Aliyun_AES_256 | 密钥由您在XKI管理服务中创建,然后导入到KMS中。在XKI中创建的密钥由您自行管理生命周期。 |
密码运算API
KMS提供了云原生的密码运算API,与传统密码机或密码软件库的API相比更简单易用。同时,KMS提供了多种SDK以加速开发过程。关于应用程序如何集成主密钥进行数据加密、解密等密码方案,请参见SDK参考。
使用KMS提供的密钥接口前,请关注以下信息:
AdvanceEncrypt、AdvanceDecrypt、AdvanceGenerateDataKey和GenerateDataKey:KMS密钥应为对称密钥。
Encrypt和Decrypt:KMS密钥可以为对称密钥,也可以为非对称密钥。
Sign、Verify和GetPublicKey:KMS密钥应为非对称密钥。
API | 描述 |
用于将明文数据通过KMS密钥加密为密文。 重要
| |
将使用KMS密钥加密的密文解密为明文。 | |
用于生成数据密钥,对数据按照KMS信封加密方式加密。 重要 您需要存储密文(CiphertextBlob)和认证数据(Aad),然后使用AdvanceDecrypt解密。 | |
用于将明文数据通过KMS密钥加密为密文。 重要 您需要存储密钥的全局唯一标识符(KeyId)、密文(CiphertextBlob)、加密算法(Algorithm)、初始向量(Iv)、填充模式(PaddingMode)和认证数据(Aad),然后使用Decrypt或AdvanceDecrypt解密。 | |
将使用KMS密钥加密的密文解密为明文。 | |
用于生成数据密钥,对数据按照KMS信封加密方式加密。 | |
使用非对称密钥进行签名。 重要 您可以通过Verify接口验证签名,也可获取公钥(GetPublicKey)到本地自行验证签名。 | |
使用非对称密钥进行验签。 | |
获取指定非对称密钥的公钥。 |