Génère une clé de données aléatoire uniquement sous forme de texte chiffré, sans la copie en texte clair.
Description de l'opération
Précautions
-
Pour plus d'informations sur la stratégie d'accès dont un utilisateur RAM ou un rôle RAM a besoin pour 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 : accédez à KMS via Internet ou via un nom de domaine VPC. Cette méthode nécessite l'activation de l'accès à Internet. Pour plus d'informations, consultez Clés d'accès dans une instance KMS via Internet.
-
Passerelle dédiée : accédez à KMS via un point de terminaison privé KMS (
<YOUR_KMS_INSTANCE_ID>.cryptoservice.kms.aliyuncs.com).
-
Limites de QPS
-
Appels via une passerelle partagée : la limite de requêtes par seconde (QPS) pour un seul utilisateur est de 1 000. Si vous dépassez cette limite, les requêtes sont limitées, ce qui peut affecter votre activité. Nous vous recommandons de rester dans cette limite.
-
Appels via une passerelle dédiée : la limite de QPS pour un seul utilisateur dépend des performances de calcul de votre instance KMS. Pour plus d'informations, consultez Indicateurs de performance.
Détails
Cette opération génère une clé de données aléatoire, la chiffre avec une clé principale client (CMK) symétrique spécifiée, et renvoie le texte chiffré de la clé de données. Cette opération offre les mêmes fonctionnalités que GenerateDataKey. La seule différence est que cette opération ne renvoie pas le texte clair de la clé de données.
La CMK que vous spécifiez dans la requête est utilisée uniquement pour chiffrer la clé de données. Elle 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.
-
Cette opération convient aux systèmes qui n'ont pas besoin d'utiliser immédiatement la clé de données pour le chiffrement des données. Lorsqu'un chiffrement est nécessaire, le système appelle l'API Decrypt pour déchiffrer le texte chiffré de la clé de données.
-
Cette opération convient également aux systèmes distribués avec différents niveaux de confiance. Par exemple, votre système stocke des données dans différentes partitions en fonction d'une stratégie définie. Un module pré-crée ces partitions de données et génère une clé de données unique pour chacune d'elles. Après que ce module a initialisé le plan de contrôle, il agit en tant que distributeur de clés et ne produit ni ne consomme de données. Lorsque les modules du plan de données produisent et consomment des données, ils récupèrent d'abord le texte chiffré de la clé de données pour une partition. Ils déchiffrent ensuite le texte chiffré et utilisent la clé de données en texte clair pour chiffrer ou déchiffrer les données. Enfin, ils purgent la clé de données en texte clair de la mémoire. Dans un tel système, le distributeur de clés n'a pas besoin d'accéder au texte clair de la clé de données. Il nécessite uniquement l'autorisation `GenerateDataKeyWithoutPlaintext` pour la CMK concernée. Les producteurs et consommateurs de données n'ont pas besoin de générer de nouvelles clés de données. Ils nécessitent uniquement l'autorisation `Decrypt` pour la CMK concernée.
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 unique global de la CMK. Vous pouvez également spécifier un alias lié à la CMK. Pour plus d'informations sur l'utilisation d'un alias, consultez la vue d'ensemble des alias. |
599fa825-17de-417e-9554-bb032cc6**** |
| KeySpec |
string |
Non |
La longueur de la clé de données à générer. Valeurs valides :
Remarque
Utilisez KeySpec ou NumberOfBytes pour spécifier la longueur de la 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 à générer. |
256 |
| EncryptionContext |
object |
Non |
Une chaîne JSON de paires clé-valeur. Si vous spécifiez ce paramètre, vous devez fournir le même paramètre lors de l'appel de l'opération Decrypt. Pour plus d'informations, consultez EncryptionContext. |
{"Example":"Exemple"} |
| DryRun |
string |
Non |
Indique si le mode DryRun doit être activé.
Le mode DryRun est utilisé pour tester les appels d'API, vérifier vos autorisations sur les ressources requises et contrôler la validité des paramètres de la requête. Si vous activez le mode DryRun, KMS renvoie une réponse d'échec avec un motif. Les motifs d'échec incluent les éléments suivants :
|
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 clair. Il s'agit de la version principale de la CMK spécifiée. |
2ab1a983-7072-4bbc-a582-584b5bd8**** |
| KeyId |
string |
L'identifiant unique global de la CMK. Remarque
Si vous utilisez un alias de la CMK dans le paramètre KeyId de la requête, l'identifiant de la CMK 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 par la version principale de la CMK spécifiée. |
ODZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmS7FmDBBQ0BkKsQrtRnidtPwirmDcS0ZuJCU41xxAAWk4Z8qsADfbV0b+i6kQmlvj79dJdGOvtX69Uycs901qOjop4bTS**** |
| RequestId |
string |
L'identifiant de la requête. Cet identifiant est un identifiant unique global généré par Alibaba Cloud pour la requête. Vous pouvez utiliser cet identifiant pour dépanner et localiser les problèmes. |
7021b6ec-4be7-4d3c-8a68-1e85d4d515a0 |
Exemples
JSON format
{
"KeyVersionId": "2ab1a983-7072-4bbc-a582-584b5bd8****",
"KeyId": "599fa825-17de-417e-9554-bb032cc6****",
"CiphertextBlob": "ODZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmS7FmDBBQ0BkKsQrtRnidtPwirmDcS0ZuJCU41xxAAWk4Z8qsADfbV0b+i6kQmlvj79dJdGOvtX69Uycs901qOjop4bTS****",
"RequestId": "7021b6ec-4be7-4d3c-8a68-1e85d4d515a0"
}
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. |
| 404 | InvalidAccessKeyId.NotFound | The Access Key ID provided does not exist in our records. | |
| 404 | Forbidden.KeyNotFound | The specified Key is not found. | The error message returned because the specified CMK does not exist. |
Consultez Codes d'erreur pour la liste complète.
Notes de version
Consultez Notes de version pour la liste complète.