全部產品
Search
文件中心

Key Management Service:AdvanceGenerateDataKey

更新時間:Jul 06, 2024

用於產生資料密鑰,對資料按照KMS信封加密方式加密。

使用說明

概述

本介面通過隨機數產生器產生資料密鑰,使用KMS密鑰的主要版本對資料祕密金鑰加密,並返回資料密鑰的明文和密文。您可以使用返回的資料密鑰明文(Plaintext),在KMS之外對資料進行加密。請儲存資料密鑰密文和認證資料(Aad),以便後續對資料進行解密。

重要
  • 對資料祕密金鑰加密時僅支援GCM加密模式。

  • 資料金鑰產製原料由KMS通過高品質的隨機數產生器產生,與加密它的KMS密鑰材料內容無關。

和GenerateDataKey的區別

AdvanceGenerateDataKey和GenerateDataKey都用於產生資料密鑰,區別為:

  • AdvanceGenerateDataKey:加密時使用密鑰的主要版本,加密後您需要儲存資料密鑰密文(CiphertextBlob)和認證資料(Aad),然後使用AdvanceDecrypt解密。

  • GenerateDataKey:加密時使用密鑰的初始版本,加密後您需要儲存資料密鑰密文(CiphertextBlob)、初始向量(Iv)、密碼編譯演算法(Algorithm)和認證資料(Aad),然後使用DecryptAdvanceDecrypt解密。

重要

如果密鑰開啟了自動輪轉,產生資料密鑰時請使用AdvanceGenerateDataKey,以避免輪轉功能不生效。關於密鑰輪轉的相關內容,請參見密鑰輪轉

使用限制

僅當密鑰為KMS軟體密鑰管理執行個體中的對稱金鑰時,支援使用本介面。關於密鑰規格以及加密模式的詳細資料,請參見密鑰管理類型和密鑰規格

請求參數

名稱

類型

是否必選

樣本值

描述

KeyId

string

key-hzz62f1cb66fa42qo****

密鑰的通用唯一識別碼。該參數也可以被指定為密鑰別名。

重要

密鑰必須為KMS軟體密鑰管理執行個體中的對稱金鑰。

NumberOfBytes

int

32

產生的資料密鑰的長度。

Aad

binary

位元據

對資料祕密金鑰加密時使用的GCM加密模式認證資料。

重要

如果指定了該參數,調用AdvanceDecrypt解密時需要指定相同的參數。

響應資料

名稱

類型

樣本值

描述

CiphertextBlob

bytes

二進位密文

資料密鑰密文。

說明

CiphertextBlob中還包含密鑰標識(KeyId)、密碼編譯演算法(Algorithm)、加密資料時使用的初始向量(Iv)等資訊,通過AdvanceDecrypt解密時僅需傳入CiphertextBlob、認證資料(Aad)。

Plaintext

bytes

二進位明文

資料密鑰明文。

KeyId

string

key-hzz62f1cb66fa42qo****

密鑰的通用唯一識別碼。如果請求中的KeyId參數使用的是密鑰別名,在響應中會返回對應密鑰的通用唯一識別碼。

KeyVersionId

string

key-hzz62f1cb66fa42qo****-17kedv****

加密資料密鑰的密鑰版本標誌符。

Algorithm

string

AES_GCM

密碼編譯演算法。

Iv

bytes

位元據

加密資料密鑰時使用的初始向量。

RequestId

string

c0065a6d-7784-4ef2-a692-288fdcbc7b9d

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

錯誤碼

HTTP狀態代碼

錯誤碼

錯誤訊息

描述

404

Forbidden.OnlySymmetricKeySupported

The key %s is not a symmetric key. The API only supports symmetric keys.

僅支援使用對稱金鑰。

訪問公用錯誤碼查看更多錯誤碼。