调用GenerateDataKey接口生成数据密钥。

使用说明

GenerateDataKey接口将返回数据密钥的明文和密文。您可以使用返回的数据密钥明文(Plaintext),在KMS之外对数据进行加密。由于KMS不会记录或存储随机生成的数据密钥,因此您在存储加密后的数据时,也需要存储数据密钥的密文(CiphertextBlob)以及IvAad Algorithm参数。

在请求中指定的密钥(即KeyId)仅用于加密数据密钥明文,和生成数据密钥无关。

请求消息定义

message GenerateDataKeyRequest {
     string KeyId = 1;
     int32 NumberOfBytes = 2;
     bytes Aad = 3;
}

请求参数

名称类型是否必选示例值描述
KeyIdstringkey-hzz62f1cb66fa42qo****密钥的全局唯一标识符。该参数也可以被指定为密钥别名。
NumberOfBytesint32生成的数据密钥的长度。
Aad binary二进制数据对数据密钥加密时使用的GCM加密模式认证数据。
重要 对数据密钥加密时仅支持GCM加密模式。如果指定了该参数,调用Decrypt解密时需要指定相同的参数。

响应消息定义

message GenerateDataKeyResponse {
     string KeyId = 1;
     bytes  Iv = 2;
     bytes  Plaintext = 3;
     bytes  CiphertextBlob = 4;
     string RequestId = 5;
     string Algorithm = 6;
}

响应数据

名称类型示例值描述
KeyIdstringkey-hzz62f1cb66fa42qo****密钥的全局唯一标识符。如果请求中的KeyId参数使用的是密钥别名,在响应中会返回对应密钥的全局唯一标识符。
Ivbytes二进制数据加密数据密钥时使用的初始向量。
说明 调用Decrypt对数据密钥解密时必须传入正确的Iv才能成功解密。
Plaintextbytes二进制明文数据密钥明文。
CiphertextBlobbytes二进制密文数据密钥密文。
AlgorithmstringAES_GCM加密算法。
RequestIdstring475f1620-b9d3-4d35-b5c6-3fbdd941423d本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。

错误码

关于错误码的更多信息,请参见公共错误码