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.
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
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 |
1234abcd-12ab-34cd-56ef-12345678**** |
| KeySpec |
string |
Non |
La longueur de la clé de données que vous souhaitez générer. Valeurs valides :
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.
|
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.
|
RSAES_OAEP_SHA_256 |
| DryRun |
string |
Non |
Indique si la fonctionnalité de test à blanc doit être activée.
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 :
|
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.