Gera uma chave de dados aleatória apenas em formato de texto cifrado, sem a cópia em texto simples.
Descrição da operação
Precauções
-
Para informações sobre a política de acesso que um usuário RAM ou função RAM precisa para usar esta operação, consulte Resource Access Management.
-
Esta operação é acessível por meio de um gateway compartilhado ou um gateway dedicado. Para mais informações, consulte Alibaba Cloud SDK.
-
Gateway compartilhado: Acesse o KMS pela Internet ou por meio de um nome de domínio VPC. Este método requer que o acesso à Internet esteja habilitado. Para mais informações, consulte Acessar chaves em uma instância KMS pela Internet.
-
Gateway dedicado: Acesse o KMS por meio de um endpoint privado do KMS (
<YOUR_KMS_INSTANCE_ID>.cryptoservice.kms.aliyuncs.com).
-
Limites de QPS
-
Chamadas por meio de um gateway compartilhado: O limite de consultas por segundo (QPS) para um único usuário é 1.000. Se você exceder esse limite, as solicitações serão limitadas, o que pode afetar seus negócios. Recomendamos que você permaneça dentro desse limite.
-
Chamadas por meio de um gateway dedicado: O limite de QPS para um único usuário depende do desempenho de computação da sua instância KMS. Para mais informações, consulte Métricas de desempenho.
Detalhes
Esta operação gera uma chave de dados aleatória, criptografa-a com uma chave mestra do cliente (CMK) simétrica especificada e retorna o texto cifrado da chave de dados. Esta operação fornece os mesmos recursos que GenerateDataKey. A única diferença é que esta operação não retorna o texto simples da chave de dados.
A CMK especificada na solicitação é usada apenas para criptografar a chave de dados. Ela não é usada para gerar a chave de dados. O KMS não registra nem armazena a chave de dados gerada aleatoriamente.
-
Esta operação é adequada para sistemas que não precisam usar imediatamente a chave de dados para criptografia de dados. Quando a criptografia é necessária, o sistema chama a API Decrypt para descriptografar o texto cifrado da chave de dados.
-
Esta operação também é adequada para sistemas distribuídos com diferentes níveis de confiança. Por exemplo, seu sistema armazena dados em diferentes partições com base em uma política definida. Um módulo pré-cria essas partições de dados e gera uma chave de dados exclusiva para cada uma. Após esse módulo inicializar o plano de controle, ele atua como um distribuidor de chaves e não produz nem consome dados. Quando os módulos do plano de dados produzem e consomem dados, eles primeiro recuperam o texto cifrado da chave de dados de uma partição. Em seguida, descriptografam o texto cifrado e usam a chave de dados em texto simples para criptografar ou descriptografar dados. Por fim, eles removem a chave de dados em texto simples da memória. Em tal sistema, o distribuidor de chaves não precisa acessar o texto simples da chave de dados. Ele requer apenas a permissão
GenerateDataKeyWithoutPlaintextpara a CMK relevante. Produtores e consumidores de dados não precisam gerar novas chaves de dados. Eles requerem apenas a permissãoDecryptpara a CMK relevante.
Experimente agora
Testar
Autorização RAM
Parâmetros da solicitação
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
Exemplo |
| KeyId |
string |
Sim |
O identificador globalmente exclusivo da CMK. Você também pode especificar um alias vinculado à CMK. Para mais informações sobre como usar um alias, consulte Visão geral de alias. |
599fa825-17de-417e-9554-bb032cc6**** |
| KeySpec |
string |
Não |
O comprimento da chave de dados a ser gerada. Valores válidos:
Nota
Use KeySpec ou NumberOfBytes para especificar o comprimento da chave de dados. Se você não especificar nenhum dos parâmetros, o KMS gera uma chave de dados de 256 bits. Se você especificar ambos os parâmetros, o KMS ignora o parâmetro KeySpec. |
AES_256 |
| NumberOfBytes |
integer |
Não |
O comprimento da chave de dados a ser gerada. |
256 |
| EncryptionContext |
object |
Não |
Uma string JSON de pares chave-valor. Se você especificar este parâmetro, deverá fornecer o mesmo parâmetro ao chamar a operação Decrypt. Para mais informações, consulte EncryptionContext. |
{"Example":"Example"} |
| DryRun |
string |
Não |
Especifica se o modo DryRun deve ser ativado.
O modo DryRun é usado para testar chamadas de API, verificar suas permissõ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 retorna uma resposta de falha com um motivo. Os motivos de falha incluem os seguintes:
|
false |
Elementos de resposta
|
Elemento |
Tipo |
Descrição |
Exemplo |
|
object |
|||
| KeyVersionId |
string |
O ID da versão da chave usada para criptografar o texto simples. Esta é a versão primária da CMK especificada. |
2ab1a983-7072-4bbc-a582-584b5bd8**** |
| KeyId |
string |
O identificador globalmente exclusivo da CMK. Nota
Se você usar um alias da CMK no parâmetro KeyId da solicitação, o ID da CMK será retornado. |
599fa825-17de-417e-9554-bb032cc6**** |
| CiphertextBlob |
string |
O texto cifrado da chave de dados. A chave de dados é criptografada pela versão primária da CMK especificada. |
ODZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmS7FmDBBQ0BkKsQrtRnidtPwirmDcS0ZuJCU41xxAAWk4Z8qsADfbV0b+i6kQmlvj79dJdGOvtX69Uycs901qOjop4bTS**** |
| 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 e localizar problemas. |
7021b6ec-4be7-4d3c-8a68-1e85d4d515a0 |
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"
}
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. |
| 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.