全部產品
Search
文件中心

Key Management Service:憑據SDK

更新時間:Mar 27, 2025

憑據SDK是基於KMS OpenAPI和KMS執行個體API的自訂封裝,封裝了在應用中緩衝和重新整理憑據的功能,業務穩定性更高且更易於開發人員在業務應用中整合。本文介紹業務如何接入憑據SDK。

接入概覽

憑據SDK僅支援業務類操作中的擷取憑據值,既支援共用網關也支援專屬網關訪問。

共用網關和專屬網關的差異

憑據SDK支援通過共用網關和專屬網關調用OpenAPI和執行個體API來擷取憑據。共用網關為KMS服務的全域網路,可通過公網或VPC網訪問,專屬網關為特定KMS執行個體的網路,僅支援私網訪問

差異點

共用網關

專屬網關

推薦使用情境

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

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

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

  • 業務部署在阿里雲VPC。

  • 擷取憑據等操作頻繁。

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

網路差異

公網或VPC網路。

KMS私網網路。

效能差異

以加解密效能為例,通過共用網關訪問KMS時QPS為1000。

以您購買的執行個體的計算效能規格為準,例如1000、2000等。

初始化用戶端時的配置差異

  • Endpoint:專屬網關Endpoint,格式為<YOUR_KMS_INSTANCE_ID>.cryptoservice.kms.aliyuncs.com

    例如kst-hzz65f176a0ogplgq****.cryptoservice.kms.aliyuncs.com

  • KMS執行個體CA認證:需要配置。

API差異

OpenAPI-GetSecretValue

執行個體API-GetSecretValue

身份認證和鑒權差異

  • RAM鑒權:RamRoleArn、ECS RAM角色、STS Token、AccessKey

  • AAP鑒權(不推薦):ClientKey(共用網關配置)

AAP鑒權:ClientKey(專屬網關配置)

憑據SDK類型

憑據SDK提供憑據用戶端、憑據JDBC用戶端、RAM憑據外掛程式三種SDK,通過共用網關或專屬網關調用OpenAPI-GetSecretValue或執行個體API-GetSecretValue(不推薦)擷取KMS憑據值。每種SDK支援的鑒權方式和API類型存在差異,詳情可參考下表:

SDK類型

使用說明

網關及鑒權方式說明

憑據用戶端

  • 支援所有憑據類型

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

共用網關:

  • RAM鑒權:RamRoleArn、ECS RAM角色、STS Token、AccessKey

  • AAP鑒權(不推薦):ClientKey(共用網關配置)

屬網關(不推薦):

AAP鑒權:ClientKey(專屬網關配置)

憑據JDBC用戶端

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

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

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

共用網關:

  • RAM鑒權:RamRoleArn、ECS RAM角色、STS Token、AccessKey

  • AAP鑒權(不推薦):ClientKey(共用網關配置)

專屬網關(不推薦):

AAP鑒權:ClientKey(專屬網關配置)

RAM憑據外掛程式

  • 僅支援RAM憑據

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

共用網關:

  • RAM鑒權:ECS RAM角色

  • AAP鑒權(不推薦):ClientKey(共用網關配置)

專屬網關(不推薦):

AAP鑒權:ClientKey(專屬網關配置)

支援的API

API列表

描述

共用網關

專屬網關

GetSecretValue(OpenAPI)

擷取憑據值

對

錯

GetSecretValue(執行個體API)

擷取憑據值

錯

對

Endpoint

