全部產品
Search
文件中心

Key Management Service:SDK使用概述

更新時間:Apr 21, 2026

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,例如:自我裝載環境。

全部OpenAPI

專屬網關

  • 業務部署在阿里雲VPC。

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

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

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通過共用網關或專屬網關來擷取憑據值。

網關類型

推薦使用情境

共用網關

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

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

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

專屬網關

  • 業務部署在阿里雲VPC。

  • 擷取憑據等操作頻繁。

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

KMS執行個體SDK(不推薦)

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

網關類型對應的Endpoint

KMS提供了兩種Endpoint:

  • 共用網關Endpoint(KMS服務Endpoint):KMS服務的全域網路地址,可通過公網或VPC網路訪問

    • 格式:kms.<地區ID>.cryptoservice.kms.aliyuncs.com,地區ID相關資訊,請參見地區和可用性區域

    • 樣本:華東1(杭州)的地址為:kms.cn-hangzhou.aliyuncs.com,通過VPC網路的地址為:kms-vpc.cn-hangzhou.aliyuncs.com

  • 專屬網關Endpoint(KMS執行個體Endpoint):特定KMS執行個體的網路地址,僅支援私網訪問

    • 格式:<KMS執行個體ID>.cryptoservice.kms.aliyuncs.com

    • 樣本:kst-hzz65f176a0ogplgq****.cryptoservice.kms.aliyuncs.com

身份認證及鑒權

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

  • RAM鑒權:RAM角色、STS Token、ECS RAM角色、AK等,更多方式請,參見請參見管理訪問憑據

    重要

    使用RAM鑒權方式,通過專屬網關使用執行個體下的密鑰和憑據時,需要配置CA認證。

  • AAP鑒權(不推薦):建立應用存取點下載儲存認證檔案ClientKey,其中包含应用身份凭证内容ClientKeyContent)憑證口令(ClientKeyPassword)

RAM鑒權

AccessKey

警告

阿里雲帳號預設有所有資源的Administrator許可權且不可修改,為了確保資源安全,建議使用RAM使用者建立AccessKey,並根據需求進行最小化授權。

  1. 登入RAM控制台,在頁用户面,單擊目標RAM使用者名稱稱。

  2. 认证管理頁簽下的AccessKey地區,單擊建立AccessKey,並按照指引完成建立。

  3. 授予RAM使用者訪問KMS的許可權。

    • 方式一:設定基於身份的策略

      單擊RAM使用者操作列的新增授权,直接綁定KMS內建系統權限原則到RAM角色。KMS內建系統權限原則,請參見Key Management Service系統權限原則參考

      說明

      同時支援自訂權限原則,具體操作請參見建立自訂權限原則

    • 方式二:設定基於資源的策略

      KMS支援基於資源的策略,即為單個密鑰和憑據設定存取權限,用於控制哪些阿里雲帳號、RAM使用者、RAM角色有許可權來管理或使用KMS密鑰、憑據。詳細介紹,請參見密鑰策略憑據策略

ECS RAM角色

ECS RAM角色是指為ECS執行個體授予的RAM角色,該RAM角色是一個受信服務為雲端服務器的普通服務角色。使用執行個體RAM角色可以實現在ECS執行個體內部無需配置AccessKey即可擷取臨時訪問憑證(STS Token),從而調用KMS的OpenAPI。

具體操作,請參見執行個體RAM角色

  1. 登入RAM控制台,建立可信實體為阿里雲服務的RAM角色。

    • 信任主體類型:選擇云服务器

    • 信任主體名稱:選擇Elastic Compute Service

  2. 授予RAM角色訪問KMS的許可權。

    • 方式一:設定基於身份的策略

      單擊RAM角色操作列的新增授权,直接綁定KMS內建系統權限原則到RAM角色。KMS內建系統權限原則,請參見Key Management Service系統權限原則參考

      說明

      同時支援自訂權限原則,具體操作請參見建立自訂權限原則

    • 方式二:設定基於資源的策略

      KMS支援基於資源的策略,即為單個密鑰和憑據設定存取權限,用於控制哪些阿里雲帳號、RAM使用者、RAM角色有許可權來管理或使用KMS密鑰、憑據。詳細介紹,請參見密鑰策略憑據策略

  3. 登入ECS管理主控台,將RAM角色授予ECS執行個體。image

AK+RamRoleArn

