本文列出了密钥管理服务KMS(Key Management Service)提供的API接口及相关描述。
密钥服务接口
- 用户主密钥管理
密钥管理接口用于密钥的创建、属性修改以及生命周期管理。
API 描述 CreateKey 创建用户主密钥。用户可以选择由KMS生成密钥材料,也可以选择自己上传密钥材料(即是BYOK,此时CreateKey是BYOK的第一步)。 GetParametersForImport 创建外部密钥(BYOK)的第二步:获取导入主密钥的材料。 ImportKeyMaterial 创建外部密钥(BYOK)的第三步:导入密钥材料到用户主密钥中,完成外部密钥的创建。 EnableKey 修改密钥的状态为启用。 DisableKey 修改密钥的状态为禁用。 SetDeletionProtection 为用户主密钥(CMK)开启或关闭删除保护。 ScheduleKeyDeletion 计划删除密钥。将密钥的状态设置为待删除状态,处于待删除状态的主密钥,会在计划日期到期后删除。 CancelKeyDeletion 取消计划删除。处于待删除状态的密钥,在计划的日期到期之前,可以取消删除的计划,重新设置密钥状态为启用。 DeleteKeyMaterial 直接删除用户主密钥的密钥材料。针对导入的外部密钥(BYOK),可以直接删除导入的密钥材料,删除密钥材料后的用户主密钥状态为等待导入。 DescribeKey 查询指定密钥的信息。 ListKeys 列出云账号在本地域的所有密钥。 UpdateKeyDescription 更新用户主密钥的描述信息。 - 密钥版本管理
密钥版本管理接口用于对主密钥进行密钥轮转。
API 描述 DescribeKeyVersion 查看一个密钥版本。 ListKeyVersions 列出主密钥的所有密钥版本。 UpdateRotationPolicy 更新对称主密钥的轮转策略。如果配置自动轮转,KMS将周期性自动生成新的密钥版本。 CreateKeyVersion 创建新的密钥版本,适用于非对称密钥。 - 密码运算
密码运算接口用于对数据进行密码运算,例如数据的加密和解密。
API 描述 Encrypt 使用指定用户主密钥加密数据,用于少量数据(不多于6KB)的在线加密。 GenerateDataKey 产生一个随机数,并用指定的用户主密钥加密后,返回随机数的密文以及明文。随机数可被用作数据密钥,在本地做大量数据加密或解密。 GenerateDataKeyWithoutPlaintext 产生一个随机数,并用指定的用户主密钥加密后,返回随机数的密文。随机数可被用作数据密钥,在本地做大量数据加密或解密。 ExportDataKey 使用传入的公钥加密导出数据密钥。 GenerateAndExportDataKey 随机生成一个数据密钥,通过您指定的主密钥(CMK)和公钥加密后,返回CMK加密数据密钥的密文和公钥加密数据密钥的密文。 Decrypt 解密Encrypt或GenerateDataKey接口产生的密文,不需要指定用于解密的用户主密钥。 ReEncrypt 对密文进行转加密。即先解密密文,然后将解密得到的数据或者数据密钥使用新的主密钥再次进行加密,返回加密结果。 AsymmetricSign 非对称密钥的私钥运算:产生数字签名。 AsymmetricVerify 非对称密钥的公钥运算:验证私钥产生的数字签名。 AsymmetricDecrypt 非对称密钥的私钥运算:解密公钥加密的数据。 AsymmetricEncrypt 非对称密钥的公钥运算:加密数据。 GetPublicKey 获取非对称密钥的公钥,可用于离线验证数字签名,或者加密数据。 - 别名管理
别名是独立的对象,但是必须和唯一的用户主密钥进行绑定,从而可以在特定API中代替KeyId参数来指代用户主密钥。
API 描述 CreateAlias 创建一个别名,并且将别名与一个用户主密钥绑定。 UpdateAlias 更新已存在的别名所代表的主密钥(CMK)ID。 DeleteAlias 删除别名。 ListAliases 列出云账号在本地域的所有别名。 ListAliasesByKeyId 列出与指定用户主密钥绑定的别名。
凭据管家接口
KMS凭据管家提供凭据的托管、保护、分发和轮转能力。
API | 描述 |
---|---|
CreateSecret | 创建凭据,并存入凭据的初始版本。 |
ListSecrets | 查询当前用户云账号所在地域的所有凭据。 |
DeleteSecret | 删除凭据对象。 |
DescribeSecret | 获取凭据的元数据信息。 |
GetSecretValue | 获取凭据值。 |
PutSecretValue | 为凭据存入一个新版本的凭据值。 |
UpdateSecret | 更新凭据的元数据。 |
UpdateSecretVersionStage | 更新凭据的版本状态。 |
RestoreSecret | 恢复被删除的凭据。 |
ListSecretVersionIds | 查询凭据的所有版本信息。 |
GetRandomPassword | 获得一个随机密码串。 |
证书接口
证书接口用于证书的创建、删除、更新、查询、签名验签等操作。
API | 描述 |
---|---|
CreateCertificate | 创建证书。 |
UploadCertificate | 将CA机构颁发的证书和证书链导入证书管家。 |
GetCertificate | 查询证书管家托管的证书。 |
DescribeCertificate | 查询证书信息。 |
UpdateCertificateStatus | 更新证书状态。 |
DeleteCertificate | 删除证书及其对应的私钥和证书链。 |
CertificatePrivateKeySign | 使用指定证书生成数字签名。 |
CertificatePublicKeyVerify | 使用指定证书验证数字签名。 |
CertificatePublicKeyEncrypt | 使用指定证书加密数据。 |
CertificatePrivateKeyDecrypt | 使用指定证书解密数据。 |
标签管理接口
用户主密钥支持标签。您可以为用户主密钥添加多个标签,每一个标签为一组标签键(TagKey)和标签值(TagValue)。
API | 描述 |
---|---|
TagResource | 为用户主密钥或者凭据添加或修改标签。 |
UntagResource | 删除用户主密钥或者凭据的指定标签。 |
ListResourceTags | 列出用户主密钥或者凭据的所有标签。 |
其他
API | 描述 |
---|---|
DescribeRegions | 查询当前账户的可用地域列表。 |
OpenKmsService | 为当前阿里云账号开通密钥管理服务。 |
DescribeAccountKmsStatus | 查询当前阿里云账号的密钥管理服务状态。 |