Tous les produits
Search
Centre de documentation

:GenerateAndExportDataKey

Dernière mise à jour :Aug 06, 2026

Génère une clé de données aléatoire, la chiffre à l'aide d'une CMK et d'une clé publique que vous spécifiez, et renvoie les deux textes chiffrés.

Description de l'opération

Remarques

  • Pour plus d'informations sur la stratégie d'accès requise pour qu'un utilisateur RAM ou un rôle RAM puisse utiliser cette opération, consultez Resource Access Management.

  • Cette opération est accessible via une passerelle partagée ou une passerelle dédiée. Pour plus d'informations, consultez Alibaba Cloud SDK.

    • Passerelle partagée : vous pouvez accéder à KMS via Internet ou un VPC. Pour accéder à KMS via Internet, vous devez activer l'accès à Internet. Pour plus d'informations, consultez Accès aux instances KMS via Internet.

    • Passerelle dédiée : vous pouvez accéder à KMS à l'aide du point de terminaison privé de KMS (<YOUR_KMS_INSTANCE_ID>.cryptoservice.kms.aliyuncs.com).

Description

Nous vous recommandons d'importer la clé de données dans un module cryptographique pour le chiffrement et le déchiffrement des données comme suit :

1. Appelez l'opération GenerateAndExportDataKey pour obtenir la clé de données chiffrée par une clé KMS et une clé publique spécifiée.

2. Enregistrez le texte chiffré de la clé de données chiffrée par la clé KMS dans KMS ou un service de stockage, tel qu'ApsaraDB, pour la sauvegarde et la récupération des clés.

3. Importez le texte chiffré de la clé de données chiffrée par la clé publique dans le module cryptographique qui contient la clé privée correspondante. Ce processus distribue la clé de KMS au module cryptographique. Vous pouvez ensuite utiliser la clé de données pour chiffrer et déchiffrer des données.

Remarque

La clé KMS que vous spécifiez dans la requête est utilisée uniquement pour chiffrer la clé de données et n'est pas utilisée pour générer la clé de données. KMS n'enregistre ni ne stocke la clé de données générée aléatoirement. Il vous appartient d'enregistrer la clé de données ou son texte chiffré.

Testez maintenant

Testez cette API dans OpenAPI Explorer, sans signature manuelle. Les appels réussis génèrent automatiquement du code SDK correspondant à vos paramètres. Téléchargez-le avec une sécurité intégrée des identifiants pour une utilisation locale. Testez cette API dans OpenAPI Explorer, sans signature manuelle. Les appels réussis génèrent automatiquement du code SDK correspondant à vos paramètres. Téléchargez-le avec une sécurité intégrée des identifiants pour une utilisation locale.

Test

Autorisation RAM

Aucune autorisation n'est requise pour cette opération. En cas de problème, contactez le support technique.

Paramètres de requête

Paramètre

Type

Requis

Description

Exemple

KeyId

string

Oui

L'identifiant de la clé. Vous pouvez également spécifier l'alias ou l'Amazon Resource Name (ARN) de la clé. Pour plus d'informations sur les alias, consultez Gérer les alias.

Remarque

Pour accéder à une clé dans un autre compte Alibaba Cloud, vous devez spécifier l'ARN de la clé. L'ARN de la clé est au format acs:kms:${region}:${account}:key/${keyid}.

1234abcd-12ab-34cd-56ef-12345678****

KeySpec

string

Non

La longueur de la clé de données que vous souhaitez générer. Valeurs valides :

  • AES_256 : une clé symétrique de 256 bits.

  • AES_128 : une clé symétrique de 128 bits.

Remarque

Nous vous recommandons d'utiliser le paramètre KeySpec ou NumberOfBytes pour spécifier la longueur d'une clé de données. Si vous ne spécifiez aucun de ces paramètres, KMS génère une clé de données de 256 bits. Si vous spécifiez les deux paramètres, KMS ignore le paramètre KeySpec.

AES_256

NumberOfBytes

integer

Non

La longueur de la clé de données que vous souhaitez générer.

Valeurs valides : 1 à 1024.

Unité : octets.

32

EncryptionContext

object

Non

Une chaîne JSON composée de paires clé-valeur. Si vous spécifiez ce paramètre, vous devez spécifier le même paramètre lorsque vous appelez l'opération Decrypt ou d'autres opérations pour rechiffrer la clé de données. Pour plus d'informations, consultez EncryptionContext.

{"Example":"Exemple"}

PublicKeyBlob

string

Oui

La clé publique encodée en Base64.

MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAndKfC2ReLL2+y8a0+ZBBeAft/uBYo86GZiYJuflqgUzKxpyuvlo3uQkBv6b+nx+0tz8g8v7GhpPWMSW5L9mNHYsvYFsa7jTxsYdt17yj6GlUHPuMIs8hr5qbwl38IHU1iIa7nYWwE2fb3ePOvLDACRJVgGpU0yxioW80d2QD+9aU4jF5dlAahcfgsNzo2CXzCUc1+xbmNuq7Rp+H9VJB9dyYOwqnW3RhOLBo21FzpORapf0UiRlrHRpk1V6ez+aE1dofaYh/9bh0m6ioxj7j5hpZbWccuEZTMBKd+cbuBkRhJzc6Tti6qwZbDiu4fUwbZS0Tqpuo1UadiyxMW********

