全部產品
Search
文件中心

Key Management Service:KMS SDK參考

更新時間:Mar 27, 2025

KMS提供阿里雲SDK、憑據SDK和執行個體SDK(不推薦)三類SDK,本文介紹其接入流程、認證鑒權、支援的API、支援訪問網關類型等資訊,使用者可根據業務需求選擇適合的SDK。

SDK 接入流程圖

阿里雲SDK

阿里雲SDK是封裝好的用於調用雲產品OpenAPI的程式依賴包,方便開發人員快速構建與阿里雲相關的應用程式,不僅支援憑據和密鑰的管控類API還支援業務類API。支援Java、Python、C++、PHP、.NET(僅C#)、Go、TypeScript、Swift多種語言。更多關於阿里雲SDK資訊,請參見阿里雲SDK

支援的API

阿里雲SDK支援調用OpenAPI執行KMS管控類操作業務類操作。更多關於API支援情況可參見阿里雲 SDK支援的OpenAPI

  • 管控類操作:包含預設密鑰、KMS執行個體相關的管控類操作,例如建立密鑰、建立憑據、建立KMS執行個體、修改密鑰標籤等。

  • 業務類操作:

    • 密碼運算:對稱加解密、非對稱加解密、信封加密、產生資料密鑰、數位簽章、驗證簽名等與密碼學相關的操作。

    • 擷取憑據值:擷取KMS執行個體中憑據的憑據值。

重要

在正式環境中使用阿里雲SDK擷取憑據值時,請您做好錯誤重試、憑據緩衝等商務邏輯,避免網路抖動導致擷取憑據值失敗,具體操作可參考見使用指數退避方法對請求錯誤進行重試

支援的網關類

阿里雲SDK支援通過共用網關或專屬網關來訪問OpenAPI和執行個體API。其中管控類API操作僅可通過共用網關訪問,而業務類API既支援通過共用網關也能通過專屬網關訪問。

網關類型

推薦使用情境

身份認證和鑒權

支援的API

共用網關

  • 業務需要通過API操作包括執行個體、密鑰、憑據相關的管控操作,例如建立密鑰、建立憑據、建立KMS執行個體等操作。

  • 業務部署在非阿里雲VPC上。

  • 非正式環境訪問KMS,例如:自我裝載環境。

RAM鑒權

全部OpenAPI

專屬網關

  • 業務部署在阿里雲VPC。

  • 業務類操作例如加解密、擷取憑據等操作頻繁,對效能要求較高。

  • 業務資料有較高的安全性要求。

RAM鑒權

OpenAPI-密碼運算、OpenAPI-擷取憑據值

憑據SDK

憑據SDK是基於KMS OpenAPI和KMS執行個體API的自訂封裝,實現在應用中緩衝和重新整理憑據的功能,業務穩定性更高且更易於開發人員在業務應用中整合。僅支援擷取憑據,包含憑據用戶端、憑據JDBC用戶端、RAM憑據外掛程式三種SDK,支援Java(Java 8及以上版本)、Python、Go多種語言。更多關於憑據SDK資訊,請參見憑據SDK

憑據SDK類型

SDK

功能說明

憑據用戶端

  • 支援所有憑據類型

  • 支援您在應用中一行代碼快速擷取憑據。

  • 憑據用戶端還封裝了在應用中緩衝和重新整理憑據的功能,業務穩定性更高。

憑據JDBC用戶端

  • 開發語言必須為Java(Java 8及以上版本)。

  • 僅支援RDS憑據和憑據值滿足{"AccountName":"<您的資料庫帳號使用者名稱>","AccountPassword":"<您的資料庫帳號密碼>"}格式的通用憑據

  • 當您通過JDBC、資料庫連接池(包含c3p0和DBCP)以及資料庫開源架構的方式串連資料庫時,可以使用憑據JDBC用戶端完成資料庫連接身份鑒別,並支援自訂憑據重新整理頻率。

RAM憑據外掛程式

  • 僅支援RAM憑據

  • 業務應用需要使用該外掛程式支援的SDK版本,詳情參見支援的阿里雲SDK

支援的API

憑據SDK僅支援通過OpenAPI和執行個體API(不推薦)執行擷取憑據值的業務類操作,憑據管控類操作請使用阿里雲SDK。

重要

在正式環境中使用憑據SDK擷取憑據值時,請您做好錯誤重試、憑據緩衝等商務邏輯,避免網路抖動導致擷取憑據值失敗,具體操作可參考見使用指數退避方法對請求錯誤進行重試

持的網關類

憑據SDK通過共用網關或專屬網關來擷取憑據值。其中共用網關支援RAM鑒權和AAP鑒權調用OpenAPI,專屬網關僅支援AAP鑒權調用執行個體API。

網關類型

推薦使用情境

鑒權

支援的API

共用網關

  • 擷取憑據操作效能要求不高

  • 業務部署在非阿里雲VPC上。

  • 非正式環境訪問KMS,例如:自我裝載環境。

RAM鑒權

OpenAPI-擷取憑據值

AAP鑒權(不推薦)

執行個體API-擷取憑據值

專屬網關

  • 業務部署在阿里雲VPC。

  • 擷取憑據等操作頻繁。

  • 業務資料有較高的安全性要求。

AAP鑒權(不推薦)

執行個體API-擷取憑據值

KMS執行個體SDK(不推薦)

應用程式通過KMS執行個體SDK訪問專屬網關Endpoint,完成密碼運算操作、擷取憑據值。支援Java(Java 8及以上版本)、PHP、Go、Python、.NET(僅C#)語言。詳細內容,請參見KMS執行個體SDK(不推薦)

網關Endpoint及鑒權說明

網關Endpoint說明

KMS提供了兩種Endpoint:

  • 共用網關Endpoint(KMS服務Endpoint):KMS服務的全域網路地址,可通過公網或VPC網絡訪問。根據地區不同Endpoint不同,例如華東1(杭州):kms.cn-hangzhou.aliyuncs.com,kms-vpc.cn-hangzhou.aliyuncs.com,詳細的Endpoint請參見存取點說明

  • 專屬網關Endpoint(KMS執行個體Endpoint):特定KMS執行個體的網路地址,僅支援私網訪問。Endpoint格式為{執行個體ID}.cryptoservice.kms.aliyuncs.com

身份認證及鑒權說明

KMS提供RAM鑒權、AAP鑒權兩種鑒權方式,共用網關支援RAM鑒權、AAP鑒權,專屬網關僅支援AAP鑒權。

  • RAM鑒權:RAM角色、STS Token、ECS RAM角色、AK。

  • AAP鑒權(不推薦):建立應用存取點下載儲存認證檔案ClientKey,其中包含應用身份憑證內容(ClientKeyContent)憑證口令(ClientKeyPassword)。針對不同的網關提供專屬網關配置和共用網關配置兩種模式,具體配置可參考AAP鑒權