Uso de GenerateDataKeyWithoutPlaintext
con un AWS SDK o una CLI
En los siguientes ejemplos de código, se muestra cómo utilizar GenerateDataKeyWithoutPlaintext
.
- CLI
-
- AWS CLI
-
Generación de una clave de datos simétrica de 256 bits sin una clave de texto no cifrado
En el siguiente ejemplo de
generate-data-key-without-plaintext
se solicita una copia cifrada de una clave de datos simétrica de 256 bits para usarla fuera de AWS. Puede llamar a AWS KMS para descifrar la clave de datos cuando esté listo para usarla.Para solicitar una clave de datos de 256 bits, utilice el parámetro
key-spec
con un valor deAES_256
. Para solicitar una clave de datos de 128 bits, utilice el parámetrokey-spec
con un valor deAES_128
. Para el resto longitudes de clave de datos, utilice el parámetronumber-of-bytes
.La clave KMS que especifique debe ser una clave de KMS de cifrado simétrica, es decir, una clave de KMS con un valor de especificación de clave de SYMMETRIC_DEFAULT.
aws kms generate-data-key-without-plaintext \ --key-id
"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
\ --key-specAES_256
Salida:
{ "CiphertextBlob": "AQEDAHjRYf5WytIc0C857tFSnBaPn2F8DgfmThbJlGfR8P3WlwAAAH4wfAYJKoZIhvcNAQcGoG8wbQIBADBoBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDEFogL", "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }
CiphertextBlob
(clave de datos cifrada) se devuelve en formato codificado en base64.Para obtener más información, consulte Claves de datos en la Guía para desarrolladores de AWS Key Management Service.
-
Para obtener información sobre la API, consulte GenerateDataKeyWithoutPlaintext
en la Referencia de comandos de la AWS CLI.
-
- Rust
-
- SDK para Rust
-
nota
Hay más información en GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS
. async fn make_key(client: &Client, key: &str) -> Result<(), Error> { let resp = client .generate_data_key_without_plaintext() .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(()) }
-
Para obtener información sobre la API, consulte GenerateDataKeyWithoutPlaintext
en la referencia de la API del SDK para Rust de AWS.
-
Para obtener una lista completa de las guías para desarrolladores del AWS SDK y ejemplos de código, consulte Uso de este servicio con un SDK de AWS. En este tema también se incluye información sobre cómo comenzar a utilizar el SDK y detalles sobre sus versiones anteriores.