阿里雲SDK不僅支援通過調用OpenAPI執行建立執行個體、建立密鑰等管控類操作,還支援執行加密解密、擷取憑據值等業務類操作。其中管控類操作僅可通過共用網關訪問,而業務類操作既支援通過共用網關也能通過專屬網關訪問。本文介紹業務如何通過阿里雲SDK接入KMS。
接入流程簡述
共用網關和專屬網關的差異
以下表格僅對比在業務類操作中網關之間的差異。
差異點 | 共用網關 | 專屬網關 |
網路差異 | 公網或VPC網路。 | KMS私人網路。 |
效能差異 | 以加解密效能為例,通過共用網關訪問KMS時QPS為1000。 | 以您購買的執行個體的計算效能規格為準,例如1000、2000等。 |
初始化用戶端時的配置差異 |
|
|
API差異 | 支援所有業務類OpenAPI。具體API列表,請參見本文的支援的OpenAPI。 | 專屬網關不支援ReEncrypt,其他支援的API和公網訪問相同。具體API列表,請參見本文的支援的OpenAPI。 |
身份認證和鑒權差異 |
|
|
審計差異 | 通過ActionTrail,審計動作記錄。 | 通過Simple Log Service (SLS),審計動作記錄。 |
支援的OpenAPI
可以通過共用網關執行管控類操作和業務類操作,通過專屬網關執行業務類操作。具體的 API 列表,請查看以下內容。
若需通過公網訪問KMS執行個體中的密鑰並進行密碼運算操作,需要先開啟公網訪問開關,然後訪問通過共用網關地址調用相關API。
管控類
服務管理
|
API |
標題 |
API概述 |
| DescribeAccountKmsStatus | 查詢當前阿里雲帳號的Key Management Service狀態 | 查詢當前阿里雲帳號的Key Management Service狀態。 |
| OpenKmsService | 為當前阿里雲帳號開通Key Management Service | 為當前阿里雲帳號開通Key Management Service。 |
執行個體管理
|
API |
標題 |
API概述 |
| ListKmsInstances | 擷取執行個體列表 | 查詢 KMS 執行個體列表。 |
| ConnectKmsInstance | 串連執行個體並配置網路 | 啟用一個KMS執行個體。 |
| GetKmsInstance | 擷取執行個體 | 查詢一個KMS執行個體的詳情。 |
| UpdateKmsInstanceBindVpc | 更新執行個體分享VPC | 更新KMS執行個體配置的VPC。 |
| ReleaseKmsInstance | 釋放KMS隨用隨付執行個體 | 釋放KMS隨用隨付執行個體。 |
| GetDefaultKmsInstance | 擷取預設KMS執行個體 | 擷取預設KMS執行個體。 |
密鑰管理
API | 標題 | API概述 |
建立一個主要金鑰 | 建立一個主要金鑰。 | |
查詢調用者在調用地區的所有主要金鑰ID | 查詢調用者在調用地區的所有主要金鑰ID。 | |
返回指定主要金鑰(CMK)的相關資訊 | 查詢使用者主要金鑰(CMK)詳情。 | |
更新主要金鑰描述資訊 | 更新主要金鑰的描述資訊。 | |
啟用指定的主要金鑰進行加解密 | 啟用指定的主要金鑰進行加解密。 | |
禁用指定的主要金鑰(CMK)進行加解密 | 禁用指定的主要金鑰(CMK)進行加解密。 | |
給主要金鑰(CMK)建立一個別名 | 為主要金鑰(CMK)建立一個別名。 | |
查詢目前使用者在當前地區的所有別名 | 查詢目前使用者在當前地區的所有別名。 | |
查詢主要金鑰(CMK)所有別名 | 查詢與指定主要金鑰(CMK)對應的所有別名。 | |
刪除別名 | 刪除別名。 | |
更新主要金鑰(CMK)ID | 更新已存在的別名所代表的主要金鑰(CMK)ID。 | |
擷取匯入主要金鑰(CMK)材料的參數 | 擷取匯入主要金鑰材料的參數。 | |
匯入密鑰材料 | 匯入密鑰材料。 | |
刪除已匯入的密鑰材料 | 刪除已匯入的密鑰材料。 | |
申請刪除一個指定的主要金鑰(CMK) | 申請刪除一個指定的主要金鑰(CMK)。 | |
撤銷密鑰刪除 | 撤銷密鑰刪除。 | |
設定刪除保護 | 為使用者主要金鑰(CMK)開啟或關閉刪除保護。 | |
更新密鑰輪轉策略 | 更新密鑰的周期性自動輪轉策略。 | |
查詢指定密鑰版本資訊 | 查詢指定密鑰版本資訊。 | |
為主要金鑰建立一個新的密鑰版本 | 為使用者主要金鑰(CMK)建立密鑰版本。 | |
列出主要金鑰的所有密鑰版本 | 列出主要金鑰的所有密鑰版本。 | |
設定密鑰策略 | 為KMS執行個體中的密鑰設定密鑰策略。 | |
查詢密鑰策略 | 查詢指定密鑰的密鑰策略。 |
憑據管理
API | 標題 | API概述 |
查詢目前使用者在當前地區建立的所有憑據 | 查詢目前使用者在當前地區建立的所有憑據。 | |
刪除憑據對象 | 刪除憑據對象。 | |
建立憑據 | 建立憑據並存入憑據的初始版本。 | |
更新憑據的中繼資料 | 更新憑據的中繼資料。 | |
更新憑據的版本狀態 | 更新憑據的版本狀態。 | |
更新動態憑據的輪轉策略 | 更新憑據輪轉策略。 | |
查詢憑據的中繼資料資訊 | 查詢憑據的中繼資料資訊。 | |
查詢憑據的所有版本資訊 | 查詢憑據的所有版本資訊。 | |
獲得一個隨機口令字串 | 獲得一個隨機口令字串。 | |
為憑據存入一個新版本的憑據值 | 為通用憑據存入一個新版本的憑據值。 | |
恢複被刪除的憑據 | 恢複被刪除的憑據。 | |
主動輪轉動態憑據 | 立即輪轉憑據。 | |
設定憑據策略 | 為KMS執行個體中的憑據鑰設定憑據策略。 | |
查詢憑據策略 | 查詢指定憑據的憑據策略。 |
標籤管理
|
API |
標題 |
API概述 |
| GetKmsInstanceQuotaInfos | 擷取執行個體配額資訊 | 擷取執行個體配額資訊。 |
| ListResourceTags | 擷取使用者主要金鑰的標籤 | 擷取使用者主要金鑰的標籤。 |
| TagResource | 為主要金鑰或憑據設定標籤 | 為主要金鑰、憑據或認證綁定標籤。 |
| UntagResource | 刪除使用者主要金鑰或憑據的指定標籤 | 為主要金鑰、憑據或認證解除綁定標籤。 |
應用管理
|
API |
標題 |
API概述 |
| CreateNetworkRule | 建立網路規則 | 建立一條網路控制規則,設定允許訪問KMS的私網IP或私網的網段。 |
| ListNetworkRules | 擷取網路規則列表 | 查詢網路控制規則列表。 |
| DescribeNetworkRule | 擷取網路規則 | 查詢一個網路控制規則的詳情。 |
| UpdateNetworkRule | 更新網路規則 | 更新一個網路控制規則。 |
| DeleteNetworkRule | 刪除網路規則 | 刪除一條網路控制規則。 |
| CreatePolicy | 建立存取原則 | 建立一個權限原則,設定允許應用訪問的密鑰和憑據。 |
| ListPolicies | 擷取存取原則列表 | 查詢權限原則列表。 |
| DescribePolicy | 擷取存取原則 | 查詢一個權限原則的詳情。 |
| UpdatePolicy | 更新存取原則 | 更新一個權限原則。 |
| DeletePolicy | 刪除存取原則 | 刪除一條權限原則。 |
| CreateApplicationAccessPoint | 建立應用存取點 | 建立一個應用存取點。 |
| ListApplicationAccessPoints | 擷取應用存取點列表 | 查詢應用存取點列表。 |
| DescribeApplicationAccessPoint | 擷取應用存取點 | 查詢一個應用存取點的詳情。 |
| UpdateApplicationAccessPoint | 更新應用存取點 | 更新一個應用存取點資訊。 |
| DeleteApplicationAccessPoint | 刪除應用存取點 | 刪除一個應用存取點。 |
| CreateClientKey | 建立應用身份憑證 | 建立一個應用身份憑證(ClientKey)。 |
| ListClientKeys | 擷取應用身份憑證列表 | 查詢應用身份憑證(ClientKey)列表。 |
| GetClientKey | 擷取應用身份憑證 | 擷取一個應用身份憑證(ClientKey)資訊。 |
| DeleteClientKey | 刪除應用身份憑證 | 刪除一個應用身份憑證(ClientKey)。 |
業務類-密碼運算
API列表 | 描述 | 共用網關 | 專屬網關 |
使用對稱金鑰將明文加密為密文。 | |||
產生一個隨機的資料密鑰,用於本機資料加密。 | |||
產生一個隨機的資料密鑰,用於本機資料加密,且不返回資料密鑰明文。 | |||
使用傳入的公開金鑰加密匯出資料密鑰。 | |||
隨機產生一個資料密鑰,通過您指定的KMS密鑰和公開金鑰加密後,返回使用KMS祕密金鑰加密後的資料密鑰密文,以及使用公開金鑰加密後的資料密鑰密文。 | |||
解密密文。 | |||
對密文進行轉加密。即先將密文解密,然後將解密得到的資料或者資料密鑰使用新的主要金鑰再次進行加密,返回加密結果。 | |||
使用非對稱金鑰進行簽名。 | |||
使用非對稱金鑰進行驗簽。 | |||
使用非對稱金鑰進行解密。 | |||
使用非對稱金鑰進行加密。 | |||
擷取非對稱金鑰的公開金鑰。 |
業務類-擷取憑據值
API列表 | 描述 | 共用網關 | 專屬網關 |
擷取憑據值。 |
支援的開發語言
下表列舉了支援的語言類型,以及各語言SDK的下載地址和參考文檔。
支援的語言 | V2.0 SDK | V1.0 SDK(不推薦) |
Java | 下載地址:
參考文檔:整合SDK | 下載地址: 參考文檔:開始使用 |
Python | 下載地址: 參考文檔:整合SDK | 下載地址: 參考文檔:整合SDK |
C++ | 下載地址: 參考文檔:無 | 下載地址: 參考文檔:無 |
PHP | 下載地址: 參考文檔:快速開始 | 下載地址: 參考文檔:開始使用 |
.NET(C#) | 下載地址: 參考文檔:快速開始 | 下載地址: 參考文檔:開始使用 |
Go | 下載地址: 參考文檔:整合SDK | 下載地址: 參考文檔:開始使用 |
TypeScript | 下載地址: 參考文檔:無 | 未提供 |
Swift | 下載地址: 參考文檔:無 | 未提供 |