共用網關Endpoint(又稱KMS服務Endpoint)

  • 中國地區

    地區

    地區ID

    公網接入地址

    VPC接入地址

    華東1(杭州)

    cn-hangzhou

    kms.cn-hangzhou.aliyuncs.com

    kms-vpc.cn-hangzhou.aliyuncs.com

    華東2(上海)

    cn-shanghai

    kms.cn-shanghai.aliyuncs.com

    kms-vpc.cn-shanghai.aliyuncs.com

    華南1(深圳)

    cn-shenzhen

    kms.cn-shenzhen.aliyuncs.com

    kms-vpc.cn-shenzhen.aliyuncs.com

    華南2(河源)

    cn-heyuan

    kms.cn-heyuan.aliyuncs.com

    kms-vpc.cn-heyuan.aliyuncs.com

    華南3(廣州)

    cn-guangzhou

    kms.cn-guangzhou.aliyuncs.com

    kms-vpc.cn-guangzhou.aliyuncs.com

    華北1(青島)

    cn-qingdao

    kms.cn-qingdao.aliyuncs.com

    kms-vpc.cn-qingdao.aliyuncs.com

    華北2(北京)

    cn-beijing

    kms.cn-beijing.aliyuncs.com

    kms-vpc.cn-beijing.aliyuncs.com

    華北3(張家口)

    cn-zhangjiakou

    kms.cn-zhangjiakou.aliyuncs.com

    kms-vpc.cn-zhangjiakou.aliyuncs.com

    華北5(呼和浩特)

    cn-huhehaote

    kms.cn-huhehaote.aliyuncs.com

    kms-vpc.cn-huhehaote.aliyuncs.com

    華北6(烏蘭察布)

    cn-wulanchabu

    kms.cn-wulanchabu.aliyuncs.com

    kms-vpc.cn-wulanchabu.aliyuncs.com

    西南1(成都)

    cn-chengdu

    kms.cn-chengdu.aliyuncs.com

    kms-vpc.cn-chengdu.aliyuncs.com

    中國香港

    cn-hongkong

    kms.cn-hongkong.aliyuncs.com

    kms-vpc.cn-hongkong.aliyuncs.com

  • 其他國家和地區

    地區

    地區ID

    公網接入地址

    VPC接入地址

    新加坡

    ap-southeast-1

    kms.ap-southeast-1.aliyuncs.com

    kms-vpc.ap-southeast-1.aliyuncs.com

    馬來西亞(吉隆坡)

    ap-southeast-3

    kms.ap-southeast-3.aliyuncs.com

    kms-vpc.ap-southeast-3.aliyuncs.com

    印尼(雅加達)

    ap-southeast-5

    kms.ap-southeast-5.aliyuncs.com

    kms-vpc.ap-southeast-5.aliyuncs.com

    菲律賓(馬尼拉)

    重要

    該地區下僅有一個可用性區域,KMS在該地區不承諾SLA。

    ap-southeast-6

    kms.ap-southeast-6.aliyuncs.com

    kms-vpc.ap-southeast-6.aliyuncs.com

    泰國(曼穀)

    重要

    該地區下僅有一個可用性區域,KMS在該地區不承諾SLA。

    ap-southeast-7

    kms.ap-southeast-7.aliyuncs.com

    kms-vpc.ap-southeast-7.aliyuncs.com

    日本(東京)

    ap-northeast-1

    kms.ap-northeast-1.aliyuncs.com

    kms-vpc.ap-northeast-1.aliyuncs.com

    德國(法蘭克福)

    eu-central-1

    kms.eu-central-1.aliyuncs.com

    kms-vpc.eu-central-1.aliyuncs.com

    英國(倫敦)

    eu-west-1

    kms.eu-west-1.aliyuncs.com

    kms-vpc.eu-west-1.aliyuncs.com

    美國(矽谷)

    us-west-1

    kms.us-west-1.aliyuncs.com

    kms-vpc.us-west-1.aliyuncs.com

    美國(維吉尼亞)

    us-east-1

    kms.us-east-1.aliyuncs.com

    kms-vpc.us-east-1.aliyuncs.com

    阿聯酋(杜拜)

    me-east-1

    kms.me-east-1.aliyuncs.com

    kms-vpc.me-east-1.aliyuncs.com

專屬網關Endpoint(又稱KMS執行個體Endpoint)

格式為<YOUR_KMS_INSTANCE_ID>.cryptoservice.kms.aliyuncs.com,例如kst-hzz65f176a0ogplgq****.cryptoservice.kms.aliyuncs.com

