本文列出了密鑰管理服務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 查詢當前阿里云賬號的密鑰管理服務狀態。