本文列出了密钥管理服务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 解密EncryptGenerateDataKey接口产生的密文,不需要指定用于解密的用户主密钥。
    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 查询当前阿里云账号的密钥管理服务状态。