调用本接口生成数据密钥,返回数据密钥明文和使用指定主密钥加密后的数据密钥密文,适用于信封加密场景。
下表仅列出该接口特有的请求参数和部分公共参数。更多信息请见公共参数。
参数 | 类型 | 是否必填 | 示例值 | 描述 |
|---|---|---|---|---|
Action | String | 是 | GenerateDataKey | 要执行的操作,取值:GenerateDataKey。 |
Version | String | 是 | 2021-02-18 | API的版本,取值:2021-02-18。 |
KeyringName | String | 否 | keyring-test | 密钥环名称,长度为 2 - 31 个字符。合法字符:[a-zA-Z0-9-_]。可通过 CreateKeyring 创建密钥环时指定,或通过 DescribeKeyrings、QueryKeyring 查询获取。当不指定 KeyID 时,必须与 KeyName 同时传入;与 KeyID 二选一。 |
KeyName | String | 否 | key-test | 主密钥名称,长度为 2 - 31 个字符。合法字符:[a-zA-Z0-9-_]。可通过 CreateKey 创建密钥时指定,或通过 DescribeKeys、DescribeKey 查询获取。当不指定 KeyID 时,必须与 KeyringName 同时传入;与 KeyID 二选一。 |
KeyID | String | 否 | 0324d9b3-c5d9-4b6f-94e7-884010a16fee | 主密钥 ID,UUID 形式。可通过 CreateKey 创建密钥时返回,或通过 DescribeKeys、DescribeKey 查询获取。KeyID 与 KeyringName + KeyName 二选一;传入 KeyID 时无需传入 KeyringName 和 KeyName;未传入 KeyID 时,必须同时传入 KeyringName 和 KeyName。 |
EncryptionContext | String | 否 | {"user":"alice","path":"path/to/alice/plaintext.txt"} | key/value 的 JSON 字符串,用作加密上下文。在调用 Encrypt 加密时如果指定了该参数,则调用 Decrypt 解密时需要提供完全相同的参数;不传时默认不使用加密上下文进行校验。 |
NumberOfBytes | Integer | 否 | 32 | 生成数据密钥的长度,单位:字节,取值范围:[1, 1024]。默认值:32。 |
下表仅列出本接口特有的返回参数。更多信息请参见返回结构。
参数 | 类型 | 示例值 | 描述 |
|---|---|---|---|
Plaintext | String | kFw2RqALpWkHzLBNY8Q6x2F0viIebT4uIPkUOpCiitxZcA9ADwCoVVXLdfe3jJA997rWGYa7b6ifbjK06NSVpV9Nf5PnqHQvLy8cJkP0YHBp2dMhRtSP6JVDyShKhQN8yJyYMaKaD3URH7o8Xv1QltKHjpr18+w9ZrxWu1i54y2+2bRzUO9oPZt4breNSBN7mLqCutfL3EQuwKH0Zb0wpRdcKSwMpVbrnGGjV/hFxblAhmeJe4e32IUQKj0vVbTV1s2hY3jYguZ49Hl4JjVDbqqnM/nU79nHubQ/MoD5vFKe/sLX+sGgkGbx0SOa1wqQvk0FBNgkInNTzXGoyEWGd4OE8+cBaPmOxjRCsL51ckTHKkqGLIXZAigIH3B1A/BM5B51yjxS4xuyx0kk9vLQvYWCAY7g5N9DN5Rz10OdgX4ziyr80WufXziSvjdYf46Q+m3kzdeyknHP/JFpBP3E85FUxtrIARR4IAruHt6FwPEMIAs1NKCkEfDvGhEBds4CwbHSKJM916TBTLUwMZMJGSAMJgGVKLbh3VV8hVZWsK1+e6D7Vi/DvBYOjWovjTZ6UJH6nrBhXkcptWXO0y1mhG37sijm2w8B0PvqHyHYVXSP0mYMX2709awZ5MInO0X35nZi4iuwlxHcoFQbAXAKlpCMMfItYyOPrejRqdhcBb4= | 数据密钥明文,Base64编码 |
CiphertextBlob | String | 43y7grE9TjamX4P7ZOHFbwAAfdbxOzMLcyZqlPRh9rMVL2exoGbn53zKUTyt0jZD+Q5YWTmQf/z0Dm6WS+JvSKB3qchbUDVTZPrhUA0amFtBks6+s/rFXtUeBA4iirycN9j0/+BBmHVqAKiPFGJ4/83LdFA2MgoAMdcUaM6nhMZ7XCMaTvAH//Okx0bLJ2dqKf1R9DSFbcQtyYQBaJBfXMzM0cN5wya9M1KlXZZqqDGJQwLCf1ecuP3590dS1uvTJ9XQLlJUQWI/pLG2RxqKh00DlQf5E0+riLol5ocsMeDLefgc3w6pQ6lIOR4JsBsJZH1867r62x+dh8nAEY0AtOuVo8jjtS62QBoFtbI7WSekZUBVr2yao4817+xOC+oUF7JlZxuzPheFUsxkaiXvNxt08QiSZkX9qcjod5IaL4WqouffBf8XsWsoEqJlEW5hHnEJUzSzwrnpx/pz2km5rTvSMeczoLOM3Yo1o3oCv18Xg5FW2/SRHrBi6hjyGdMPhIwiMUENiBhgC4RFEqSWKdLTY2kgT0EO6H44X7piuz3qVyuiDlcM/thDrpJObNSEeaDkWgtPVacmoJ3Qh6xrCS4NyM8nOhp3lTYuOP1lGLn8Xlc14Kn95+qtdP3vQgyz9s4mMvuOzDa085QJxCZjpB/D1cIowf/hISKUioZwDtjLcnYAShV4p3LjW3JO5QC/wipdaug7x+RwjcWGIA4zLt54fIukKCcfI8QwwuHg7rwUPW1fpXiGuDKKWBt7egzJ2/4RU9wKiHiLSnsbNxw= | 数据密钥密文,Base64编码 |
POST /?Action=GenerateDataKey&Version=2021-02-18 HTTP/1.1 Host: kms.cn-beijing.volcengineapi.com Content-Type: application/json; charset=UTF-8 X-Date: 20250710T070808Z X-Content-Sha256: 287e874e******d653b44d21e Authorization: HMAC-SHA256 Credential=Adfks******wekfwe/20250710/cn-beijing/kms/request, SignedHeaders=host;x-content-sha256;x-date, Signature=47a7d934ff7b37c03938******cd7b8278a40a1057690c401e92246a0e41085f {}
{ "ResponseMetadata": { "RequestId": "202407081310481390470331439FAD82", "Action": "GenerateDataKey", "Version": "2021-02-18", "Service": "kms", "Region": "cn-beijing" }, "Result": { "Plaintext": "kFw2RqALpWkHzLBNY8Q6x2F0viIebT4uIPkUOpCiitxZcA9ADwCoVVXLdfe3jJA997rWGYa7b6ifbjK06NSVpV9Nf5PnqHQvLy8cJkP0YHBp2dMhRtSP6JVDyShKhQN8yJyYMaKaD3URH7o8Xv1QltKHjpr18+w9ZrxWu1i54y2+2bRzUO9oPZt4breNSBN7mLqCutfL3EQuwKH0Zb0wpRdcKSwMpVbrnGGjV/hFxblAhmeJe4e32IUQKj0vVbTV1s2hY3jYguZ49Hl4JjVDbqqnM/nU79nHubQ/MoD5vFKe/sLX+sGgkGbx0SOa1wqQvk0FBNgkInNTzXGoyEWGd4OE8+cBaPmOxjRCsL51ckTHKkqGLIXZAigIH3B1A/BM5B51yjxS4xuyx0kk9vLQvYWCAY7g5N9DN5Rz10OdgX4ziyr80WufXziSvjdYf46Q+m3kzdeyknHP/JFpBP3E85FUxtrIARR4IAruHt6FwPEMIAs1NKCkEfDvGhEBds4CwbHSKJM916TBTLUwMZMJGSAMJgGVKLbh3VV8hVZWsK1+e6D7Vi/DvBYOjWovjTZ6UJH6nrBhXkcptWXO0y1mhG37sijm2w8B0PvqHyHYVXSP0mYMX2709awZ5MInO0X35nZi4iuwlxHcoFQbAXAKlpCMMfItYyOPrejRqdhcBb4=", "CiphertextBlob": "43y7grE9TjamX4P7ZOHFbwAAfdbxOzMLcyZqlPRh9rMVL2exoGbn53zKUTyt0jZD+Q5YWTmQf/z0Dm6WS+JvSKB3qchbUDVTZPrhUA0amFtBks6+s/rFXtUeBA4iirycN9j0/+BBmHVqAKiPFGJ4/83LdFA2MgoAMdcUaM6nhMZ7XCMaTvAH//Okx0bLJ2dqKf1R9DSFbcQtyYQBaJBfXMzM0cN5wya9M1KlXZZqqDGJQwLCf1ecuP3590dS1uvTJ9XQLlJUQWI/pLG2RxqKh00DlQf5E0+riLol5ocsMeDLefgc3w6pQ6lIOR4JsBsJZH1867r62x+dh8nAEY0AtOuVo8jjtS62QBoFtbI7WSekZUBVr2yao4817+xOC+oUF7JlZxuzPheFUsxkaiXvNxt08QiSZkX9qcjod5IaL4WqouffBf8XsWsoEqJlEW5hHnEJUzSzwrnpx/pz2km5rTvSMeczoLOM3Yo1o3oCv18Xg5FW2/SRHrBi6hjyGdMPhIwiMUENiBhgC4RFEqSWKdLTY2kgT0EO6H44X7piuz3qVyuiDlcM/thDrpJObNSEeaDkWgtPVacmoJ3Qh6xrCS4NyM8nOhp3lTYuOP1lGLn8Xlc14Kn95+qtdP3vQgyz9s4mMvuOzDa085QJxCZjpB/D1cIowf/hISKUioZwDtjLcnYAShV4p3LjW3JO5QC/wipdaug7x+RwjcWGIA4zLt54fIukKCcfI8QwwuHg7rwUPW1fpXiGuDKKWBt7egzJ2/4RU9wKiHiLSnsbNxw=" } }
下表为您列举了该接口与业务逻辑相关的错误码。公共错误码请参见公共错误码文档。
状态码 | 错误码 | 说明 |
|---|---|---|
400 | InvalidParameter | 请求参数格式、类型或取值不合法,请根据参数说明检查并修正请求。 |
400 | InvalidKeyStatus | 当前密钥状态不支持执行该操作,请检查密钥是否处于接口要求的状态。 |
400 | MissingParameter | 缺少必填参数,请根据接口请求参数说明补充后重试。 |
400 | XksProxyUriUnreachable | 外部密钥存储或相关资源配置不满足当前操作要求,请检查资源状态、网络连通性、认证凭据和参数配置后重试。 |
400 | XksProxyIncorrectAuthenticationCredential | 外部密钥存储或相关资源配置不满足当前操作要求,请检查资源状态、网络连通性、认证凭据和参数配置后重试。 |
400 | CustomKeyStoreInvalidState | 外部密钥存储或相关资源配置不满足当前操作要求,请检查资源状态、网络连通性、认证凭据和参数配置后重试。 |
400 | XksProxyInvalidResponse | 外部密钥存储或相关资源配置不满足当前操作要求,请检查资源状态、网络连通性、认证凭据和参数配置后重试。 |
400 | XksProxyInvalidUriPath | 外部密钥存储或相关资源配置不满足当前操作要求,请检查资源状态、网络连通性、认证凭据和参数配置后重试。 |
403 | KeyMaterialExpire | 密钥材料已过期或不可用,请重新导入有效密钥材料后重试。 |
403 | Reject.Throttling.CMK | 指定主密钥的请求频率超过限制,请降低该密钥相关请求速率后重试。 |
403 | AccessDenied | 当前账号或子账号缺少执行该操作所需权限,请检查 IAM 授权策略。 |
403 | KMS_ServiceNotOpen | KMS 服务尚未开通,请先在控制台开通服务后重试。 |
403 | XksProxyAccessDenied | 外部密钥存储或相关资源配置不满足当前操作要求,请检查资源状态、网络连通性、认证凭据和参数配置后重试。 |
403 | Reject.Service.Overdue | 请求未能完成,请根据错误码、错误信息和当前资源状态检查请求后重试。 |
404 | Not Found | 指定资源不存在或当前账号无权访问,请检查资源 ID、名称和地域是否正确。 |
500 | UndefinedError | 服务内部错误,请稍后重试;如持续出现,请联系技术支持。 |