Utilisation GenerateRandom avec un AWS SDK ou une CLI - AWS Key Management Service

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 GenerateRandom avec un AWS SDK ou une CLI

Les exemples de code suivants illustrent comment utiliser GenerateRandom.

CLI
AWS CLI

Exemple 1 : pour générer une chaîne d’octets aléatoire de 256 bits (Linux ou macOS)

L’exemple generate-random suivant génère une chaîne d’octets aléatoire de 256 bits (32 octets) encodée en base64. L’exemple décode la chaîne d’octets et l’enregistre dans le fichier aléatoire.

Lorsque vous exécutez cette commande, vous devez utiliser le paramètre number-of-bytes pour spécifier la longueur de la valeur aléatoire en octets.

Vous ne spécifiez pas de clé KMS lorsque vous exécutez cette commande. La chaîne d’octets aléatoire n’est liée à aucune clé KMS.

Par défaut, AWS KMS génère le nombre aléatoire. Toutefois, si vous spécifiez un magasin de clés personnalisé, la chaîne d'octets aléatoire est générée dans le cluster AWS CloudHSM associé au magasin de clés personnalisé.

Cet exemple utilise les paramètres et valeurs suivants :

Il utilise le --number-of-bytes paramètre requis avec une valeur de 32 pour demander une chaîne de 32 octets (256 bits). Il utilise le --output paramètre avec une valeur de pour demander à la AWS CLI de renvoyer la sortie sous forme de texte, au lieu de JSON. Il utilise le --query parameter pour extraire la valeur de la Plaintext propriété de la réponse. Il envoie (|) la sortie de la commande à l'base64utilitaire, qui décode la sortie extraite. Il utilise l'opérateur de text redirection (>) pour enregistrer la chaîne d'octets décodée dans le fichier .it utilise l'opérateur de redirection (>) ExampleRandom pour enregistrer le texte chiffré binaire dans un fichier.

aws kms generate-random \ --number-of-bytes 32 \ --output text \ --query Plaintext | base64 --decode > ExampleRandom

Cette commande ne produit aucune sortie.

Pour plus d'informations, consultez la référence GenerateRandomde l'API du service de gestion des AWS clés.

Exemple 2 : pour générer un nombre aléatoire de 256 bits (invite de commande Windows)

L’exemple suivant utilise la commande generate-random pour générer une chaîne d’octets aléatoire de 256 bits (32 octets) encodée en base64. L’exemple décode la chaîne d’octets et l’enregistre dans le fichier aléatoire. Cet exemple est identique à l’exemple précédent, sauf qu’il utilise l’utilitaire certutil de Windows pour décoder en base64 la chaîne d’octets aléatoire avant de l’enregistrer dans un fichier.

Tout d’abord, générez une chaîne d’octets aléatoire encodée en base64 et enregistrez-la dans un fichier temporaire, ExampleRandom.base64.

aws kms generate-random \ --number-of-bytes 32 \ --output text \ --query Plaintext > ExampleRandom.base64

La sortie de la commande generate-random étant enregistrée dans un fichier, cet exemple ne produit aucune sortie.

Utilisez maintenant la commande certutil -decode pour décoder la chaîne d’octets encodée en base64 dans le fichier ExampleRandom.base64. Ensuite, il enregistre la chaîne d’octets décodée dans le fichier ExampleRandom.

certutil -decode ExampleRandom.base64 ExampleRandom

Sortie :

Input Length = 18 Output Length = 12 CertUtil: -decode command completed successfully.

Pour plus d'informations, consultez la référence GenerateRandomde l'API du service de gestion des AWS clés.

  • Pour plus de détails sur l'API, reportez-vous GenerateRandomà la section Référence des AWS CLI commandes.

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_string(client: &Client, length: i32) -> Result<(), Error> { let resp = client .generate_random() .number_of_bytes(length) .send() .await?; // Did we get an encrypted blob? let blob = resp.plaintext.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 GenerateRandomla 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, consultezUtilisation de 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.