Gera um par de chaves de dados assimétrico criptografado com a versão inicial de uma chave simétrica e retorna a chave pública em texto simples, a chave privada em texto simples e a chave privada em texto cifrado. Use esse par de chaves para verificação de assinatura fora do Key Management Service (KMS).
Observações de uso
Um gerador de números aleatórios gera o par de chaves de dados, que é criptografado no modo Galois/Counter Mode (GCM) com a versão inicial de uma chave simétrica.
Armazene os campos a seguir em um local seguro. Eles são obrigatórios ao chamar a operação 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)
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 para criptografia |
Operação de descriptografia |
|
GenerateDataKey |
Sem rotação automática de chave; 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 chave; não há necessidade da chave privada em texto simples ou exige-se maior segurança |
Chave pública em texto simples e chave privada em texto cifrado |
Versão inicial |
|
|
AdvanceGenerateDataKeyPair |
Rotação automática de chave configurada; necessidade imediata da chave privada em texto simples. Para mais informações sobre rotação de chaves, consulte Configure key rotation. |
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 chave configurada; não há necessidade da chave privada em texto simples ou exige-se maior segurança |
Chave pública em texto simples e chave privada em texto cifrado |
Versão primária |
Limites
Cada instância do KMS processa apenas uma solicitação por vez para as seguintes operações: GenerateDataKeyPair, GenerateDataKeyPairWithoutPlaintext, AdvanceGenerateDataKeyPair e AdvanceGenerateDataKeyPairWithoutPlaintext. Controle a taxa de solicitações simultâneas. 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 |
|
O ID da chave. Você também pode definir este parâmetro como um alias vinculado à chave. Há suporte apenas para chaves simétricas em instâncias do KMS do tipo gerenciamento de chaves de software. |
|
KeyPairSpec |
string |
Sim |
|
O tipo do par de chaves de dados. Valores válidos: RSA_2048, RSA_3072, RSA_4096, EC_P256, EC_P256K |
|
KeyFormat |
string |
Sim |
|
O formato do par de chaves. Valores válidos: PEM, DER |
|
Aad |
bytes |
Não |
Dados binários |
Os dados autenticados adicionais (AAD) usados na criptografia do par de chaves no modo Galois/Counter Mode (GCM). Se especificado, transmita o mesmo valor ao chamar a operação Decrypt. |
Elementos da resposta
|
Parâmetro |
Tipo |
Exemplo |
Descrição |
|
KeyId |
string |
|
O ID da chave. Caso a solicitação tenha usado um alias, o sistema retorna o ID da chave vinculada a esse alias. |
|
KeyPairSpec |
string |
|
O tipo do par de chaves de dados. |
|
Algorithm |
string |
|
O algoritmo de criptografia. Há suporte apenas para AES_GCM. |
|
Iv |
bytes |
Dados binários |
O vetor de inicialização (IV) usado para criptografar o par de chaves de dados. Transmita este valor para a operação Decrypt ao descriptografar a chave privada em texto cifrado. |
|
PrivateKeyCiphertextBlob |
bytes |
Dados binários |
A chave privada em texto cifrado do par de chaves de dados. |
|
PrivateKeyPlaintext |
bytes |
Dados binários |
A chave privada em texto simples do par de chaves de dados. O formato depende do valor de |
|
PublicKey |
bytes |
Dados binários |
A chave pública em texto simples do par de chaves de dados. O formato varia conforme o valor de |
|
RequestId |
string |
|
O ID da solicitação. |
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 excedeu o limite. |
Para obter a lista completa de códigos de erro, consulte Service error codes.