Génère une clé de données en texte clair et sa version chiffrée à l'aide d'une clé KMS.
Notes d'utilisation
Présentation
L'opération GenerateDataKey utilise un générateur de nombres aléatoires pour créer une clé de données, la chiffre avec la version initiale d'une clé Key Management Service (KMS), puis renvoie la clé de données en texte clair et la clé de données chiffrée. Utilisez la clé de données en texte clair pour chiffrer vos données en dehors de KMS. Après le chiffrement, conservez la clé de données chiffrée (CiphertextBlob), le vecteur d'initialisation (Iv), l'algorithme de chiffrement (Algorithm) et les données authentifiées supplémentaires (Aad). Ces quatre valeurs sont indispensables pour déchiffrer les données ultérieurement.
Pour plus d'informations sur les spécifications des clés et les modes de chiffrement, consultez la rubrique Types et spécifications des clés.
Seul le mode Galois/Counter Mode (GCM) est pris en charge lors du chiffrement d'une clé de données.
KMS s'appuie sur un générateur de nombres aléatoires de haute qualité pour produire la clé de données. Ce générateur fonctionne indépendamment du matériel de clé KMS utilisé pour chiffrer la clé de données.
Différences entre GenerateDataKey et AdvanceGenerateDataKey
Les opérations GenerateDataKey et AdvanceGenerateDataKey génèrent toutes deux une clé de données. Le tableau suivant présente leurs principales différences :
| GenerateDataKey | AdvanceGenerateDataKey | |
|---|---|---|
| Version de clé utilisée | Version initiale | Version principale |
| Type de clé pris en charge | Tout type de clé pris en charge | Clés symétriques uniquement dans les instances KMS de gestion logicielle des clés |
| Valeurs à stocker après le chiffrement | CiphertextBlob, Iv, Algorithm, Aad | CiphertextBlob, Aad |
| Opérations de déchiffrement | Decrypt ou AdvanceDecrypt | AdvanceDecrypt uniquement |
Si vous utilisez une clé symétrique dans une instance KMS de gestion logicielle des clés avec la rotation automatique activée, appelez AdvanceGenerateDataKey au lieu de GenerateDataKey. L'utilisation de GenerateDataKey dans cette configuration empêche le fonctionnement de la fonctionnalité de rotation des clés. Pour plus d'informations, consultez la rubrique Configurer la rotation des clés.
Paramètres de requête
| Paramètre | Type | Obligatoire | Exemple | Description |
|---|---|---|---|---|
| KeyId | string | Oui | key-hzz62f1cb66fa42qo**** | ID globalement unique de la clé KMS. Vous pouvez également spécifier un alias associé à la clé. |
| NumberOfBytes | int | Oui | 32 | Longueur de la clé de données à générer. |
| Aad | binary | Non | Données binaires | Données authentifiées supplémentaires (Aad) utilisées pour authentifier la clé de données lors du chiffrement. Seul le mode GCM est pris en charge. Si vous spécifiez ce paramètre, transmettez la même valeur lors de l'appel à l'opération Decrypt. |
Paramètres de réponse
| Paramètre | Type | Exemple | Description |
|---|---|---|---|
| KeyId | string | key-hzz62f1cb66fa42qo**** | ID globalement unique de la clé KMS. Si la requête spécifiait un alias, ce champ renvoie l'ID de la clé à laquelle l'alias est associé. |
| Iv | bytes | Données binaires | Vecteur d'initialisation utilisé lors du chiffrement de la clé de données. Lors de l'appel à l'opération Decrypt pour déchiffrer la clé de données, vous devez spécifier une valeur valide pour Iv. |
| Plaintext | bytes | Texte clair binaire | Clé de données en texte clair. |
| CiphertextBlob | bytes | Texte chiffré binaire | Clé de données chiffrée. |
| Algorithm | string | AES_GCM | Algorithme de chiffrement. |
| RequestId | string | 475f1620-b9d3-4d35-b5c6-3fbdd941423d | ID de la requête. |
Codes d'erreur
Pour obtenir la liste des codes d'erreur, consultez la page Codes d'erreur du service.