Gera uma chave de dados aleatória, criptografa-a usando uma CMK e uma chave pública que você especificar e retorna ambos os textos cifrados.
Descrição da operação
Observações
-
Para obter mais informações sobre a política de acesso necessária para que um usuário do RAM ou uma função do RAM use esta operação, consulte Resource Access Management.
-
Esta operação pode ser acessada por meio de um gateway compartilhado ou um gateway dedicado. Para obter mais informações, consulte Alibaba Cloud SDK.
-
Gateway compartilhado: Você pode acessar o KMS pela Internet ou por uma VPC. Para acessar o KMS pela Internet, você deve ativar o acesso à Internet. Para obter mais informações, consulte Acessar instâncias do KMS pela Internet.
-
Gateway dedicado: Você pode acessar o KMS usando o endpoint privado do KMS (
<YOUR_KMS_INSTANCE_ID>.cryptoservice.kms.aliyuncs.com).
-
Descrição
Recomendamos que você importe a chave de dados para um módulo criptográfico para criptografia e descriptografia de dados da seguinte forma:
1. Chame a operação GenerateAndExportDataKey para obter a chave de dados criptografada por uma chave do KMS e uma chave pública especificada.
2. Salve o texto cifrado da chave de dados que é criptografado pela chave do KMS no KMS ou em um serviço de armazenamento, como o ApsaraDB, para backup e recuperação de chaves.
3. Importe o texto cifrado da chave de dados que é criptografado pela chave pública para o módulo criptográfico que contém a chave privada correspondente. Esse processo distribui a chave do KMS para o módulo criptográfico. Em seguida, você pode usar a chave de dados para criptografar e descriptografar dados.
A chave do KMS que você especifica na solicitação é usada apenas para criptografar a chave de dados e não é usada para gerar a chave de dados. O KMS não registra nem armazena a chave de dados gerada aleatoriamente. Você é responsável por registrar a chave de dados ou seu texto cifrado.
Experimente agora
Testar
Autorização RAM
Parâmetros da solicitação
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
Exemplo |
| KeyId |
string |
Sim |
O ID da chave. Você também pode especificar o alias ou o Amazon Resource Name (ARN) da chave. Para obter mais informações sobre aliases, consulte Gerenciar aliases. Nota
Para acessar uma chave em outra conta da Alibaba Cloud, você deve especificar o ARN da chave. O ARN da chave está no formato |
1234abcd-12ab-34cd-56ef-12345678**** |
| KeySpec |
string |
Não |
O comprimento da chave de dados que você deseja gerar. Valores válidos:
Nota
Recomendamos que você use o parâmetro KeySpec ou NumberOfBytes para especificar o comprimento de uma chave de dados. Se você não especificar nenhum dos parâmetros, o KMS gerará uma chave de dados de 256 bits. Se você especificar ambos os parâmetros, o KMS ignorará o parâmetro KeySpec. |
AES_256 |
| NumberOfBytes |
integer |
Não |
O comprimento da chave de dados que você deseja gerar. Valores válidos: 1 a 1024. Unidade: bytes. |
32 |
| EncryptionContext |
object |
Não |
Uma string JSON que consiste em pares chave-valor. Se você especificar este parâmetro, deverá especificar o mesmo parâmetro ao chamar a operação Decrypt ou outras operações para recriptografar a chave de dados. Para obter mais informações, consulte EncryptionContext. |
{"Example":"Example"} |
| PublicKeyBlob |
string |
Sim |
A chave pública codificada em Base64. |
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAndKfC2ReLL2+y8a0+ZBBeAft/uBYo86GZiYJuflqgUzKxpyuvlo3uQkBv6b+nx+0tz8g8v7GhpPWMSW5L9mNHYsvYFsa7jTxsYdt17yj6GlUHPuMIs8hr5qbwl38IHU1iIa7nYWwE2fb3ePOvLDACRJVgGpU0yxioW80d2QD+9aU4jF5dlAahcfgsNzo2CXzCUc1+xbmNuq7Rp+H9VJB9dyYOwqnW3RhOLBo21FzpORapf0UiRlrHRpk1V6ez+aE1dofaYh/9bh0m6ioxj7j5hpZbWccuEZTMBKd+cbuBkRhJzc6Tti6qwZbDiu4fUwbZS0Tqpuo1UadiyxMW******** |
| WrappingKeySpec |
string |
Sim |
O tipo da chave especificada por PublicKeyBlob. Para obter mais informações sobre os tipos de chave, consulte Introdução às chaves assimétricas.
|
RSA_2048 |
| WrappingAlgorithm |
string |
Sim |
O algoritmo de criptografia que é usado para criptografar a chave de dados usando a chave pública especificada por PublicKeyBlob. Para obter mais informações sobre algoritmos de criptografia, consulte AsymmetricDecrypt.
|
RSAES_OAEP_SHA_256 |
| DryRun |
string |
Não |
Especifica se deve ativar o recurso de dry run.
O modo DryRun é usado para testar chamadas de API e verificar as permissões nos recursos aos quais você tem acesso e a validade dos parâmetros da solicitação. Se você ativar o modo DryRun, o KMS sempre retornará uma resposta de falha e a causa da falha. As seguintes causas de falha estão incluídas:
|
false |
Elementos de resposta
|
Elemento |
Tipo |
Descrição |
Exemplo |
|
object |
|||
| KeyVersionId |
string |
O ID da versão da chave que é usada para criptografar o texto simples. É a versão principal da chave do KMS especificada. |
2ab1a983-7072-4bbc-a582-584b5bd8**** |
| KeyId |
string |
O ID da chave. Se você usar um alias de chave ou ARN de chave na solicitação, o ID da chave será retornado. |
599fa825-17de-417e-9554-bb032cc6**** |
| CiphertextBlob |
string |
O texto cifrado da chave de dados. A chave de dados é criptografada usando a versão principal da chave do KMS especificada. |
ODZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmS7FmDBBQ0BkKsQrtRnidtPwirmDcS0ZuJCU41xxAAWk4Z8qsADfbV0b+i6kQmlvj79dJdGOvtX69Uycs901qOjop4bTS**** |
| RequestId |
string |
O ID da solicitação, que é um identificador exclusivo gerado pela Alibaba Cloud. Você pode usar o ID da solicitação para solucionar problemas. |
7021b6ec-4be7-4d3c-8a68-1e85d4d515a0 |
| ExportedDataKey |
string |
A chave de dados exportada que é protegida pela chave pública. |
BQKP+1zK6+ZEMxTP5qaVzcsgXtWplYBKm0NXdSnB5FzliFxE1bSiu4dnEIlca2JpeH7yz1/S6fed630H+hIH6DoM25fTLNcKj+mFB0Xnh9m2+HN59Mn4qyTfcUeadnfCXSWcGBouhXFwcdd2rJ3n337bzTf4jm659gZu3L0i6PLuxM9p7mqdwO0cKJPfGVfhnfMz+f4alMg79WB/NNyE2lyX7/qxvV49ObNrrJbKSFiz8Djocaf0IESNLMbfYI5bXjWkJlX92DQbKhibtQW8ZOJ//ZC6t0AWcUoKL6QDm/dg5koQalcleRinpB+QadFm894sLbVZ9+N4GVs******* |
Exemplos
Resposta de sucesso
JSON formato
{
"KeyVersionId": "2ab1a983-7072-4bbc-a582-584b5bd8****",
"KeyId": "599fa825-17de-417e-9554-bb032cc6****",
"CiphertextBlob": "ODZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmS7FmDBBQ0BkKsQrtRnidtPwirmDcS0ZuJCU41xxAAWk4Z8qsADfbV0b+i6kQmlvj79dJdGOvtX69Uycs901qOjop4bTS****",
"RequestId": "7021b6ec-4be7-4d3c-8a68-1e85d4d515a0",
"ExportedDataKey": "BQKP+1zK6+ZEMxTP5qaVzcsgXtWplYBKm0NXdSnB5FzliFxE1bSiu4dnEIlca2JpeH7yz1/S6fed630H+hIH6DoM25fTLNcKj+mFB0Xnh9m2+HN59Mn4qyTfcUeadnfCXSWcGBouhXFwcdd2rJ3n337bzTf4jm659gZu3L0i6PLuxM9p7mqdwO0cKJPfGVfhnfMz+f4alMg79WB/NNyE2lyX7/qxvV49ObNrrJbKSFiz8Djocaf0IESNLMbfYI5bXjWkJlX92DQbKhibtQW8ZOJ//ZC6t0AWcUoKL6QDm/dg5koQalcleRinpB+QadFm894sLbVZ9+N4GVs*******"
}
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 | InternalFailure | |
| 404 | Forbidden.KeyNotFound | The specified Key is not found. | The error message returned because the specified CMK does not exist. |
| 404 | InvalidAccessKeyId.NotFound | The Access Key ID provided does not exist in our records. |
Consulte Códigos de Erro para uma lista completa.
Notas de versão
Consulte Notas de Versão para uma lista completa.