Génère une paire de clés de données asymétrique, chiffre la clé privée avec la version initiale 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 est prise en charge uniquement pour les instances KMS de type gestion logicielle des clés. Les instances KMS de type gestion matérielle des clés ne sont pas prises en charge.
Cette opération utilise un générateur de nombres aléatoires pour créer une paire de clés de données, puis la chiffre à l'aide de la version initiale d'une clé symétrique. La clé publique en texte clair est renvoyée directement. La clé privée en texte clair n'est jamais renvoyée ; seule sa forme chiffrée (clé privée chiffrée) l'est. Utilisez cette opération lorsque vous devez effectuer une vérification de signature en dehors de KMS sans avoir besoin d'accéder à la clé privée en texte clair.
Une fois l'opération terminée, conservez les valeurs suivantes dans un emplacement sécurisé. Vous en aurez besoin lors de l'appel à l'opération Decrypt pour déchiffrer la clé privée chiffrée.
PrivateKeyCiphertextBlob: la clé privée chiffréeIv: le vecteur d'initialisation (IV)Algorithm: l'algorithme de chiffrementAad: les données d'authentification supplémentaires (AAD), si elles sont spécifiées
Choisissez la bonne opération
KMS propose quatre opérations pour générer des paires de clés de données. Le tableau suivant décrit quand utiliser chacune d'elles.
| API | Scénario | Données de réponse | Version de la clé de chiffrement | Opération de déchiffrement |
|---|---|---|---|---|
| GenerateDataKey | Aucune rotation automatique des clés ; besoin immédiat de 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 | Decrypt |
| GenerateDataKeyPairWithoutPlaintext | Aucune rotation automatique des clés ; pas de besoin de la clé privée en texte clair ou exigences de sécurité élevées | Clé publique en texte clair et clé privée chiffrée | Version initiale | Decrypt |
| AdvanceGenerateDataKeyPair | Rotation automatique des clés configurée ; besoin immédiat de 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 principale | AdvanceDecrypt |
| AdvanceGenerateDataKeyPairWithoutPlaintext | Rotation automatique des clés configurée ; pas de besoin de la clé privée en texte clair ou exigences de sécurité élevées | Clé publique en texte clair et clé privée chiffrée | Version principale | AdvanceDecrypt |
Pour plus d'informations sur la rotation des clés, consultez la rubrique Configurer la rotation des clés.
Précautions
Chaque instance KMS ne traite qu'une seule requête à la fois pour les opérations GenerateDataKeyPair, GenerateDataKeyPairWithoutPlaintext, AdvanceGenerateDataKeyPair et AdvanceGenerateDataKeyPairWithoutPlaintext. Contrôlez les requêtes simultanées afin de ne pas dépasser cette limite. Si le nombre de requêtes simultanées dépasse la limite, KMS renvoie une erreur 429 (Concurrency Limit Exceeded).
Paramètres de requête
| Paramètre | Type | Obligatoire | Exemple | Description |
|---|---|---|---|---|
| KeyId | string | Oui | key-hzz62f1cb66fa42qo**** |
L'ID global unique de la clé symétrique à utiliser pour le chiffrement. Vous pouvez également définir ce paramètre sur un alias lié à la clé. Seules les clés symétriques présentes dans les instances KMS de type gestion logicielle des clés sont prises en charge. |
| KeyPairSpec | string | Oui | RSA_2048 |
Le type de la paire de clés de données asymétrique. Valeurs valides : RSA_2048, RSA_3072, RSA_4096, EC_P256, EC_P256K |
| KeyFormat | string | Oui | PEM |
Le format de la paire de clés de données. Valeurs valides : PEM, DER |
| Aad | bytes | Non | Données binaires | Les données d'authentification supplémentaires (AAD) pour le chiffrement en mode Galois/Counter Mode (GCM). Si vous spécifiez ce paramètre, vous devez transmettre la même valeur lors de l'appel à l'opération Decrypt pour déchiffrer la clé privée chiffrée. |
Paramètres de réponse
| Paramètre | Type | Exemple | Description |
|---|---|---|---|
| KeyId | string | key-hzz62f1cb66fa42qo**** |
L'ID global unique de la clé. Si la requête définit KeyId sur un alias, l'ID réel de la clé auquel l'alias est lié est renvoyé. |
| KeyPairSpec | string | RSA_2048 |
Le type de la paire de clés de données. |
| PublicKey | bytes | Données binaires | La clé publique en texte clair de la paire de clés de données au format X.509. Le format d'encodage correspond à la valeur KeyFormat de la requête : DER renvoie une clé encodée en DER ; PEM renvoie une clé encodée en PEM. |
| PrivateKeyCiphertextBlob | bytes | Données binaires | La clé privée chiffrée de la paire de clés de données. Conservez cette valeur en toute sécurité et utilisez-la avec Iv, Algorithm et Aad pour déchiffrer la clé privée via l'opération Decrypt. |
| Iv | bytes | Données binaires | Le vecteur d'initialisation (IV) utilisé pour chiffrer la paire de clés de données. Requis lors de l'appel à l'opération Decrypt pour déchiffrer la clé privée chiffrée. |
| Algorithm | string | AES_GCM |
L'algorithme de chiffrement utilisé pour chiffrer la paire de clés de données. Seul AES_GCM est pris en charge. |
| RequestId | string | 475f1620-b9d3-4d35-b5c6-3fbdd941423d |
L'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 la liste complète des codes d'erreur, consultez la rubrique Codes d'erreur du service.