Recriptografa o texto cifrado sob uma CMK diferente sem expor o texto simples.
Descrição da operação
Observações
-
Para obter mais informações sobre a política de acesso necessária para conceder a um usuário RAM ou função RAM a permissão para usar esta operação, consulte Resource Access Management.
-
Esta operação está acessível apenas por meio de um gateway compartilhado, e não de um gateway dedicado. Para obter mais informações, consulte SDK do Alibaba Cloud.
Ao usar um gateway compartilhado, você acessa o KMS por meio de um nome de domínio da Internet ou de uma VPC. Este método requer que o acesso à Internet esteja ativado. Para obter mais informações, consulte Chaves de acesso em uma instância KMS pela Internet.
Limites de QPS
Esta operação está acessível apenas por meio de um gateway compartilhado. O limite de consultas por segundo (QPS) por usuário é de 750. Se esse limite for excedido, as solicitações serão limitadas, o que pode afetar seus negócios. Recomendamos que você permaneça dentro do limite especificado.
Detalhes
Você pode usar a operação ReEncrypt nos seguintes cenários:
-
Após a rotação de uma chave mestra do cliente (CMK), você pode usar a versão mais recente da chave para recriptografar dados. Para obter mais informações sobre a rotação automática de chaves, consulte Rotação automática de chaves.
-
Você pode recriptografar dados alterando o contexto de criptografia sem alterar a chave mestra.
-
Você pode recriptografar dados ou uma chave de dados que foi criptografada por uma chave mestra com outra chave mestra no KMS.
A operação ReEncrypt requer as seguintes permissões:
-
A permissão kms:ReEncryptFrom para a chave mestra de origem.
-
A permissão kms:ReEncryptTo para a chave mestra de destino.
-
Você pode usar kms:ReEncrypt* para conceder ambas as permissões.
Experimente agora
Testar
Autorização RAM
Parâmetros da solicitação
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
Exemplo |
| CiphertextBlob |
string |
Sim |
O texto cifrado que você deseja recriptografar.
|
ODZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmS7FmDBBQ0BkKsQrtRnidtPwirmDcS0ZuJCU41xxAAWk4Z8qsADfbV0b+i6kQmlvj79dJdGOvtX69Uycs901q******** |
| SourceKeyId |
string |
Não |
O ID da chave mestra usada para descriptografar o texto cifrado. Nota
Você deve especificar este parâmetro quando CiphertextBlob for os dados criptografados usando uma chave pública após a criptografia com chave assimétrica. |
5c438b18-05be-40ad-b6c2-3be6752c**** |
| SourceKeyVersionId |
string |
Não |
O ID da versão da chave usada para descriptografar o texto cifrado. Nota
Você deve especificar este parâmetro quando CiphertextBlob for os dados criptografados usando uma chave pública após a criptografia com chave assimétrica. |
2ab1a983-7072-4bbc-a582-584b5bd8**** |
| SourceEncryptionAlgorithm |
string |
Não |
Se CiphertextBlob for o resultado da criptografia com chave pública, especifique o algoritmo de criptografia com chave pública. Para obter mais informações sobre os algoritmos, consulte AsymmetricDecrypt.
Nota
Você deve especificar este parâmetro quando CiphertextBlob for os dados criptografados usando uma chave pública após a criptografia com chave assimétrica. |
RSAES_OAEP_SHA_256 |
| SourceEncryptionContext |
object |
Não |
Uma string JSON que consiste em pares chave-valor. Se você especificar este parâmetro ao chamar a operação Encrypt, GenerateDataKey, GenerateDataKeyWithoutPlaintext ou GenerateAndExportDataKey, deverá especificar o mesmo parâmetro para descriptografar os dados. Para obter mais informações, consulte EncryptionContext. Nota
Você deve especificar este parâmetro quando CiphertextBlob for o texto cifrado retornado após a criptografia simétrica. |
{"Example":"Example"} |
| DestinationKeyId |
string |
Sim |
O ID da chave mestra simétrica usada para recriptografar os dados após o texto cifrado ser descriptografado. |
1234abcd-12ab-34cd-56ef-12345678**** |
| DestinationEncryptionContext |
object |
Não |
Uma string JSON que consiste em pares chave-valor. Este parâmetro especifica o contexto de criptografia para a chave mestra de destino. |
{"Example":"Example"} |
| DryRun |
string |
Não |
Especifica se o modo DryRun deve ser ativado.
O modo DryRun é usado para testar chamadas de API, verificar se você tem as permissões para realizar operações nos recursos necessários e verificar se os parâmetros da solicitação são válidos. Se você ativar o modo DryRun, o KMS sempre retornará uma falha e um motivo para a falha. Os motivos da falha incluem o seguinte:
|
false |
Elementos de resposta
|
Elemento |
Tipo |
Descrição |
Exemplo |
|
object |
|||
| KeyId |
string |
O ID da chave mestra usada para descriptografar o texto cifrado. |
2ab1a983-7072-4bbc-a582-584b5bd8**** |
| KeyVersionId |
string |
O ID da versão da chave usada para descriptografar o texto cifrado da chave mestra. |
202b9877-5a25-46e3-a763-e20791b5**** |
| CiphertextBlob |
string |
O texto cifrado recriptografado usando a chave mestra especificada. |
DZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmaaSl+TztSIMe43nbTH/Z1Wr4XfLftKhAciUmDQXuMRl4WTvKhxjMThjK**** |
| RequestId |
string |
O ID da solicitação. Este ID é um identificador globalmente exclusivo gerado pelo Alibaba Cloud para a solicitação. Você pode usar este ID para solucionar problemas. |
207596a2-36d3-4840-b1bd-f87044699bd7 |
Exemplos
Resposta de sucesso
JSON formato
{
"KeyId": "2ab1a983-7072-4bbc-a582-584b5bd8****",
"KeyVersionId": "202b9877-5a25-46e3-a763-e20791b5****",
"CiphertextBlob": "DZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmaaSl+TztSIMe43nbTH/Z1Wr4XfLftKhAciUmDQXuMRl4WTvKhxjMThjK****",
"RequestId": "207596a2-36d3-4840-b1bd-f87044699bd7"
}
Códigos de erro
|
Código de status HTTP |
Código de erro |
Mensagem de erro |
Descrição |
|---|---|---|---|
| 400 | InvalidParameter | The specified parameter is not valid. | An invalid value is specified for the parameter. |
| 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. | The error message returned because the specified CMK does not exist. |
Consulte Códigos de Erro para uma lista completa.
Notas de versão
Consulte Notas de Versão para uma lista completa.