RAM使用者或雲產品可以通過扮演角色的方式擷取臨時許可權(STS Token),而不是直接使用長期密鑰,降低了密鑰泄露的風險。例如,在臨時的資料處理任務中,RAM使用者或雲產品臨時扮演一個具有特定RamRoleArn的角色,完成任務后角色許可權被收回,減少泄露風險。

  1. 建立使用者AK

    1. 登入RAM控制台,在身份管理 > 用户頁面,單擊目標RAM使用者名稱稱。

    2. 為RAM使用者指派系統策略 AliyunSTSAssumeRoleAccess或包含許可權操作sts:AssumeRole的自訂策略。

    3. 认证管理頁簽下的AccessKey地區,單擊建立AccessKey,並按照指引完成建立。

  2. 建立RAM角色並授權:

    1. 身份管理 > 角色頁面,單擊创建角色具體操作,請參見建立RAM角色

    2. 授予RAM角色訪問KMS的許可權。

      • 方式一:設定基於身份的策略

        單擊RAM角色操作列的新增授权,直接綁定KMS內建系統權限原則到RAM角色。KMS內建系統權限原則,請參見Key Management Service系統權限原則參考

        說明

        同時支援自訂權限原則,具體操作請參見建立自訂權限原則

      • 方式二:設定基於資源的策略

        KMS支援基於資源的策略,即為單個密鑰和憑據設定存取權限,用於控制哪些阿里雲帳號、RAM使用者、RAM角色有許可權來管理或使用KMS密鑰、憑據。詳細介紹,請參見密鑰策略憑據策略

  3. 擷取目標RAM角色的RamRoleArn。具體操作,請參見查看RAM角色

    1. 身份管理 > 角色頁面,單擊目標角色名稱。

    2. 進入角色詳情頁,在ARN地區可擷取RamRoleArn資訊。

      說明

      RamRoleArn是RAM角色的ARN資訊,即需要扮演的角色ID。格式為acs:ram::$accountID:role/$roleName。$accountID為阿里雲帳號ID。$roleName為RAM角色名稱。

STS Token

通過STS服務為RAM使用者或RAM角色頒發一個臨時訪問憑證(STS Token),可以在限定的有效期間內,以符合策略規定的許可權訪問KMS,超過有效期間後,該憑證自動失效。

  1. 登入RAM控制台,建立RAM使用者或RAM角色。具體操作,請參見建立RAM使用者建立RAM角色

  2. 為RAM使用者或RAM角色授予AliyunSTSAssumeRoleAccess許可權。具體操作,請參見管理RAM使用者的許可權管理RAM角色的許可權

  3. 授予RAM使用者或RAM角色訪問KMS的許可權。

    • 方式一:設定基於身份的策略

      單擊RAM角色或使用者操作列的新增授权,直接綁定KMS內建系統權限原則。KMS內建系統權限原則,請參見Key Management Service系統權限原則參考

      說明

      同時支援自訂權限原則,具體操作請參見建立自訂權限原則

    • 方式二:設定基於資源的策略

      KMS支援基於資源的策略,即為單個密鑰和憑據設定存取權限,用於控制哪些阿里雲帳號、RAM使用者、RAM角色有許可權來管理或使用KMS密鑰、憑據。詳細介紹,請參見密鑰策略憑據策略

  4. 使用RAM使用者或RAM角色調用STS服務的AssumeRole介面擷取STS臨時訪問憑證。具體操作,請參見AssumeRole - 擷取扮演角色的臨時身份憑證

OIDC Role ARN

  1. 建立OIDC身份供應商

    1. 使用Resource Access Management員登入RAM控制台,進入整合管理 > SSO管理頁面,並選擇角色SSO。

    2. OIDC頁簽,單擊创建身份提供商

    3. 创建身份提供商頁面,設定身份供應商資訊。具體配置,請參見管理OIDC身份供應商

  2. 擷取並儲存OIDC身份資訊(ARN和用戶端ID)

    1. 進入整合管理 > SSO管理頁面,單擊目標身份提供商名稱。

    2. 進入身份提供商詳情頁,可查看ARN用戶端識別碼。

  3. 建立OIDC身份供應商的RAM角色並授權

    1. 使用Resource Access Management員登入RAM控制台,在身份管理 > 角色頁面。

    2. 單擊创建角色,在建立頁面右上方,單擊切換編輯器

    3. 在編輯器中指定具體的OIDC身份供應商。選擇可視化編輯模式,並參考如下說明,完成配置。

      說明

      更多模式,請參見建立OIDC身份供應商的RAM角色

      1. 主體中選擇身份提供商後,單擊下方編輯。

      2. 添加主體彈窗中,參考如下說明,完成配置。

        • 身份提供商类型:選擇OIDC。

        • 身份提供商:選擇之前建立的OIDC身份供應商。

  4. 授予OIDC RAM角色訪問KMS的許可權

    • 方式一:設定基於身份的策略

      返回身份管理角色列表頁,單擊目標OIDC 角色操作列的新增授权,直接綁定KMS內建系統權限原則到RAM角色。KMS內建系統權限原則,請參見Key Management Service系統權限原則參考

      說明

      同時支援自訂權限原則,具體操作請參見建立自訂權限原則

    • 方式二:設定基於資源的策略

      KMS支援基於資源的策略,即為單個密鑰和憑據設定存取權限,用於控制哪些阿里雲帳號、RAM使用者、RAM角色有許可權來管理或使用KMS密鑰、憑據。詳細介紹,請參見密鑰策略憑據策略

  5. 擷取目標 Role ARN

    1. 身份管理 > 角色頁面,單擊目標角色名稱。

    2. 進入角色詳情頁,在ARN地區可擷取OIDC Role ARN資訊。

      說明

      Role ARN是RAM角色的ARN資訊,即需要扮演的角色ID。格式為acs:ram::$accountID:role/$roleName。$accountID為阿里雲帳號ID。$roleName為RAM角色名稱。

  6. 簽發並儲存OIDC令牌(OIDC Token)檔案

    阿里雲不支援在控制台上直接通過OIDC登入,但可以通過編程方式完成OIDC SSO流程。擷取OIDC令牌涉及一個OAuth流程,常用的方法包括標準的OAuth 2.0流程,從OIDC IdP,擷取OIDC Token。例如當應用程式運行於已啟用RRSA功能的ACK叢集中時,叢集將自動為該應用Pod建立和掛載相應的服務賬戶OIDC Token檔案。

