Decrypt - 解密密文

更新时间:
复制 MD 格式

解密密文。

接口说明

注意事项

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

  • 本接口可以通过共享网关或专属网关调用。详细介绍,请参见阿里云 SDK。

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

    • 专属网关:通过 KMS 私网地址(<YOUR_KMS_INSTANCE_ID>.cryptoservice.kms.aliyuncs.com)访问 KMS。

QPS 限制

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

  • 通过专属网关调用:本接口的单用户 QPS 限制以您 KMS 实例的计算性能规格为准。详细介绍,请参见性能数据。

调试

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

调试

授权信息

下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:

  • 操作:是指具体的权限点。

  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。

  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:

    • 对于必选的资源类型,用前面加 * 表示。

    • 对于不支持资源级授权的操作,用全部资源表示。

  • 条件关键字:是指云产品自身定义的条件关键字。

  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。

操作

访问级别

资源类型

条件关键字

关联操作

kms:Decrypt

get

*Key

acs:kms:{#regionId}:{#accountId}:key/{#KeyId}

  • kms:tag
无

请求参数

名称

类型

必填

描述

示例值

CiphertextBlob

string

是

待解密的密文。
密文可以通过以下 API 生成:

DZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmaaSl+TztSIMe43nbTH/Z1Wr4XfLftKhAciUmDQXuMRl4WTvKhxjMThjK****

EncryptionContext

object

否

key/value 的 JSON 字符串。

说明

如果在调用 GenerateDataKey 、 Encrypt 或 GenerateDataKeyWithoutPlaintext 加密时指定了 EncryptionContext,则需要在解密时提供同样的参数。更多信息,请参见 EncryptionContext 说明。

{"Example":"Example"}

DryRun

string

否

是否开启 DryRun 模式。

  • true:开启

  • false(默认值):关闭

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

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

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

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

false

Recipient

string

否

可信环境认证信息

  • AttestationDocument // Base64 编码的可信环境证明文档,包含环境测量值、签名及证书等信息

  • KeyEncryptionAlgorithm // 密钥加密算法,目前仅支持 RSAES_OAEP_SHA_256

AttestationDocument 内容结构:

  • quoted

  • extendUserData// 用户扩展数据(Base64 编码),解码后结构如下:
    • aud // 固定值 "kms"

    • iat // 签发时间(秒级 Unix 时间戳)

    • exp // 过期时间(秒级 Unix 时间戳)

    • pubKey // RSA2048 公钥(Base64 编码的 SPKI 格式)

    • digestAlg // 摘要算法,目前仅支持 "sha256"

    • ver // 协议版本,目前仅支持 "v1"

    • signature // 报告签名,用于验证 quoted 与 extendUserData 的完整性

  • pcrInfo:
    • pcrValues // 平台配置寄存器(PCR)测量值

    • pcrSelectionOut // PCR 选择信息

    • pcrUpdateCounter // PCR 更新次数

  • cert // 平台证明证书,用于校验签名的有效性
    重要 仅在调用专属网关的 openapi 时生效

{ "AttestationDocument":"base64-encoded-attestion-document", "KeyEncryptionAlgorithm":"RSAES_OAEP_SHA_256" }

返回参数

名称

类型

描述

示例值

object

KeyVersionId

string

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

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

KeyId

string

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

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

RequestId

string

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

207596a2-36d3-4840-b1bd-f87044699bd7

Plaintext

string

解密后的明文。

tRYXuCwgja12xxO1N/gZERDDCLw9doZEQiPDk/Bv****

CiphertextForRecipient

string

当传递 Recipient 时, 使用 Recipient 中的 extendUserData 的 pubkey 公钥加密明文数据密钥,采用 Base64 进行编码

重要 仅在调用专属网关的 openapi 时生效

NIahY6pgjK4ZMP2R0EmsmBqntrv0AI2rcDyU7Su6uOT9Le7EOvlCpjHJfr9z3M0vkfulQoyuETmKSpYDfixE3auE4MwxloT6D9Gfsk6hm5FV2iAxL//Ms2kLv6K4z6yGi7lKm2yjX4***==

示例

正常返回示例

JSON格式

{
  "KeyVersionId": "2ab1a983-7072-4bbc-a582-584b5bd8****",
  "KeyId": "202b9877-5a25-46e3-a763-e20791b5****",
  "RequestId": "207596a2-36d3-4840-b1bd-f87044699bd7",
  "Plaintext": "tRYXuCwgja12xxO1N/gZERDDCLw9doZEQiPDk/Bv****",
  "CiphertextForRecipient": "NIahY6pgjK4ZMP2R0EmsmBqntrv0AI2rcDyU7Su6uOT9Le7EOvlCpjHJfr9z3M0vkfulQoyuETmKSpYDfixE3auE4MwxloT6D9Gfsk6hm5FV2iAxL//Ms2kLv6K4z6yGi7lKm2yjX4***==\n"
}

错误码

HTTP status code

错误码

错误信息

描述

400 UnsupportedOperation This action is not supported. 不支持的操作
404 Forbidden.AliasNotFound The specified Alias is not found. 指定的别名找不到
404 Forbidden.KeyNotFound The specified Key is not found. 指定的密钥不存在。
409 Rejected.Disabled The request was rejected because the key state is Disabled. 请求被拒绝,因为密钥状态为已禁用。
409 Rejected.PendingDeletion The request was rejected because the key state is PendingDeletion. 请求被拒绝,原因是密钥状态为待删除。
409 Rejected.Unavailable The request was rejected because the key state is Unavailable. 请求被拒绝,原因是密钥状态为不可用。

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

变更历史

更多信息,参考变更详情。