Gera um par de chaves de dados assimétrico criptografado com a versão primária de uma chave simétrica. A operação retorna a chave pública em texto simples e a chave privada em texto cifrado, sem expor a chave privada em texto simples.
Notas de uso
Esta operação gera um par de chaves de dados por meio de um gerador de números aleatórios, criptografa o par com a versão primária de uma chave simétrica e retorna apenas a chave pública em texto simples e a chave privada em texto cifrado. O sistema nunca retorna a chave privada em texto simples. Utilize esta operação para verificação de assinatura fora do Key Management Service (KMS).
Armazene com segurança a chave privada em texto cifrado (PrivateKeyCiphertextBlob), o algoritmo de criptografia (Algorithm) e os dados de autenticação (Aad). Esses valores são necessários ao chamar a operação AdvanceDecrypt para descriptografar a chave privada em texto cifrado.
O KMS oferece quatro operações para gerar pares de chaves de dados. A tabela a seguir descreve quando utilizar cada uma delas.
| API | Cenário | Dados da resposta | Versão da chave para criptografia | Operação para descriptografia |
|---|---|---|---|---|
| GenerateDataKey | Rotação automática não configurada para as chaves e necessidade de obter imediatamente a 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 da chave | Decrypt |
| GenerateDataKeyPairWithoutPlaintext | Rotação automática não configurada para as chaves; a chave privada em texto simples não é utilizada ou há exigência de maior segurança. | Chave pública em texto simples e chave privada em texto cifrado | Versão inicial da chave | Decrypt |
| AdvanceGenerateDataKeyPair | Rotação automática configurada para as chaves e necessidade de obter imediatamente a chave privada em texto simples. Nota 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 da chave | AdvanceDecrypt |
| AdvanceGenerateDataKeyPairWithoutPlaintext | Rotação automática configurada para as chaves; a chave privada em texto simples não é utilizada ou há exigência de maior segurança. | Chave pública em texto simples e chave privada em texto cifrado | Versão primária da chave | AdvanceDecrypt |
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 requisições concorrentes exceder o limite permitido, 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 | key-hzz62f1cb66fa42qo**** | ID globalmente exclusivo da chave. Defina este parâmetro como um alias vinculado à chave. Nota Há suporte apenas para chaves simétricas em instâncias do KMS do tipo gerenciamento de chaves de software. |
| KeyPairSpec | string | Sim | RSA_2048 | Tipo do par de chaves de dados. Valores válidos: RSA_2048, RSA_3072, RSA_4096, EC_P256, EC_P256K |
| Aad | bytes | Não | Dados binários | Dados autenticados adicionais (AAD) usados para criptografar o par de chaves de dados no modo Galois/Counter (GCM). Importante Se você especificar este parâmetro, deverá passar o mesmo valor ao chamar a operação Decrypt. |
| KeyFormat | string | Sim | PEM | Formato do par de chaves de dados. Valores válidos: PEM, DER |
Parâmetros da resposta
| Parâmetro | Tipo | Exemplo | Descrição |
|---|---|---|---|
| KeyId | string | key-hzz62f1cb66fa42qo**** | ID globalmente exclusivo da chave. Se o parâmetro KeyId na solicitação for definido como um alias, o sistema retorna o ID globalmente exclusivo da chave à qual o alias está vinculado. |
| Iv | bytes | Dados binários | Vetor de inicialização (IV) utilizado para criptografar o par de chaves de dados. Nota Ao chamar a operação Decrypt para descriptografar o par de chaves de dados, especifique um valor válido para Iv. |
| KeyPairSpec | string | RSA_2048 | Tipo do par de chaves de dados. |
| PrivateKeyCiphertextBlob | bytes | Dados binários | Chave privada em texto cifrado do par de chaves de dados. |
| PublicKey | bytes | Dados binários | Chave pública em texto simples do par de chaves de dados. O formato depende do valor de KeyFormat na solicitação: se KeyFormat estiver definido como DER, o sistema retorna uma chave pública X.509 no formato DER; se KeyFormat estiver definido como PEM, o sistema retorna uma chave pública X.509 no formato PEM. |
| Algorithm | string | AES_GCM | Algoritmo de criptografia. Há suporte apenas para AES_GCM. |
| RequestId | string | 475f1620-b9d3-4d35-b5c6-3fbdd941423d | 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. |
Para obter uma lista completa dos códigos de erro, consulte Códigos de erro do serviço.