Gera uma chave de dados para criptografia de envelope usando o Key Management Service (KMS). A operação retorna a chave de dados em texto simples e a chave de dados cifrada. Use a chave de dados em texto simples para criptografar dados fora do KMS e armazene a chave de dados cifrada com os dados de autenticação (Aad) para descriptografia futura.
Funcionamento
A operação usa um gerador de números aleatórios de alta qualidade para produzir uma chave de dados, independente do material da chave do KMS. Em seguida, criptografa essa chave de dados com a versão primária da chave do KMS especificada no modo Galois/Counter (GCM).
Se a rotação automática de chaves estiver ativada, chame AdvanceGenerateDataKey (e não GenerateDataKey) para gerar chaves de dados. O uso de GenerateDataKey com a rotação de chaves ativada interrompe o funcionamento do recurso de rotação. Para mais detalhes, consulte configure rotação de chaves.
AdvanceGenerateDataKey vs GenerateDataKey
Ambas as operações geram uma chave de dados, mas diferem quanto à versão da chave usada para criptografia e aos dados que você deve armazenar posteriormente.
|
Aspecto |
AdvanceGenerateDataKey |
GenerateDataKey |
|
Versão da chave usada para criptografia |
Versão primária da chave |
Versão inicial da chave |
|
Dados a armazenar após a criptografia |
CiphertextBlob, Aad |
CiphertextBlob, Iv, Algorithm, Aad |
|
Operação de descriptografia compatível |
Limites
Esta operação é compatível apenas com chaves simétricas em instâncias do KMS do tipo gerenciamento de chaves por software. Para ver as especificações de chaves compatíveis, consulte Tipos e especificações de chaves.
Apenas o modo GCM é compatível com a criptografia de chaves de dados.
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 ou alias vinculado à chave. A chave deve ser simétrica e pertencer a uma instância do KMS do tipo gerenciamento de chaves por software. |
|
NumberOfBytes |
int |
Sim |
32 |
Comprimento da chave de dados a gerar. |
|
Aad |
binary |
Não |
Dados binários |
Dados de autenticação para criptografia no modo GCM. Se especificado, passe o mesmo valor de Aad ao chamar AdvanceDecrypt. |
Elementos da resposta
|
Parâmetro |
Tipo |
Exemplo |
Descrição |
|
CiphertextBlob |
bytes |
Texto cifrado binário |
Chave de dados cifrada. Este campo codifica o ID da chave (KeyId), o algoritmo de criptografia (Algorithm) e o vetor inicial (Iv) usados na criptografia. Para descriptografar, passe apenas CiphertextBlob e Aad para AdvanceDecrypt. |
|
Plaintext |
bytes |
Texto simples binário |
Chave de dados em texto simples. Use-a para criptografar dados fora do KMS. |
|
KeyId |
string |
key-hzz62f1cb66fa42qo**** |
ID globalmente exclusivo da chave do KMS. Se o KeyId da solicitação for um alias, este campo retornará o ID da chave vinculada a esse alias. |
|
KeyVersionId |
string |
key-hzz62f1cb66fa42qo**-17kedv** |
ID da versão da chave usada para criptografar a chave de dados. |
|
Algorithm |
string |
AES_GCM |
Algoritmo usado para criptografar a chave de dados. |
|
Iv |
bytes |
Dados binários |
Vetor inicial usado para criptografar a chave de dados. |
|
RequestId |
string |
c0065a6d-7784-4ef2-a692-288fdcbc7b9d |
ID da solicitação. |
Códigos de erro
|
Código de status HTTP |
Código de erro |
Mensagem de erro |
Descrição |
|
404 |
Forbidden.OnlySymmetricKeySupported |
The key %s is not a symmetric key. The API only supports symmetric keys. |
Apenas chaves simétricas são compatíveis. |
Para obter a lista completa de códigos de erro, consulte Códigos de erro do serviço.