Hay más AWS SDK ejemplos disponibles en el GitHub repositorio de AWS Doc SDK Examples
Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Úselo GenerateDataKey
con un AWS SDK o CLI
En los siguientes ejemplos de código se muestra cómo se utiliza GenerateDataKey
.
- CLI
-
- AWS CLI
-
Ejemplo 1: Generación de una clave de datos simétrica de 256 bits
El siguiente
generate-data-key
ejemplo solicita una clave de datos simétrica de 256 bits para usarla fuera de. AWS El comando devuelve una clave de datos en texto plano para su uso y eliminación inmediatos, y una copia de esa clave de datos cifrada con la clave especificada. KMS Puede almacenar de forma segura la clave de datos cifrada con los datos cifrados.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 KMS clave que especifique debe ser una KMS clave de cifrado simétrica, es decir, una KMS clave con un valor de especificación de clave de _. SYMMETRIC DEFAULT
aws kms generate-data-key \ --key-id
alias/ExampleAlias
\ --key-specAES_256
Salida:
{ "Plaintext": "VdzKNHGzUAzJeRBVY+uUmofUGGiDzyB3+i9fVkh3piw=", "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "CiphertextBlob": "AQEDAHjRYf5WytIc0C857tFSnBaPn2F8DgfmThbJlGfR8P3WlwAAAH4wfAYJKoZIhvcNAQcGoG8wbQIBADBoBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDEFogLqPWZconQhwHAIBEIA7d9AC7GeJJM34njQvg4Wf1d5sw0NIo1MrBqZa+YdhV8MrkBQPeac0ReRVNDt9qleAt+SHgIRF8P0H+7U=" }
Plaintext
(clave de datos de texto sin formato) yCiphertextBlob
(clave de datos cifrada) se devuelven en formato codificado en base64.Para obtener más información, consulte Data keys < https://docs.aws.amazon.com/kms/ latest/developerguide/concepts .html #data -keys en la Guía para desarrolladores del servicio de administración de AWS claves.
Ejemplo 2: Generación de una clave de datos simétrica de 512 bits
En el siguiente ejemplo de
generate-data-key
se solicita una clave de datos simétrica de 512 bits para cifrado y descifrado. El comando devuelve una clave de datos en texto plano para su uso y eliminación inmediatos, y una copia de esa clave de datos cifrada con la clave especificada. KMS Puede almacenar de forma segura la clave de datos cifrada con los datos cifrados.Para solicitar una longitud de clave distinta de 128 o 256 bits, utilice el parámetro
number-of-bytes
. Para solicitar una clave de datos de 512 bits, en el siguiente ejemplo se utiliza el parámetronumber-of-bytes
con un valor de 64 (bytes).La KMS clave que especifique debe ser una KMS clave de cifrado simétrica, es decir, una KMS clave con un valor de especificación de clave de _. SYMMETRIC DEFAULT
NOTE: Los valores de la salida de este ejemplo están truncados para mostrarlos.
aws kms generate-data-key \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
\ --number-of-bytes64
Salida:
{ "CiphertextBlob": "AQIBAHi6LtupRpdKl2aJTzkK6FbhOtQkMlQJJH3PdtHvS/y+hAEnX/QQNmMwDfg2korNMEc8AAACaDCCAmQGCSqGSIb3DQEHBqCCAlUwggJRAgEAMIICSgYJKoZ...", "Plaintext": "ty8Lr0Bk6OF07M2BWt6qbFdNB+G00ZLtf5MSEb4al3R2UKWGOp06njAwy2n72VRm2m7z/Pm9Wpbvttz6a4lSo9hgPvKhZ5y6RTm4OovEXiVfBveyX3DQxDzRSwbKDPk/...", "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }
Plaintext
(clave de datos de texto sin formato) yCiphertextBlob
(clave de datos cifrada) se devuelven en formato codificado en base64.Para obtener más información, consulte Data keys < https://docs.aws.amazon.com/kms/ latest/developerguide/concepts .html #data -keys en la Guía para desarrolladores del servicio de administración de AWS claves.
-
Para API obtener más información, consulte la Referencia GenerateDataKey
de AWS CLI comandos.
-
- Python
-
- SDKpara Python (Boto3)
-
nota
Hay más información. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de 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)
-
Para API obtener más información, consulte GenerateDataKeyla AWS SDKreferencia de Python (Boto3). API
-
- Rust
-
- SDKpara Rust
-
nota
Hay más información 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() .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 API obtener más información, consulte GenerateDataKey
la APIreferencia AWS SDK de Rust.
-