Todos os produtos
Search
Central de documentação

Key Management Service:GenerateDataKeyWithoutPlaintext

Última atualização: Jun 28, 2026

Gera uma chave de dados aleatória apenas em formato de texto cifrado, sem a cópia em texto simples.

Descrição da operação

Precauções

  • Para informações sobre a política de acesso que um usuário RAM ou função RAM precisa para usar esta operação, consulte Resource Access Management.

  • Esta operação é acessível por meio de um gateway compartilhado ou um gateway dedicado. Para mais informações, consulte Alibaba Cloud SDK.

    • Gateway compartilhado: Acesse o KMS pela Internet ou por meio de um nome de domínio VPC. Este método requer que o acesso à Internet esteja habilitado. Para mais informações, consulte Acessar chaves em uma instância KMS pela Internet.

    • Gateway dedicado: Acesse o KMS por meio de um endpoint privado do KMS (<YOUR_KMS_INSTANCE_ID>.cryptoservice.kms.aliyuncs.com).

Limites de QPS

  • Chamadas por meio de um gateway compartilhado: O limite de consultas por segundo (QPS) para um único usuário é 1.000. Se você exceder esse limite, as solicitações serão limitadas, o que pode afetar seus negócios. Recomendamos que você permaneça dentro desse limite.

  • Chamadas por meio de um gateway dedicado: O limite de QPS para um único usuário depende do desempenho de computação da sua instância KMS. Para mais informações, consulte Métricas de desempenho.

Detalhes

Esta operação gera uma chave de dados aleatória, criptografa-a com uma chave mestra do cliente (CMK) simétrica especificada e retorna o texto cifrado da chave de dados. Esta operação fornece os mesmos recursos que GenerateDataKey. A única diferença é que esta operação não retorna o texto simples da chave de dados.

A CMK especificada na solicitação é usada apenas para criptografar a chave de dados. Ela não é usada para gerar a chave de dados. O KMS não registra nem armazena a chave de dados gerada aleatoriamente.

Nota
  • Esta operação é adequada para sistemas que não precisam usar imediatamente a chave de dados para criptografia de dados. Quando a criptografia é necessária, o sistema chama a API Decrypt para descriptografar o texto cifrado da chave de dados.

  • Esta operação também é adequada para sistemas distribuídos com diferentes níveis de confiança. Por exemplo, seu sistema armazena dados em diferentes partições com base em uma política definida. Um módulo pré-cria essas partições de dados e gera uma chave de dados exclusiva para cada uma. Após esse módulo inicializar o plano de controle, ele atua como um distribuidor de chaves e não produz nem consome dados. Quando os módulos do plano de dados produzem e consomem dados, eles primeiro recuperam o texto cifrado da chave de dados de uma partição. Em seguida, descriptografam o texto cifrado e usam a chave de dados em texto simples para criptografar ou descriptografar dados. Por fim, eles removem a chave de dados em texto simples da memória. Em tal sistema, o distribuidor de chaves não precisa acessar o texto simples da chave de dados. Ele requer apenas a permissão GenerateDataKeyWithoutPlaintext para a CMK relevante. Produtores e consumidores de dados não precisam gerar novas chaves de dados. Eles requerem apenas a permissão Decrypt para a CMK relevante.

Experimente agora

Experimente esta API no OpenAPI Explorer, sem necessidade de assinatura manual. Chamadas bem-sucedidas geram automaticamente código SDK correspondente aos seus parâmetros. Faça o download com segurança de credenciais integrada para uso local.

Testar

Autorização RAM

Nenhuma autorização necessária para esta operação. Se você encontrar problemas com esta operação, entre em contato com o suporte técnico.

Parâmetros da solicitação

Parâmetro

Tipo

Obrigatório

Descrição

Exemplo

KeyId

string

Sim

O identificador globalmente exclusivo da CMK. Você também pode especificar um alias vinculado à CMK. Para mais informações sobre como usar um alias, consulte Visão geral de alias.

