ReEncrypt - 对密文进行转加密

对密文进行转加密。即先将密文解密,然后将解密得到的数据或者数据密钥使用新的主密钥再次进行加密,返回加密结果。

接口说明

注意事项

  • RAM 用户或 RAM 角色调用该 OpenAPI 需要被授予的权限策略详情,请参见访问控制

  • 本接口仅支持通过共享网关调用,不支持通过专属网关调用。详细介绍,请参见阿里云 SDK

    通过共享网关调用即通过公网、VPC 域名访问 KMS,该方式需要打开公网开关。具体操作,请参见通过公网访问 KMS 实例中的密钥

QPS 限制

仅支持通过共享网关调用,本接口的单用户 QPS 限制为 750 次/秒。超过限制,API 调用将会被限流,这可能影响您的业务,请合理调用。

详细说明

ReEncrypt 使用场景如下:

  • 主密钥(CMK)进行轮转后,使用轮转后最新的密钥版本对数据进行重新加密。自动轮转密钥详情,请参见自动轮转密钥

  • 主密钥不变,改变加密上下文的内容,进行重新加密。

  • 将主密钥加密的数据或者数据密钥在 KMS 内部使用其它的主密钥进行重新加密。

ReEncrypt 权限设置如下:

  • 需要有操作源主密钥的 kms:ReEncryptFrom 权限。

  • 需要有操作目的主密钥的 kms:ReEncryptTo 权限。

  • 可以设置 kms:ReEncrypt*用于表示上述两个操作的权限。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

调试

授权信息

当前API暂无授权信息透出。

请求参数

名称

类型

必填

描述

示例值

CiphertextBlob

string

待转加密的密文。
该参数可以为对称加密或非对称加密返回的密文数据。

ODZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmS7FmDBBQ0BkKsQrtRnidtPwirmDcS0ZuJCU41xxAAWk4Z8qsADfbV0b+i6kQmlvj79dJdGOvtX69Uycs901q********

SourceKeyId

string

解密密文时使用的主密钥 ID。
主密钥的全局唯一标识符。

说明

当 CiphertextBlob 是非对称加密返回的公钥加密数据时需要指定该参数。

5c438b18-05be-40ad-b6c2-3be6752c****

SourceKeyVersionId

string

用于解密密文的密钥版本标识符。

说明

当 CiphertextBlob 是非对称加密返回的公钥加密数据时需要指定该参数。

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

SourceEncryptionAlgorithm

string

CiphertextBlob 是公钥加密结果时,指定公钥加密的算法。算法详情,请参见 AsymmetricDecrypt
取值:

  • RSAES_OAEP_SHA_256

  • RSAES_OAEP_SHA_1

  • SM2PKE

说明

当 CiphertextBlob 是非对称加密返回的公钥加密数据时需要指定该参数。

RSAES_OAEP_SHA_256

SourceEncryptionContext

object

key/value 的 JSON 字符串。如果在 EncryptGenerateDataKeyGenerateDataKeyWithoutPlaintextGenerateAndExportDataKey API 中指定了该参数,则需要提供同样的参数才能解密,详情请参见 EncryptionContext 说明

说明

当 CiphertextBlob 是对称加密返回的密文数据时需要指定该参数。

{"Example":"Example"}

DestinationKeyId

string

对密文解密后再次加密时使用的对称主密钥 ID。

1234abcd-12ab-34cd-56ef-12345678****

DestinationEncryptionContext

object

key/value 的 JSON 字符串,用于目标主密钥加密时的加密上下文。

{"Example":"Example"}

DryRun

string

是否开启 DryRun 模式。

  • true:开启

  • false(默认值):关闭

DryRun 模式用于测试 API 调用,验证您是否具有相应资源的权限,以及请求参数是否配置正确。DryRun 模式开启后,KMS 会始终返回失败并提示失败原因。失败原因包含如下:

  • DryRunOperationError:不配置 DryRun 参数时,请求会成功。

  • ValidationError:请求中指定的参数有误。

  • AccessDeniedError:您无权在 KMS 资源上执行该操作。

false

返回参数

名称

类型

描述

示例值

object

KeyId

string

解密密文使用的主密钥 ID。
主密钥的全局唯一标识符。

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

KeyVersionId

string

主密钥下用于解密密文的密钥版本标识符。

202b9877-5a25-46e3-a763-e20791b5****

CiphertextBlob

string

使用指定的主密钥进行再次加密得到的密文。

DZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmaaSl+TztSIMe43nbTH/Z1Wr4XfLftKhAciUmDQXuMRl4WTvKhxjMThjK****

RequestId

string

本次调用请求的 ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。

207596a2-36d3-4840-b1bd-f87044699bd7

示例

正常返回示例

JSON格式

{
  "KeyId": "2ab1a983-7072-4bbc-a582-584b5bd8****",
  "KeyVersionId": "202b9877-5a25-46e3-a763-e20791b5****",
  "CiphertextBlob": "DZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmaaSl+TztSIMe43nbTH/Z1Wr4XfLftKhAciUmDQXuMRl4WTvKhxjMThjK****",
  "RequestId": "207596a2-36d3-4840-b1bd-f87044699bd7"
}

错误码

HTTP status code

错误码

错误信息

描述

400 InvalidParameter The specified parameter is not valid. 参数非法。
500 InternalFailure Internal Failure. 内部错误。建议重试,如果多次重试报错请提交工单。
404 InvalidAccessKeyId.NotFound The Access Key ID provided does not exist in our records.
404 Forbidden.KeyNotFound The specified Key is not found. 指定的密钥不存在。

访问错误中心查看更多错误码。

变更历史

更多信息,参考变更详情