WrappingKeySpec

string

Oui

Le type de la clé spécifiée par PublicKeyBlob. Pour plus d'informations sur les types de clés, consultez Introduction aux clés asymétriques.
Valeurs valides :







  • RSA_2048

  • EC_SM2

RSA_2048

WrappingAlgorithm

string

Oui

L'algorithme de chiffrement utilisé pour chiffrer la clé de données à l'aide de la clé publique spécifiée par PublicKeyBlob. Pour plus d'informations sur les algorithmes de chiffrement, consultez AsymmetricDecrypt.
Valeurs valides :







  • RSAES_OAEP_SHA_256

  • RSAES_OAEP_SHA_1

  • SM2PKE

RSAES_OAEP_SHA_256

DryRun

string

Non

Indique si la fonctionnalité de test à blanc doit être activée.

  • true : active la fonctionnalité.

  • false (par défaut) : désactive la fonctionnalité.

Le mode DryRun est utilisé pour tester les appels d'API et vérifier les autorisations sur les ressources auxquelles vous avez accès ainsi que la validité des paramètres de la requête. Si vous activez le mode DryRun, KMS renvoie toujours une réponse d'échec et la cause de l'échec. Les causes d'échec suivantes sont incluses :

  • DryRunOperationError : la requête aurait réussi si le paramètre DryRun n'avait pas été spécifié.

  • ValidationError : les paramètres spécifiés dans la requête ne sont pas valides.

  • AccessDeniedError : vous n'êtes pas autorisé à effectuer cette opération sur la ressource KMS.

false

Éléments de réponse

Élément

Type

Description

Exemple

object

KeyVersionId

string

L'identifiant de la version de clé utilisée pour chiffrer le texte en clair. Il s'agit de la version principale de la clé KMS spécifiée.

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

KeyId

string

L'identifiant de la clé. Si vous utilisez un alias de clé ou un ARN de clé dans la requête, l'identifiant de la clé est renvoyé.

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

CiphertextBlob

string

Le texte chiffré de la clé de données. La clé de données est chiffrée à l'aide de la version principale de la clé KMS spécifiée.

ODZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmS7FmDBBQ0BkKsQrtRnidtPwirmDcS0ZuJCU41xxAAWk4Z8qsADfbV0b+i6kQmlvj79dJdGOvtX69Uycs901qOjop4bTS****

RequestId

string

L'identifiant de la requête, qui est un identifiant unique généré par Alibaba Cloud. Vous pouvez utiliser l'identifiant de la requête pour résoudre les problèmes.

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

ExportedDataKey

string

La clé de données exportée qui est protégée par la clé publique.

BQKP+1zK6+ZEMxTP5qaVzcsgXtWplYBKm0NXdSnB5FzliFxE1bSiu4dnEIlca2JpeH7yz1/S6fed630H+hIH6DoM25fTLNcKj+mFB0Xnh9m2+HN59Mn4qyTfcUeadnfCXSWcGBouhXFwcdd2rJ3n337bzTf4jm659gZu3L0i6PLuxM9p7mqdwO0cKJPfGVfhnfMz+f4alMg79WB/NNyE2lyX7/qxvV49ObNrrJbKSFiz8Djocaf0IESNLMbfYI5bXjWkJlX92DQbKhibtQW8ZOJ//ZC6t0AWcUoKL6QDm/dg5koQalcleRinpB+QadFm894sLbVZ9+N4GVs*******

Exemples

JSON format

{
  "KeyVersionId": "2ab1a983-7072-4bbc-a582-584b5bd8****",
  "KeyId": "599fa825-17de-417e-9554-bb032cc6****",
  "CiphertextBlob": "ODZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmS7FmDBBQ0BkKsQrtRnidtPwirmDcS0ZuJCU41xxAAWk4Z8qsADfbV0b+i6kQmlvj79dJdGOvtX69Uycs901qOjop4bTS****",
  "RequestId": "7021b6ec-4be7-4d3c-8a68-1e85d4d515a0",
  "ExportedDataKey": "BQKP+1zK6+ZEMxTP5qaVzcsgXtWplYBKm0NXdSnB5FzliFxE1bSiu4dnEIlca2JpeH7yz1/S6fed630H+hIH6DoM25fTLNcKj+mFB0Xnh9m2+HN59Mn4qyTfcUeadnfCXSWcGBouhXFwcdd2rJ3n337bzTf4jm659gZu3L0i6PLuxM9p7mqdwO0cKJPfGVfhnfMz+f4alMg79WB/NNyE2lyX7/qxvV49ObNrrJbKSFiz8Djocaf0IESNLMbfYI5bXjWkJlX92DQbKhibtQW8ZOJ//ZC6t0AWcUoKL6QDm/dg5koQalcleRinpB+QadFm894sLbVZ9+N4GVs*******"
}

Codes d'erreur

Code de statut HTTP

Code d'erreur

Message d'erreur

Description

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

Consultez Codes d'erreur pour la liste complète.

Notes de version

Consultez Notes de version pour la liste complète.