本文列举了密钥管理服务(KMS)提供的API接口,API接口详情请参见相关文档。

阿里云也提供命令行工具,供您学习API或用于命令行自动化。关于命令行工具的安装和使用,请参见阿里云CLI

用户主密钥管理接口

密钥管理接口用于密钥的创建、属性修改以及生命周期管理。

API 描述
CreateKey 创建用户主密钥。用户可以选择由KMS生成密钥材料;也可以选择自己上传密钥材料(也就是BYOK,此时CreateKey是BYOK的第一步)。
GetParametersForImport 创建外部密钥(BYOK)的第二步:获取导入主密钥的材料。
ImportKeyMaterial 创建外部密钥(BYOK)的第三步:导入密钥材料到用户主密钥中,完成外部密钥的创建。
EnableKey 修改密钥的状态为:启用。
DisableKey 修改密钥的状态为:禁用。
ScheduleKeyDeletion 计划删除密钥。将密钥的状态设置为待删除状态,处于待删除状态的主密钥,会在计划的日期到期后删除。
CancelKeyDeletion 取消计划删除。处于待删除状态的密钥,在计划的日期到期之前,可以取消删除的计划,重新设置密钥状态为:启用。
DeleteKeyMaterial 直接删除用户主密钥的密钥材料。针对导入的外部密钥(BYOK),可以直接删除导入的密钥材料,删除密钥材料后的用户主密钥状态为:等待导入。
DescribeKey 查询指定密钥的信息。
ListKeys 列出云帐号在本地域的所有密钥。
UpdateKeyDescription 更新用户主密钥的描述信息。

密钥版本管理接口

密钥版本管理接口用于对主密钥进行密钥轮转。

API 描述
DescribeKeyVersion 查看一个密钥版本。
ListKeyVersions 列出主密钥的所有密钥版本。
UpdateRotationPolicy 更新主密钥的轮转策略。如果配置自动轮转,KMS将周期性自动生成新的密钥版本。

密码运算接口

密码运算接口用于对数据进行密码运算,例如数据的加密和解密。

API 描述
Encrypt 使用指定用户主密钥加密数据,用于少量数据(不多于6KB)的在线加密。
GenerateDataKey 产生一个随机数,并用指定的用户主密钥加密后,返回随机数的密文以及明文。随机数可被用作数据密钥,在本地做大量数据加密或解密。
GenerateDataKeyWithoutPlaintext 产生一个随机数,并用指定的用户主密钥加密后,返回随机数的密文。随机数可被用作数据密钥,在本地做大量数据加密或解密。
Decrypt 解密EncryptGenerateDataKey接口产生的密文,不需要指定用于解密的用户主密钥。

别名管理接口

别名是独立的对象,但是必须和唯一的用户主密钥进行绑定,从而可以在特定API中代替KeyId参数来指代用户主密钥。

API 描述
CreateAlias 创建一个别名,并且将别名与一个用户主密钥绑定。
UpdateAlias 绑定指定别名到新的用户主密钥。
DeleteAlias 删除指定别名。
ListAliases 列出云帐号在本地域的所有别名。
ListAliasesByKeyId 列出与指定用户主密钥绑定的别名。

标签管理接口

用户主密钥支持标签。您可以为用户主密钥添加多个标签,每一个标签为一组标签键(TagKey)和标签值(TagValue)。

API 描述
TagResource 为用户主密钥添加或修改标签。
UntagResource 删除用户主密钥的指定标签。
ListResourceTags 列出用户主密钥的所有标签。