說明

請將<YOUR_KMS_INSTANCE_ID>替換為您實際使用的KMS執行個體ID。

身份認證與授權

憑據SDK支援RAM鑒權和AAP鑒權(不推薦)兩種鑒權方式。RAM鑒權包含RAM角色、ECS RAM角色、STS Token、AccessKey,AAP鑒權針對不同的網關提供專屬網關配置和共用網關配置兩種模式

重要
  • RAM鑒權只支援訪問共用網關。

  • 專屬網關只支援AAP鑒權(專屬網關配置)。

認證方式

訪問憑據類型

網關類型

RAM鑒權

RamRoleArn、ECS RAM角色、STS Token、AccessKey

說明

RAM憑據外掛程式僅支援ECS RAM角色。

共用網關

AAP鑒權(不推薦)

ClientKey(共用網關配置)、ClientKey(專屬網關配置)

共用網關、專屬網關

RAM鑒權

AccessKey

阿里雲帳號預設有所有資源的Administrator許可權且不可修改,其AccessKey泄露會危及資源安全,因此強烈建議不要為主帳號建立AccessKey,請建立專用於API訪問的RAM使用者並建立對應的AccessKey,並完成最小化授權。具體操作,請參見建立AccessKey

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

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

    image

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

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

      KMS內建了系統權限原則,可以直接綁定到RAM使用者,詳細介紹,請參見Key Management Service系統權限原則參考。您也可以自訂權限原則。image

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

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

STS Token

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

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

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

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

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

      KMS內建了系統權限原則,可以直接綁定到RAM使用者或RAM角色,詳細介紹,請參見Key Management Service系統權限原則參考。您也可以自訂權限原則。image

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

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

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

RamRoleArn

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

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

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

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

      KMS內建了系統權限原則,可以直接綁定到RAM角色,詳細介紹,請參見Key Management Service系統權限原則參考。您也可以自訂權限原則。image

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

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

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

    說明

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

    image

ECS RAM角色

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

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

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

    • 信任主體類型:選擇雲端服務

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

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

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

      KMS內建了系統權限原則,可以直接綁定到RAM角色,詳細介紹,請參見Key Management Service系統權限原則參考。您也可以自訂權限原則。image

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

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

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

AAP鑒權(不推薦

共用網關配置

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

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

    說明

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

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

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

    image

  3. 建立權限原則。

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

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

      1. 作用域KMS共享网关

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

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

    image

  4. 建立應用存取點AAP。

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

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

      配置項

      說明

      认证方式

      選擇ClientKey

      Client Key加密口令

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

      有效期

      重要

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

      权限策略

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

    3. 單擊確定,瀏覽器會自動下載ClientKey。

      ClientKey包含應用身份憑證內容(ClientKeyContent)憑證口令(ClientKeyPassword)應用身份憑證內容(ClientKeyContent)檔案名稱預設為clientKey_****.json憑證口令(ClientKeyPassword)檔案名稱預設為clientKey_****_Password.txt

專屬網關配置

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

  2. 应用接入頁簽,單擊创建应用接入点

  3. 创建应用接入点面板,建立模式選擇快速创建後,作用域(KMS实例)選擇應用要訪問的KMS執行個體。

  4. 單擊確定,瀏覽器會自動下載ClientKey。

    ClientKey包含應用身份憑證內容(ClientKeyContent)憑證口令(ClientKeyPassword)應用身份憑證內容(ClientKeyContent)檔案名稱預設為clientKey_****.json憑證口令(ClientKeyPassword)檔案名稱預設為clientKey_****_Password.txt

更多關於AAP鑒權資訊,請參考建立應用存取點

支援的開發語言

下表列舉了支援的語言類型以及各語言SDK的參考文檔。

憑據SDK

支援的語言

憑據用戶端

Java(Java 8及以上版本)、Python、Go

憑據JDBC用戶端

Java(Java 8及以上版本)

RAM憑據外掛程式

Java(Java 8及以上版本)、Python、Go