SDK參考
本文為您介紹購買了軟件密鑰管理實例或硬件密鑰管理實例后,應用程序通過API管理以及使用KMS實例中資源時可使用的SDK。
阿里云SDK
應用程序集成阿里云SDK,通過KMS服務Endpoint,調用OpenAPI完成如下操作:
管控類操作:包含默認密鑰、KMS實例相關的管控類操作,例如創建密鑰、創建憑據、創建KMS實例、修改密鑰標簽等。KMS所有的管控類操作僅支持使用阿里云SDK。
獲取憑據值:獲取KMS實例中憑據的憑據值。
如果自建應用需要進行密碼運算操作:
使用非KMS實例中的密鑰:僅支持使用阿里云SDK。
使用KMS實例中的密鑰:支持阿里云SDK和KMS實例SDK。但使用阿里云SDK時,認證方式僅支持可信實體為阿里云服務的RAM角色。詳細信息,請參見創建可信實體為阿里云服務的RAM角色。
阿里云SDK是封裝好的用于調用云產品OpenAPI的程序依賴包,方便開發者快速構建與阿里云相關的應用程序。目前,阿里云提供V1.0版本和V2.0版本,具體差異和選用指導,請參考V1.0 SDK和V2.0 SDK。
阿里云SDK(V2.0)支持Java(Java 6及以上版本)、Python、C++、PHP、.NET(僅C#)、Go、TypeScript、Swift語言。阿里云SDK(V1.0)支持Java(Java 6及以上版本)、Python、C++、PHP、.NET(僅C#)、Go語言。詳細信息,請參見阿里云SDK概覽。
在正式環境中使用阿里云SDK獲取憑據值時,請您做好錯誤重試、憑據緩存等業務邏輯,避免網絡抖動導致獲取憑據值失敗。更推薦您使用憑據SDK。
KMS實例SDK
應用程序通過KMS實例SDK訪問KMS實例Endpoint,使用KMS實例中的密鑰完成密碼運算操作、獲取KMS實例中的憑據。
支持Java(Java 8及以上版本)、PHP、Go、Python、.NET(僅C#)語言。詳細內容,請參見KMS實例SDK。
在正式環境中使用KMS實例SDK獲取憑據值時,請您做好錯誤重試、憑據緩存等業務邏輯,避免網絡抖動導致獲取憑據值失敗。更推薦您使用憑據SDK。
憑據SDK
僅支持獲取憑據值。
在正式環境中使用憑據SDK時,請您做好錯誤重試的業務邏輯,避免網絡抖動導致獲取憑據值失敗。
憑據SDK包含如下3種:
憑據客戶端:支持所有憑據類型,支持您在應用中一行代碼快速獲取憑據。憑據客戶端還封裝了在應用中緩存和刷新憑據的功能,業務穩定性更高。支持Java(Java 8及以上版本)、Go、Python語言。
憑據JDBC客戶端:僅支持RDS憑據和憑據值滿足特定格式要求的通用憑據。當您通過JDBC、數據庫連接池(包含c3p0和DBCP)以及數據庫開源框架的方式連接數據庫時,可以使用該SDK完成數據庫連接身份鑒別,并支持自定義憑據刷新頻率。僅支持Java(Java 8及以上版本)語言。
說明使用憑據JDBC客戶端時,您需要已安裝憑據客戶端。
RAM憑據插件:僅支持RAM憑據。應用程序使用阿里云SDK(僅支持V1.0)、OSS-SDK、消息隊列商業版TCP協議Java SDK時,使用RAM憑據插件獲取RAM憑據值(AccessKey),完成身份認證。支持Java(Java 8及以上版本)、Go、Python語言。
Endpoint說明
KMS提供了兩種Endpoint:
KMS服務Endpoint:KMS服務的全局網絡地址,以便客戶端建立與KMS服務的連接并調用相應的OpenAPI接口,可通過公網或私網訪問。詳細的KMS服務Endpoint,請參見接入點說明。
KMS實例Endpoint:特定KMS實例的網絡地址,以便客戶端建立與KMS實例的連接并調用相應的實例API接口,僅支持私網訪問。
格式為
{實例ID}.cryptoservice.kms.aliyuncs.com
,您也可以在實例管理頁面查看實例詳情,獲取實例VPC地址,去掉https://
后即KMS實例Endpoint。
使用憑據SDK,既可以通過KMS服務Endpoint,也可以通過KMS實例Endpoint獲取憑據值。相比KMS服務Endpoint,使用KMS實例Endpoint具有以下優點,因此通常建議您使用KMS實例Endpoint。
客戶端直接與KMS實例進行通信,可以減少網絡延遲。
只有該實例配置的應用接入點授權的客戶端才能與該實例進行通信,從而增強了安全性和控制性。
提供更高的業務QPS。更多信息,請參見性能數據。