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