Gera um par de chaves de dados assimétrico, criptografa a chave privada com a versão inicial de uma chave simétrica e retorna a chave pública em texto simples e a chave privada em texto cifrado, sem expor a chave privada em texto simples.
Observações de uso
Esta operação é compatível apenas com instâncias do KMS do tipo gerenciamento de chaves por software. Instâncias do KMS do tipo gerenciamento de chaves por hardware não são compatíveis.
Esta operação usa um gerador de números aleatórios para crie um par de chaves de dados e o criptografa com a versão inicial de uma chave simétrica. O sistema retorna a chave pública em texto simples diretamente, mas nunca devolve a chave privada em texto simples — apenas sua forma criptografada (chave privada em texto cifrado). Use esta operação quando precisar verificar assinaturas fora do KMS sem exigir acesso à chave privada em texto simples.
Após a conclusão da operação, armazene os seguintes valores em um local seguro. Eles serão necessários ao chamar Decrypt para descriptografar a chave privada em texto cifrado.
PrivateKeyCiphertextBlob: a chave privada em texto cifradoIv: o vetor de inicialização (IV)Algorithm: o algoritmo de criptografiaAad: os dados autenticados adicionais (AAD), se especificados
Escolha a operação adequada
O KMS oferece quatro operações para gerar pares de chaves de dados. A tabela a seguir descreve quando usar cada uma.
|
API |
Cenário |
Dados da resposta |
Versão da chave de criptografia |
Operação de descriptografia |
|
GenerateDataKey |
Sem rotação automática de chaves; necessidade imediata da chave privada em texto simples |
Chave pública em texto simples, chave privada em texto simples e chave privada em texto cifrado |
Versão inicial |
|
|
GenerateDataKeyPairWithoutPlaintext |
Sem rotação automática de chaves; sem necessidade da chave privada em texto simples ou exigência de maior segurança |
Chave pública em texto simples e chave privada em texto cifrado |
Versão inicial |
|
|
AdvanceGenerateDataKeyPair |
Rotação automática de chaves configurada; necessidade imediata da chave privada em texto simples |
Chave pública em texto simples, chave privada em texto simples e chave privada em texto cifrado |
Versão primária |
|
|
AdvanceGenerateDataKeyPairWithoutPlaintext |
Rotação automática de chaves configurada; sem necessidade da chave privada em texto simples ou exigência de maior segurança |
Chave pública em texto simples e chave privada em texto cifrado |
Versão primária |
Para mais informações sobre rotação de chaves, consulte Configurar rotação de chaves.
Precauções
Cada instância do KMS processa apenas uma solicitação por vez para as operações GenerateDataKeyPair, GenerateDataKeyPairWithoutPlaintext, AdvanceGenerateDataKeyPair e AdvanceGenerateDataKeyPairWithoutPlaintext. Controle as solicitações simultâneas para evitar a ultrapassagem desse limite. Se o número de solicitações simultâneas exceder o limite, o KMS retornará um erro 429 (Concurrency Limit Exceeded).
Parâmetros da solicitação
|
Parâmetro |
Tipo |
Obrigatório |
Exemplo |
Descrição |
|
KeyId |
string |
Sim |
|
ID globalmente exclusivo da chave simétrica usada para criptografia. Também é possível defina este parâmetro como um alias vinculado à chave. Apenas chaves simétricas em instâncias do KMS do tipo gerenciamento de chaves por software são compatíveis. |
|
KeyPairSpec |
string |
Sim |
|
Tipo do par de chaves de dados assimétrico. Valores válidos: |
|
KeyFormat |
string |
Sim |
|
Formato do par de chaves de dados. Valores válidos: |
|
Aad |
bytes |
Não |
Dados binários |
Dados autenticados adicionais (AAD) para criptografia no modo Galois/Counter Mode (GCM). Se você especifique este parâmetro, deverá passar o mesmo valor ao chamar a operação Decrypt para descriptografar a chave privada em texto cifrado. |
Parâmetros da resposta
|
Parâmetro |
Tipo |
Exemplo |
Descrição |
|
KeyId |
string |
|
ID globalmente exclusivo da chave. Se a solicitação definiu |
|
KeyPairSpec |
string |
|
Tipo do par de chaves de dados. |
|
PublicKey |
bytes |
Dados binários |
Chave pública em texto simples do par de chaves de dados no formato X.509. O formato de codificação corresponde ao valor de |
|
PrivateKeyCiphertextBlob |
bytes |
Dados binários |
Chave privada em texto cifrado do par de chaves de dados. Armazene este valor com segurança e use-o com |
|
Iv |
bytes |
Dados binários |
Vetor de inicialização (IV) usado para criptografar o par de chaves de dados. Necessário ao chamar Decrypt para descriptografar a chave privada em texto cifrado. |
|
Algorithm |
string |
|
Algoritmo de criptografia usado para proteger o par de chaves de dados. Apenas |
|
RequestId |
string |
|
ID da solicitação, usado para localizar e solucionar problemas. |
Códigos de erro
|
Código de status HTTP |
Código de erro |
Mensagem de erro |
Descrição |
|
429 |
Rejected.Throttling |
Concurrency Limit Exceeded. |
O número de solicitações simultâneas excede o limite permitido. |
Para obter a lista completa de códigos de erro, consulte Códigos de erro do serviço.