全部產品
Search
文件中心

:GenerateDataKeyWithoutPlaintext - 產生一個資料密鑰,不需返回資料密鑰明文內容

更新時間:Sep 28, 2025

產生一個隨機的資料密鑰。可以用資料密鑰進行本機資料的加密。

介面說明

注意事項

  • RAM 使用者或 RAM 角色調用該 OpenAPI 需要被授與權限策略詳情,請參見存取控制

  • 本介面可以通過共用網關或專屬網關調用。詳細介紹,請參見阿里雲 SDK

    • 共用網關:通過公網、VPC 網域名稱訪問 KMS,該方式需要開啟公網開關。具體操作,請參見通過公網訪問 KMS 執行個體中的密鑰

    • 專屬網關:通過 KMS 私網地址(<YOUR_KMS_INSTANCE_ID>.cryptoservice.kms.aliyuncs.com)訪問 KMS。

QPS 限制

  • 通過共用網關調用:本介面的單使用者 QPS 限制為 1000 次/秒。超過限制,API 呼叫將會被限流,這可能影響您的業務,請合理調用。

  • 通過專屬網關調用:本介面的單使用者 QPS 限制以您 KMS 執行個體的計算效能規格為準。詳細介紹,請參見效能資料

詳細說明

此 API 隨機產生一個資料密鑰,並通過您指定的對稱主要金鑰(Symmetric CMK)加密後,返回資料密鑰的密文。此 API 和 GenerateDataKey 提供完全相同的功能,唯一的區別是此 API 不會返回資料密鑰的明文。

您在請求中指定的 CMK,僅用於資料密鑰的加密,不會用於資料密鑰的產生。KMS 不會記錄或儲存隨機產生的資料密鑰。

說明
  • 此 API 適用於不需要立即使用資料密鑰完成資料加密的系統。系統需要加密時,通過調用 Decrypt 介面解開資料密鑰的密文。

  • 此 API 也適用於具有不同信任等級的分布式系統。例如:您的系統將資料按照既定劃分策略儲存到不同的分區中。其中的一個模組會預先建立不同的資料分區,對每一個分區分別產生不同的資料密鑰。這一模組完成控制平面的初始化之後,並不參與資料的生產和消費,它是密鑰分發者。而資料平面的模組,在產生和消費資料的時候,首先擷取分區的資料密鑰密文,在解開之後使用資料密鑰的明文對資料執行加密或者解密操作,隨後清除記憶體中的資料密鑰明文。在這樣的系統中,密鑰分發者不需要擷取到資料密鑰的明文,只需要使用相關 CMK 的 GenerateDataKeyWithoutPlaintext 的許可權;而資料的生產和消費者,不需要產生新的資料密鑰,只需要使用相關 CMK 的 Decrypt 的許可權。

調試

您可以在OpenAPI Explorer中直接運行該介面,免去您計算簽名的困擾。運行成功後,OpenAPI Explorer可以自動產生SDK程式碼範例。

調試

授權資訊

當前API暫無授權資訊透出。

請求參數

名稱

類型

必填

描述

樣本值

KeyId

string

主要金鑰(CMK)的通用唯一識別碼。該參數也可以被指定為 CMK 綁定的別名,詳情請參見別名使用說明。

599fa825-17de-417e-9554-bb032cc6****

KeySpec

string

指定產生的資料密鑰的長度,取值:

  • AES_256:256 位的對稱金鑰

  • AES_128:128 位的對稱金鑰

說明

建議使用 KeySpec 或者 NumberOfBytes 來指定資料密鑰長度。如果兩者都不指定,KMS 產生 256 位的資料密鑰;如果兩者都被指定,KMS 會忽略 KeySpec 參數。

AES_256

NumberOfBytes

integer

指定產生的資料密鑰的長度。
取值:1~1024。
單位:位元組










256

EncryptionContext

object

key/value 對的 JSON 字串,如果指定了該參數,則在調用 Decrypt 時需要提供同樣的參數,詳情請參見 EncryptionContext 說明

{"Example":"Example"}

DryRun

string

是否開啟 DryRun 模式。

  • true:開啟

  • false(預設值):關閉

DryRun 模式用於測試 API 呼叫,驗證您是否具有相應資源的許可權,以及請求參數是否配置正確。DryRun 模式開啟後,KMS 會始終返回失敗並提示失敗原因。失敗原因包含如下:

  • DryRunOperationError:不配置 DryRun 參數時,請求會成功。

  • ValidationError:請求中指定的參數有誤。

  • AccessDeniedError:您無權在 KMS 資源上執行該操作。

false

返回參數

名稱

類型

描述

樣本值

object

KeyVersionId

string

用於加密明文的密鑰版本標誌符。是指定 CMK 的主要版本。

2ab1a983-7072-4bbc-a582-584b5bd8****

KeyId

string

CMK 的通用唯一識別碼。

說明

如果請求中的 KeyId 參數使用的是 CMK 的別名,在響應中會返回別名對應的 CMK 標誌符。

599fa825-17de-417e-9554-bb032cc6****

CiphertextBlob

string

資料密鑰被指定 CMK 的主要版本加密後的密文。

ODZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmS7FmDBBQ0BkKsQrtRnidtPwirmDcS0ZuJCU41xxAAWk4Z8qsADfbV0b+i6kQmlvj79dJdGOvtX69Uycs901qOjop4bTS****

RequestId

string

本次調用請求的 ID,是由阿里雲為該請求產生的唯一識別碼,可用於排查和定位問題。

7021b6ec-4be7-4d3c-8a68-1e85d4d515a0

樣本

正常返回樣本

JSON格式

{
  "KeyVersionId": "2ab1a983-7072-4bbc-a582-584b5bd8****",
  "KeyId": "599fa825-17de-417e-9554-bb032cc6****",
  "CiphertextBlob": "ODZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmS7FmDBBQ0BkKsQrtRnidtPwirmDcS0ZuJCU41xxAAWk4Z8qsADfbV0b+i6kQmlvj79dJdGOvtX69Uycs901qOjop4bTS****",
  "RequestId": "7021b6ec-4be7-4d3c-8a68-1e85d4d515a0"
}

錯誤碼

HTTP status code

錯誤碼

錯誤資訊

描述

400 InvalidParameter The specified parameter is not valid. 參數非法。
404 InvalidAccessKeyId.NotFound The Access Key ID provided does not exist in our records.
404 Forbidden.KeyNotFound The specified Key is not found. 指定的密鑰不存在。

訪問錯誤中心查看更多錯誤碼。

變更歷史

更多資訊,參考變更詳情