D'autres AWS SDK exemples sont disponibles dans le GitHub dépôt AWS Doc SDK Examples
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.
À utiliser GenerateDataKey
avec un AWS SDK ou CLI
Les exemples de code suivants montrent comment utiliserGenerateDataKey
.
- 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 KMS clé 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 KMS clé que vous spécifiez doit être une KMS clé de chiffrement symétrique, c'est-à-dire une KMS clé dont la valeur de spécification de SYMMETRIC clé est _. 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 KMS clé 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 KMS clé que vous spécifiez doit être une KMS clé de chiffrement symétrique, c'est-à-dire une KMS clé dont la valeur de spécification de SYMMETRIC clé est _. DEFAULT
NOTE: 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 API plus de détails, voir GenerateDataKey
la section Référence des AWS CLI commandes.
-
- Python
-
- SDKpour 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 API plus de détails, reportez-vous GenerateDataKeyà la section AWS SDKpour la référence Python (Boto3). API
-
- Rust
-
- SDKpour 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 API plus de détails, reportez-vous GenerateDataKey
à la section AWS SDKpour la API référence à Rust.
-