CmdID

CmdID / aws / aws kms

aws kms generate-random

Returns a random byte string that is cryptographically secure. AWS CLI reference

2 examples 3 options Its page in the AWS CLI reference

Opens CmdID with your command. It is read in your browser and sent nowhere.

Examples

from aws-cli, each command read by CmdID

Example 1: To generate a 256-bit random byte string (Linux or macOs)

The following generate-random example generates a 256-bit (32-byte), base64-encoded random byte string. The example decodes the byte string and saves it in the random file.

When you run this command, you must use the number-of-bytes parameter to specify the length of the random value in bytes.

You don't specify a KMS key when you run this command. The random byte string is unrelated to any KMS key.

By default, AWS KMS generates the random number. However, if you specify a custom key store, the random byte string is generated in the AWS CloudHSM cluster associated with the custom key store.

This example uses the following parameters and values:

It uses the required --number-of-bytes parameter with a value of 32 to request a 32-byte (256-bit) string.

It uses the --output parameter with a value of text to direct the AWS CLI to return the output as text, instead of JSON.

It uses the --query parameter to extract the value of the Plaintext property from the response.

It pipes ( | ) the output of the command to the base64 utility, which decodes the extracted output.

It uses the redirection operator ( > ) to save decoded byte string to the ExampleRandom file.

* It uses the redirection operator ( > ) to save the binary ciphertext to a file.

aws kms generate-random --number-of-bytes 32 --output text --query Plaintext | base64 --decode > ExampleRandomIdentify
--number-of-bytesThe length of the random byte string.
--outputThe formatting style for command output.
--queryA JMESPath query to use in filtering the response data.

Trips 1 Sigma rule: lowDecode Base64 Encoded Text by Daniil Yugoslavskiy, oscd.community

This command produces no output.

For more information, see AWS KMS cryptography essentials in the AWS Key Management Service Developer Guide.

Example 2: To generate a 256-bit random number (Windows Command Prompt)

The following generate-random example generates a 256-bit (32-byte), base64-encoded random byte string. The example decodes the byte string and saves it in the random file. This example is the same as the previous example, except that it uses the certutil utility in Windows to base64-decode the random byte string before saving it in a file.

First, generate a base64-encoded random byte string and saves it in a temporary file, ExampleRandom.base64.

aws kms generate-random --number-of-bytes 32 --output text --query Plaintext > ExampleRandom.base64Identify
--number-of-bytesThe length of the random byte string.
--outputThe formatting style for command output.
--queryA JMESPath query to use in filtering the response data.

This command produces no output. The output of the generate-random command is saved in a file.

Now use the certutil -decode command to decode the base64-encoded byte string in the ExampleRandom.base64 file. Then, it saves the decoded byte string in the ExampleRandom file.

certutil -decode ExampleRandom.base64 ExampleRandom
Its output
Input Length = 18
Output Length = 12
CertUtil: -decode command completed successfully.

For more information, see AWS KMS cryptography essentials in the AWS Key Management Service Developer Guide.

Options

3 in the AWS CLI reference
--custom-key-store-idGenerates the random byte string in the CloudHSM cluster that is associated with the specified CloudHSM key store.
--number-of-bytesThe length of the random byte string.
--recipientA signed attestation document from an Amazon Web Services Nitro enclave or NitroTPM, and the encryption algorithm to use with the public key in the attestation document.