Génère une paire de clés de données asymétriques chiffrée avec la version principale d'une clé symétrique, et renvoie la clé publique en texte clair ainsi que la clé privée chiffrée, sans exposer la clé privée en texte clair.
Notes d'utilisation
Cette opération génère une paire de clés de données à l'aide d'un générateur de nombres aléatoires, chiffre la paire avec la version principale d'une clé symétrique, puis renvoie uniquement la clé publique en texte clair et la clé privée chiffrée. La clé privée en texte clair n'est jamais renvoyée. Utilisez cette opération pour la vérification des signatures en dehors du service Key Management Service (KMS).
Conservez en toute sécurité la clé privée chiffrée (PrivateKeyCiphertextBlob), l'algorithme de chiffrement (Algorithm) et les données d'authentification (Aad). Vous aurez besoin de ces valeurs lors de l'appel à l'opération AdvanceDecrypt pour déchiffrer la clé privée chiffrée.
Le service KMS propose quatre opérations de génération de paires de clés de données. Le tableau suivant décrit les cas d'usage de chacune.
| API | Scénario | Données de réponse | Version de clé utilisée pour le chiffrement | Opération de déchiffrement |
|---|---|---|---|---|
| GenerateDataKey | La rotation automatique des clés n'est pas configurée et vous devez obtenir immédiatement la clé privée en texte clair. | Clé publique en texte clair, clé privée en texte clair et clé privée chiffrée | Version initiale de la clé | Decrypt |
| GenerateDataKeyPairWithoutPlaintext | La rotation automatique des clés n'est pas configurée ; vous n'utilisez pas la clé privée en texte clair ou exigez un niveau de sécurité supérieur. | Clé publique en texte clair et clé privée chiffrée | Version initiale de la clé | Decrypt |
| AdvanceGenerateDataKeyPair | La rotation automatique des clés est configurée et vous devez obtenir immédiatement la clé privée en texte clair. Remarque Pour plus d'informations sur la rotation des clés, consultez Configurer la rotation des clés. | Clé publique en texte clair, clé privée en texte clair et clé privée chiffrée | Version principale de la clé | AdvanceDecrypt |
| AdvanceGenerateDataKeyPairWithoutPlaintext | La rotation automatique des clés est configurée ; vous n'utilisez pas la clé privée en texte clair ou exigez un niveau de sécurité supérieur. | Clé publique en texte clair et clé privée chiffrée | Version principale de la clé | AdvanceDecrypt |
Précautions
Chaque instance KMS ne traite qu'une seule requête à la fois pour les opérations GenerateDataKeyPair, GenerateDataKeyPairWithoutPlaintext, AdvanceGenerateDataKeyPair et AdvanceGenerateDataKeyPairWithoutPlaintext. Limitez le nombre de requêtes simultanées pour ne pas dépasser cette limite. En cas de dépassement, le service KMS renvoie une erreur 429 (Concurrency Limit Exceeded).
Paramètres de requête
| Paramètre | Type | Obligatoire | Exemple | Description |
|---|---|---|---|---|
| KeyId | string | Oui | key-hzz62f1cb66fa42qo**** | ID global unique de la clé. Vous pouvez spécifier un alias associé à la clé. Remarque Seules les clés symétriques des instances KMS de type gestion logicielle des clés sont prises en charge. |
| KeyPairSpec | string | Oui | RSA_2048 | Type de la paire de clés de données. Valeurs valides : RSA_2048, RSA_3072, RSA_4096, EC_P256, EC_P256K |
| Aad | bytes | Non | Données binaires | Données authentifiées supplémentaires (AAD) utilisées pour chiffrer la paire de clés de données en mode Galois/Counter Mode (GCM). Important Si vous spécifiez ce paramètre, vous devez transmettre la même valeur lors de l'appel à l'opération Decrypt. |
| KeyFormat | string | Oui | PEM | Format de la paire de clés de données. Valeurs valides : PEM, DER |
Paramètres de réponse
| Paramètre | Type | Exemple | Description |
|---|---|---|---|
| KeyId | string | key-hzz62f1cb66fa42qo**** | ID global unique de la clé. Si le paramètre KeyId de la requête est défini sur un alias, l'ID global unique de la clé associée à cet alias est renvoyé. |
| Iv | bytes | Données binaires | Vecteur d'initialisation (IV) utilisé pour chiffrer la paire de clés de données. Remarque Lors de l'appel à l'opération Decrypt pour déchiffrer la paire de clés de données, vous devez spécifier une valeur valide pour Iv. |
| KeyPairSpec | string | RSA_2048 | Type de la paire de clés de données. |
| PrivateKeyCiphertextBlob | bytes | Données binaires | Clé privée chiffrée de la paire de clés de données. |
| PublicKey | bytes | Données binaires | Clé publique en texte clair de la paire de clés de données. Le format dépend de la valeur du paramètre KeyFormat dans la requête : si KeyFormat est défini sur DER, une clé publique X.509 au format DER est renvoyée ; si KeyFormat est défini sur PEM, une clé publique X.509 au format PEM est renvoyée. |
| Algorithm | string | AES_GCM | Algorithme de chiffrement. Seule la valeur AES_GCM est prise en charge. |
| RequestId | string | 475f1620-b9d3-4d35-b5c6-3fbdd941423d | ID de la requête, utilisé pour localiser et résoudre les problèmes. |
Codes d'erreur
| **Code d'état HTTP** | **Code d'erreur** | **Message d'erreur** | **Description** |
|---|---|---|---|
| 429 | Rejected.Throttling | Concurrency Limit Exceeded. | Le nombre de requêtes simultanées dépasse la limite. |
Pour obtenir la liste des codes d'erreur, consultez Codes d'erreur du service.