599fa825-17de-417e-9554-bb032cc6****

KeySpec

string

Não

O comprimento da chave de dados a ser gerada. Valores válidos:

  • AES_256: uma chave simétrica de 256 bits

  • AES_128: uma chave simétrica de 128 bits

Nota

Use KeySpec ou NumberOfBytes para especificar o comprimento da chave de dados. Se você não especificar nenhum dos parâmetros, o KMS gera uma chave de dados de 256 bits. Se você especificar ambos os parâmetros, o KMS ignora o parâmetro KeySpec.

AES_256

NumberOfBytes

integer

Não

O comprimento da chave de dados a ser gerada.
Valores válidos: 1 a 1024.
Unidade: bytes




256

EncryptionContext

object

Não

Uma string JSON de pares chave-valor. Se você especificar este parâmetro, deverá fornecer o mesmo parâmetro ao chamar a operação Decrypt. Para mais informações, consulte EncryptionContext.

{"Example":"Example"}

DryRun

string

Não

Especifica se o modo DryRun deve ser ativado.

  • true: ativa o modo DryRun.

  • false (padrão): desativa o modo DryRun.

O modo DryRun é usado para testar chamadas de API, verificar suas permissões nos recursos necessários e verificar se os parâmetros da solicitação são válidos. Se você ativar o modo DryRun, o KMS retorna uma resposta de falha com um motivo. Os motivos de falha incluem os seguintes:

  • DryRunOperationError: A solicitação teria sido bem-sucedida se o parâmetro DryRun não fosse especificado.

  • ValidationError: Os parâmetros da solicitação são inválidos.

  • AccessDeniedError: Você não está autorizado a realizar esta operação no recurso KMS.

false

Elementos de resposta

Elemento

Tipo

Descrição

Exemplo

object

KeyVersionId

string

O ID da versão da chave usada para criptografar o texto simples. Esta é a versão primária da CMK especificada.

2ab1a983-7072-4bbc-a582-584b5bd8****

KeyId

string

O identificador globalmente exclusivo da CMK.

Nota

Se você usar um alias da CMK no parâmetro KeyId da solicitação, o ID da CMK será retornado.

599fa825-17de-417e-9554-bb032cc6****

CiphertextBlob

string

O texto cifrado da chave de dados. A chave de dados é criptografada pela versão primária da CMK especificada.

ODZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmS7FmDBBQ0BkKsQrtRnidtPwirmDcS0ZuJCU41xxAAWk4Z8qsADfbV0b+i6kQmlvj79dJdGOvtX69Uycs901qOjop4bTS****

RequestId

string

O ID da solicitação. Este ID é um identificador globalmente exclusivo gerado pelo Alibaba Cloud para a solicitação. Você pode usar este ID para solucionar e localizar problemas.

7021b6ec-4be7-4d3c-8a68-1e85d4d515a0

Exemplos

Resposta de sucesso

JSON formato

{
  "KeyVersionId": "2ab1a983-7072-4bbc-a582-584b5bd8****",
  "KeyId": "599fa825-17de-417e-9554-bb032cc6****",
  "CiphertextBlob": "ODZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmS7FmDBBQ0BkKsQrtRnidtPwirmDcS0ZuJCU41xxAAWk4Z8qsADfbV0b+i6kQmlvj79dJdGOvtX69Uycs901qOjop4bTS****",
  "RequestId": "7021b6ec-4be7-4d3c-8a68-1e85d4d515a0"
}

Códigos de erro

Código de status HTTP

Código de erro

Mensagem de erro

Descrição

400 InvalidParameter The specified parameter is not valid. An invalid value is specified for the parameter.
404 InvalidAccessKeyId.NotFound The Access Key ID provided does not exist in our records.
404 Forbidden.KeyNotFound The specified Key is not found. The error message returned because the specified CMK does not exist.

Consulte Códigos de Erro para uma lista completa.

Notas de versão

Consulte Notas de Versão para uma lista completa.