Génère une paire de clés de données asymétrique, la chiffre à l'aide de la version principale d'une clé symétrique et renvoie la clé publique en texte clair, la clé privée en texte clair ainsi que la clé privée chiffrée.
Description de l'opération
L'opération AdvanceGenerateDataKeyPair utilise un générateur de nombres aléatoires pour créer une paire de clés de données asymétrique. Le service chiffre cette paire en mode Galois/Counter Mode (GCM) avec la version principale d'une clé symétrique dans Key Management Service (KMS). Utilisez cette opération lorsque la rotation automatique des clés est configurée pour la clé symétrique et que vous avez besoin d'un accès immédiat à la clé privée en texte clair. Les paires de clés de données permettent de vérifier les signatures en dehors de KMS.
Conservez la clé privée chiffrée (PrivateKeyCiphertextBlob), l'algorithme de chiffrement (Algorithm) et les données d'authentification (Aad) dans un emplacement sécurisé. Ces valeurs sont requises lors de l'appel à l'opération AdvanceDecrypt pour déchiffrer la clé privée chiffrée.
Choix de l'opération de paire de clés de données
KMS propose quatre opérations pour générer des paires de clés de données. Le tableau suivant résume leurs différences.
| API | Cas d'utilisation | Données de réponse | Version de clé pour le chiffrement | Opération de déchiffrement |
|---|---|---|---|---|
| GenerateDataKeyPair | Aucune rotation automatique ; besoin immédiat de la clé privée en texte clair | Clé publique en texte clair, clé privée en texte clair, clé privée chiffrée | Version initiale de la clé | Decrypt |
| GenerateDataKeyPairWithoutPlaintext | Aucune rotation automatique ; clé privée en texte clair non requise ou sécurité renforcée privilégiée | Clé publique en texte clair et clé privée en texte clair | Version initiale de la clé | Decrypt |
| AdvanceGenerateDataKeyPair | Rotation automatique configurée ; besoin immédiat de la clé privée en texte clair | Clé publique en texte clair, clé privée en texte clair, clé privée chiffrée | Version principale de la clé | AdvanceDecrypt |
| AdvanceGenerateDataKeyPairWithoutPlaintext | Rotation automatique configurée ; clé privée en texte clair non requise ou sécurité renforcée privilégiée | Clé publique en texte clair et clé privée en texte clair | Version principale de la clé | AdvanceDecrypt |
Pour plus d'informations sur la rotation des clés, consultez la rubrique Configurer la rotation des clés.
Remarques sur l'utilisation
Chaque instance KMS ne traite qu'une seule requête à la fois pour l'ensemble des quatre opérations de génération de paires de clés de données : GenerateDataKeyPair, GenerateDataKeyPairWithoutPlaintext, AdvanceGenerateDataKeyPair et AdvanceGenerateDataKeyPairWithoutPlaintext. Contrôlez les requêtes concurrentes afin d'éviter d'atteindre cette limite. Si le nombre de requêtes concurrentes dépasse la limite, KMS renvoie le code HTTP 429 (Concurrency Limit Exceeded).
Paramètres de requête
| Paramètre | Type | Obligatoire | Exemple | Description |
|---|---|---|---|---|
| KeyId | string | Oui | key-hzz62f1cb66fa42qo**** | ID globalement unique de la clé symétrique ou alias associé à 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 | Type de la paire de clés de données. Valeurs valides : RSA_2048, RSA_3072, RSA_4096, EC_P256, EC_P256K. |
| KeyFormat | string | Oui | PEM | Format de la paire de clés. Valeurs valides : PEM, DER. |
| Aad | bytes | Non | Données binaires | Données d'authentification (données authentifiées supplémentaires, AAD) utilisées lors du chiffrement de la paire de clés de données en mode GCM. Si vous spécifiez ce paramètre, transmettez la même valeur à l'opération AdvanceDecrypt lors du déchiffrement de la clé privée chiffrée. |
Éléments de réponse
| Paramètre | Type | Exemple | Description |
|---|---|---|---|
| KeyId | string | key-hzz62f1cb66fa42qo**** | ID globalement unique de la clé. Si le paramètre KeyId de la requête était défini sur un alias, ce champ renvoie l'ID de la clé associée à cet alias. |
| KeyPairSpec | string | RSA_2048 | Type de la paire de clés de données. |
| Algorithm | string | AES_GCM | Algorithme de chiffrement utilisé pour chiffrer la paire de clés de données. Seul l'algorithme AES_GCM est pris en charge. |
| Iv | bytes | Données binaires | Vecteur d'initialisation (IV) utilisé pour chiffrer la paire de clés de données. Transmettez cette valeur à l'opération AdvanceDecrypt lors du déchiffrement de la clé privée chiffrée. |
| PublicKey | bytes | Données binaires | Clé publique en texte clair. Si KeyFormat est défini sur DER, renvoie une clé publique X.509 au format DER. Si KeyFormat est défini sur PEM, renvoie une clé publique X.509 au format PEM. |
| PrivateKeyPlaintext | bytes | Données binaires | Clé privée en texte clair. Si KeyFormat est défini sur DER, renvoie une clé privée PKCS#8 au format DER. Si KeyFormat est défini sur PEM, renvoie une clé privée PKCS#8 au format PEM. |
| PrivateKeyCiphertextBlob | bytes | Données binaires | Clé privée chiffrée. Conservez cette valeur en toute sécurité et utilisez-la avec les paramètres Algorithm et Aad pour déchiffrer la clé privée via l'opération AdvanceDecrypt. |
| RequestId | string | 475f1620-b9d3-4d35-b5c6-3fbdd941423d | ID de la requête. |
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 concurrentes a dépassé la limite par instance. |
Pour obtenir la liste complète des codes d'erreur, consultez la rubrique Codes d'erreur de service.