Gera uma chave de dados em texto simples e sua versão criptografada usando uma chave do KMS.
Notas de uso
Visão geral
A operação GenerateDataKey usa um gerador de números aleatórios para criar uma chave de dados, criptografa-a com a versão inicial de uma chave do Key Management Service (KMS) e retorna a chave de dados em texto simples e em texto cifrado. Use a chave de dados em texto simples para criptografar dados fora do KMS. Após a criptografia, armazene a chave de dados em texto cifrado (CiphertextBlob), o vetor inicial (Iv), o algoritmo de criptografia (Algorithm) e os dados autenticados adicionais (Aad). Esses quatro valores são obrigatórios para descriptografar os dados posteriormente.
Para obter mais informações sobre especificações de chaves e modos de criptografia, consulte Tipos e especificações de chaves.
Somente o modo Galois/Counter Mode (GCM) é compatível para criptografar uma chave de dados.
O KMS usa um gerador de números aleatórios de alta qualidade para produzir a chave de dados. Esse gerador opera independentemente do material da chave do KMS usado na criptografia.
Diferença entre GenerateDataKey e AdvanceGenerateDataKey
GenerateDataKey e AdvanceGenerateDataKey geram uma chave de dados. A tabela a seguir descreve as principais diferenças:
|
GenerateDataKey |
AdvanceGenerateDataKey |
|
|
Versão da chave usada |
Versão inicial |
Versão primária |
|
Tipo de chave compatível |
Qualquer chave compatível |
Apenas chaves simétricas em instâncias do KMS com gerenciamento de chaves por software |
|
Valores a armazenar após a criptografia |
CiphertextBlob, Iv, Algorithm, Aad |
CiphertextBlob, Aad |
|
Operações de descriptografia |
Somente AdvanceDecrypt |
Se você usar uma chave simétrica em uma instância do KMS com gerenciamento de chaves por software e rotação automática ativada, chame AdvanceGenerateDataKey em vez de GenerateDataKey. O uso de GenerateDataKey nessa configuração interrompe o recurso de rotação de chaves. Para mais detalhes, consulte Configure rotação de chaves.
Parâmetros da solicitação
|
Parâmetro |
Tipo |
Obrigatório |
Exemplo |
Descrição |
|
KeyId |
string |
Sim |
key-hzz62f1cb66fa42qo**** |
ID globalmente exclusivo da chave do KMS. Também é possível especificar um alias vinculado à chave. |
|
NumberOfBytes |
int |
Sim |
32 |
Comprimento da chave de dados a ser gerada. |
|
Aad |
binary |
Não |
Dados binários |
Dados autenticados adicionais (Aad) usados para autenticar a chave de dados durante a criptografia. O modo GCM é o único modo de criptografia compatível. Se especificar este parâmetro, transmita o mesmo valor ao chamar a operação Decrypt. |
Parâmetros da resposta
|
Parâmetro |
Tipo |
Exemplo |
Descrição |
|
KeyId |
string |
key-hzz62f1cb66fa42qo**** |
ID globalmente exclusivo da chave do KMS. Se a solicitação especificou um alias, este campo retorna o ID da chave à qual o alias está vinculado. |
|
Iv |
bytes |
Dados binários |
Vetor inicial usado na criptografia da chave de dados. Ao chamar a operação Decrypt para descriptografar a chave de dados, especifique um valor válido para Iv. |
|
Plaintext |
bytes |
Texto simples binário |
Chave de dados em texto simples. |
|
CiphertextBlob |
bytes |
Texto cifrado binário |
Chave de dados em texto cifrado. |
|
Algorithm |
string |
AES_GCM |
Algoritmo de criptografia. |
|
RequestId |
string |
475f1620-b9d3-4d35-b5c6-3fbdd941423d |
ID da solicitação. |
Códigos de erro
Para obter uma lista de códigos de erro, consulte Códigos de erro do serviço.