AAP鑒權(不推薦)

共用網關配置

  1. 登入Key Management Service控制台,在頂部功能表列選擇地區後,在左側導覽列單擊应用接入 > 多云接入(原接入点)

  2. 建立網路規則(非必須)。

    說明

    如果您不需要基於來源IP限制訪問,則不需要設定網路規則。但為了更高的安全性,通常建議您合理設定。

    1. 單擊网络规则頁簽,然後單擊创建网络规则

    2. 创建网络规则面板,网络类型選擇Public,填寫允许访问的源IP地址後,單擊確定

  3. 建立權限原則。

    1. 單擊权限策略,然後單擊创建权限策略

    2. 创建权限策略面板,按照下方提示完成共用網關配置後,單擊確定

      1. 作用域KMS共享网关

      2. 允许访问的资源:勾選你需要訪問的憑據

      3. 网络控制规则(非必須):勾選步驟二建立網路規則。

  4. 建立應用存取點AAP。

    1. 單擊应用接入頁簽,然後單擊创建应用接入点,。

    2. 创建应用接入点面板,创建模式選擇标准创建,然後按照下方提示完成各項配置。

      配置項

      說明

      认证方式

      選擇ClientKey

      Client Key加密口令

      設定8~64位包含數字、英文大小寫、特殊字元~!@#$%^&*?_-的字串

      有效期

      重要

      推薦設定為1年,以降低ClientKey被泄露的風險。請務必在到期前更換,以免無法正常訪問KMS。具體操作,請參見更換ClientKey

      权限策略

      選擇您步驟三建立的權限原則。

    3. 單擊確認,瀏覽器會自動下載ClientKey。ClientKey包含以下內容:

      • 应用身份凭证内容ClientKeyContent):檔案名稱預設為clientKey_****.json

      • 憑證口令(ClientKeyPassword):檔案名稱預設為clientKey_****_Password.txt

專屬網關配置

ClientKey支援快速建立和標準建立兩種方式。關於ClientKey的詳細介紹,請參見應用存取點概述建立應用存取點

  • 方式一:快速建立

    便捷高效適合於快速測試和開發情境,該方式建立的訪問憑證可以訪問KMS執行個體的全部資源。

    1. 登入Key Management Service控制台,在頂部功能表列選擇地區後,在左側導覽列單擊应用接入 > 多云接入(原接入点)

    2. 应用接入頁簽,單擊创建应用接入点,在创建应用接入点面板完成各項配置。

      配置項

      說明

      创建模式

      選擇快速创建

      作用域(KMS实例)

      選擇應用要訪問的KMS執行個體。

      应用接入点名称

      自訂應用存取點的名稱。

      认证方式

      預設為ClientKey,不支援修改。

      默认权限策略

      預設為key/*secret/*,不支援修改。即應用可以訪問指定KMS執行個體中的所有密鑰和憑據。

    3. 單擊確認,瀏覽器會自動下載ClientKey。ClientKey包含以下內容:

      • 应用身份凭证内容ClientKeyContent):檔案名稱預設為clientKey_****.json

      • 憑證口令(ClientKeyPassword):檔案名稱預設為clientKey_****_Password.txt

  • 方式二:標準建立

    若希望對資源設定更精細化的存取權限,建議使用標準建立。

    1. 請參考建立應用存取點中的標準建立方式,建立用於訪問專屬網關的ClientKey。關鍵配置說明如下:

      1. 配置網路規則時,網路類型選擇Private

      2. 配置許可權規則範圍時,請選擇對應的KMS執行個體ID

    2. 建立完成後,瀏覽器會自動下載ClientKey。ClientKey包含以下內容:

      • 应用身份凭证内容ClientKeyContent):檔案名稱預設為clientKey_****.json

      • 憑證口令(ClientKeyPassword):檔案名稱預設為clientKey_****_Password.txt