Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Utilisation GenerateDataKey
avec un AWS SDK ou une CLI
Les exemples de code suivants illustrent comment utiliser GenerateDataKey
.
- CLI
-
- AWS CLI
-
Exemple 1 : pour générer une clé de données symétrique de 256 bits
L'
generate-data-key
exemple suivant demande une clé de données symétrique de 256 bits à utiliser en dehors de. AWS La commande renvoie une clé de données en texte brut pour une utilisation et une suppression immédiates, ainsi qu'une copie de cette clé de données chiffrée sous la clé KMS spécifiée. Vous pouvez stocker en toute sécurité la clé de données chiffrée avec les données chiffrées.Pour demander une clé de données de 256 bits, utilisez le
key-spec
paramètre avec une valeur de.AES_256
Pour demander une clé de données de 128 bits, utilisez lekey-spec
paramètre avec une valeur de.AES_128
Pour toutes les autres longueurs de clé de données, utilisez lenumber-of-bytes
paramètre.La clé KMS que vous spécifiez doit être une clé KMS de chiffrement symétrique, c'est-à-dire une clé KMS dont la valeur de spécification de clé est SYMMETRIC_DEFAULT.
aws kms generate-data-key \ --key-id
alias/ExampleAlias
\ --key-specAES_256
Sortie :
{ "Plaintext": "VdzKNHGzUAzJeRBVY+uUmofUGGiDzyB3+i9fVkh3piw=", "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "CiphertextBlob": "AQEDAHjRYf5WytIc0C857tFSnBaPn2F8DgfmThbJlGfR8P3WlwAAAH4wfAYJKoZIhvcNAQcGoG8wbQIBADBoBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDEFogLqPWZconQhwHAIBEIA7d9AC7GeJJM34njQvg4Wf1d5sw0NIo1MrBqZa+YdhV8MrkBQPeac0ReRVNDt9qleAt+SHgIRF8P0H+7U=" }
La
Plaintext
(clé de données en texte brut) et laCiphertextBlob
(clé de données cryptée) sont renvoyées au format codé en base64.Pour plus d'informations, voir Data keys < https://docs.aws.amazon.com/kms/ latest/developerguide/concepts .html #data -keys dans le Guide du développeur du service de gestion des AWS clés.
Exemple 2 : pour générer une clé de données symétrique 512 bits
L'
generate-data-key
exemple suivant demande une clé de données symétrique de 512 bits pour le chiffrement et le déchiffrement. La commande renvoie une clé de données en texte brut pour une utilisation et une suppression immédiates, ainsi qu'une copie de cette clé de données chiffrée sous la clé KMS spécifiée. Vous pouvez stocker en toute sécurité la clé de données chiffrée avec les données chiffrées.Pour demander une longueur de clé autre que 128 ou 256 bits, utilisez le
number-of-bytes
paramètre. Pour demander une clé de données 512 bits, l'exemple suivant utilise lenumber-of-bytes
paramètre avec une valeur de 64 (octets).La clé KMS que vous spécifiez doit être une clé KMS de chiffrement symétrique, c'est-à-dire une clé KMS dont la valeur de spécification de clé est SYMMETRIC_DEFAULT.
REMARQUE : Les valeurs de la sortie de cet exemple sont tronquées pour être affichées.
aws kms generate-data-key \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
\ --number-of-bytes64
Sortie :
{ "CiphertextBlob": "AQIBAHi6LtupRpdKl2aJTzkK6FbhOtQkMlQJJH3PdtHvS/y+hAEnX/QQNmMwDfg2korNMEc8AAACaDCCAmQGCSqGSIb3DQEHBqCCAlUwggJRAgEAMIICSgYJKoZ...", "Plaintext": "ty8Lr0Bk6OF07M2BWt6qbFdNB+G00ZLtf5MSEb4al3R2UKWGOp06njAwy2n72VRm2m7z/Pm9Wpbvttz6a4lSo9hgPvKhZ5y6RTm4OovEXiVfBveyX3DQxDzRSwbKDPk/...", "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }
Les
Plaintext
(clé de données en texte brut) etCiphertextBlob
(clé de données cryptée) sont renvoyées au format codé en base64.Pour plus d'informations, voir Data keys < https://docs.aws.amazon.com/kms/ latest/developerguide/concepts .html #data -keys dans le Guide du développeur du service de gestion des AWS clés.
-
Pour plus de détails sur l'API, reportez-vous GenerateDataKey
à la section Référence des AWS CLI commandes.
-
- Python
-
- SDK pour Python (Boto3)
-
Note
Il y en a plus à ce sujet GitHub. Trouvez l’exemple complet et découvrez comment le configurer et l’exécuter dans le référentiel d’exemples de code AWS
. class KeyManager: def __init__(self, kms_client): self.kms_client = kms_client self.created_keys = [] @classmethod def from_client(cls) -> "KeyManager": """ Creates a KeyManager instance with a default KMS client. :return: An instance of KeyManager initialized with the default KMS client. """ kms_client = boto3.client("kms") return cls(kms_client) def generate_data_key(self, key_id): """ Generates a symmetric data key that can be used for client-side encryption. """ answer = input( f"Do you want to generate a symmetric data key from key {key_id} (y/n)? " ) if answer.lower() == "y": try: data_key = self.kms_client.generate_data_key( KeyId=key_id, KeySpec="AES_256" ) except ClientError as err: logger.error( "Couldn't generate a data key for key %s. Here's why: %s", key_id, err.response["Error"]["Message"], ) else: pprint(data_key)
-
Pour plus de détails sur l'API, consultez GenerateDataKeyle AWS manuel de référence de l'API SDK for Python (Boto3).
-
- Rust
-
- SDK pour Rust
-
Note
Il y en a plus à ce sujet GitHub. Trouvez l’exemple complet et découvrez comment le configurer et l’exécuter dans le référentiel d’exemples de code AWS
. async fn make_key(client: &Client, key: &str) -> Result<(), Error> { let resp = client .generate_data_key() .key_id(key) .key_spec(DataKeySpec::Aes256) .send() .await?; // Did we get an encrypted blob? let blob = resp.ciphertext_blob.expect("Could not get encrypted text"); let bytes = blob.as_ref(); let s = base64::encode(bytes); println!(); println!("Data key:"); println!("{}", s); Ok(()) }
-
Pour plus de détails sur l'API, voir GenerateDataKey
la section de référence de l'API AWS SDK for Rust.
-
Pour obtenir la liste complète des guides de développement du AWS SDK et des exemples de code, consultezUtiliser ce service avec un AWS SDK. Cette rubrique comprend également des informations sur le démarrage et sur les versions précédentes de SDK.