Gera um par de chaves de dados assimétrico, criptografa-o com a versão primária 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.
Descrição da operação
A operação AdvanceGenerateDataKeyPair utiliza um gerador de números aleatórios para criar um par de chaves de dados assimétrico. O Key Management Service (KMS) criptografa esse par de chaves no modo Galois/Counter (GCM) usando a versão primária de uma chave simétrica. Utilize esta operação quando a rotação automática de chaves estiver configurada para a chave simétrica e você precisar de acesso imediato à chave privada em texto simples. É possível usar pares de chaves de dados para realizar verificação de assinatura fora do KMS.
Armazene a chave privada em texto cifrado (PrivateKeyCiphertextBlob), o algoritmo de criptografia (Algorithm) e os dados de autenticação (Aad) em um local seguro. Esses valores são obrigatórios ao chamar AdvanceDecrypt para descriptografar a chave privada em texto cifrado.
Escolha uma operação de par de chaves de dados
O KMS oferece quatro operações para gerar pares de chaves de dados. A tabela a seguir resume as diferenças entre elas.
|
API |
Quando usar |
Dados da resposta |
Versão da chave para criptografia |
Operação de descriptografia |
|
GenerateDataKeyPair |
Sem rotação automática; necessidade imediata da chave privada em texto simples |
Chave pública em texto simples, chave privada em texto simples, chave privada em texto cifrado |
Versão inicial da chave |
|
|
GenerateDataKeyPairWithoutPlaintext |
Sem rotação automática; chave privada em texto simples não necessária ou preferência por maior segurança |
Chave pública em texto simples e chave privada em texto simples |
Versão inicial da chave |
|
|
AdvanceGenerateDataKeyPair |
Rotação automática configurada; necessidade imediata da chave privada em texto simples |
Chave pública em texto simples, chave privada em texto simples, chave privada em texto cifrado |
Versão primária da chave |
|
|
AdvanceGenerateDataKeyPairWithoutPlaintext |
Rotação automática configurada; chave privada em texto simples não necessária ou preferência por maior segurança |
Chave pública em texto simples e chave privada em texto simples |
Versão primária da chave |
Para obter mais informações sobre rotação de chaves, consulte Configurar rotação de chaves.
Notas de uso
Cada instância do KMS processa apenas uma solicitação por vez nas quatro operações de geração de par de chaves de dados: GenerateDataKeyPair, GenerateDataKeyPairWithoutPlaintext, AdvanceGenerateDataKeyPair e AdvanceGenerateDataKeyPairWithoutPlaintext. Controle as solicitações simultâneas para evitar atingir esse limite. Se as solicitações simultâneas excederem o limite, o KMS retornará HTTP 429 (Concurrency Limit Exceeded).
Parâmetros da solicitação
|
Parâmetro |
Tipo |
Obrigatório |
Exemplo |
Descrição |
|
KeyId |
string |
Sim |
key-hzz62f1cb66fa42qo**** |
O ID globalmente exclusivo da chave simétrica ou um alias vinculado à chave. Apenas chaves simétricas em instâncias do KMS do tipo gerenciamento de chaves de software são suportadas. |
|
KeyPairSpec |
string |
Sim |
RSA_2048 |
O tipo do par de chaves de dados. Valores válidos: |
|
KeyFormat |
string |
Sim |
PEM |
O formato do par de chaves. Valores válidos: |
|
Aad |
bytes |
Não |
Dados binários |
Os dados de autenticação (additional authenticated data, AAD) usados ao criptografar o par de chaves de dados no modo GCM. Caso especifique este parâmetro, passe o mesmo valor para AdvanceDecrypt ao descriptografar a chave privada em texto cifrado. |
Elementos da resposta
|
Parâmetro |
Tipo |
Exemplo |
Descrição |
|
KeyId |
string |
key-hzz62f1cb66fa42qo**** |
O ID globalmente exclusivo da chave. Se |
|
KeyPairSpec |
string |
RSA_2048 |
O tipo do par de chaves de dados. |
|
Algorithm |
string |
AES_GCM |
O algoritmo de criptografia usado para criptografar o par de chaves de dados. Apenas |
|
Iv |
bytes |
Dados binários |
O vetor de inicialização (IV) usado para criptografar o par de chaves de dados. Passe este valor para AdvanceDecrypt ao descriptografar a chave privada em texto cifrado. |
|
PublicKey |
bytes |
Dados binários |
A chave pública em texto simples. Se |
|
PrivateKeyPlaintext |
bytes |
Dados binários |
A chave privada em texto simples. Se |
|
PrivateKeyCiphertextBlob |
bytes |
Dados binários |
A chave privada em texto cifrado. Armazene este valor com segurança e utilize-o com |
|
RequestId |
string |
475f1620-b9d3-4d35-b5c6-3fbdd941423d |
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. |
As solicitações simultâneas excederam o limite por instância. |
Para obter uma lista completa de códigos de erro, consulte Códigos de erro do serviço.