Trabajo con claves - AWS Key Management Service

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.

Trabajo con claves

Los ejemplos de este tema utilizan la API de AWS KMS para crear, ver, habilitar y desactivar AWS KMS AWS KMS keys, y para generar claves de datos.

Crear una clave KMS

Para crear una AWS KMS key(clave KMS), utilice la CreateKeyoperación. Los ejemplos de esta sección crean una clave KMS de cifrado simétrica. El parámetro Description utilizado en estos ejemplos es opcional.

En los idiomas que requieren un objeto cliente, estos ejemplos usan el objeto cliente de AWS KMS que ha creado en Crear un cliente.

Para obtener ayuda con la creación de claves KMS en la consola de AWS KMS, consulte Crear claves.

Java

Para obtener más detalles, consulte el método createKey en la Referencia de la API de AWS SDK for Java.

// Create a KMS key // String desc = "Key for protecting critical data"; CreateKeyRequest req = new CreateKeyRequest().withDescription(desc); CreateKeyResult result = kmsClient.createKey(req);
C#

Para obtener más información, consulte el método CreateKey en AWS SDK for .NET.

// Create a KMS key // String desc = "Key for protecting critical data"; CreateKeyRequest req = new CreateKeyRequest() { Description = desc }; CreateKeyResponse response = kmsClient.CreateKey(req);
Python

Para obtener más información, consulte el método create_key en AWS SDK for Python (Boto3).

# Create a KMS key desc = 'Key for protecting critical data' response = kms_client.create_key( Description=desc )
Ruby

Para obtener más información, consulte el método de instancia create_key en AWS SDK for Ruby.

# Create a KMS key desc = 'Key for protecting critical data' response = kmsClient.create_key({ description: desc })
PHP

Para obtener más información, consulte el método CreateKey en AWS SDK for PHP.

// Create a KMS key // $desc = "Key for protecting critical data"; $result = $KmsClient->createKey([ 'Description' => $desc ]);
Node.js

Para obtener más información, consulta la propiedad CreateKey en AWSel SDK JavaScript o en Node.js.

// Create a KMS key // const Description = 'Key for protecting critical data'; kmsClient.createKey({ Description }, (err, data) => { ... });
PowerShell

Para crear una clave de KMS PowerShell, utilice el cmdlet New-. KmsKey

# Create a KMS key $desc = 'Key for protecting critical data' New-KmsKey -Description $desc

Para usar los AWS KMS PowerShell cmdlets, instale AWS.Tools. KeyManagementServicemódulo. Para obtener más información, consulte la AWS Tools for Windows PowerShellGuía del usuario de .

Generar una clave de datos

Para generar una clave de datos simétrica, utilice la GenerateDataKeyoperación. Esta operación devuelve una clave de datos de texto sin formato y una copia de esa clave de datos cifrada bajo la clave KMS de cifrado simétrica especificada. Debe especificar KeySpec o NumberOfBytes (pero no ambos) en cada comando.

Para obtener ayuda sobre cómo utilizar la clave de datos para cifrar los datos, consulte AWS Encryption SDK. También puede usar la clave de datos en operaciones de HMAC.

En los idiomas que requieren un objeto cliente, estos ejemplos usan el objeto cliente de AWS KMS que ha creado en Crear un cliente.

Java

Para obtener más información, consulta el generateDataKey método en la referencia de la AWS SDK for Java API.

// Generate a data key // // Replace the following example key ARN with any valid key identfier String keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; GenerateDataKeyRequest dataKeyRequest = new GenerateDataKeyRequest(); dataKeyRequest.setKeyId(keyId); dataKeyRequest.setKeySpec("AES_256"); GenerateDataKeyResult dataKeyResult = kmsClient.generateDataKey(dataKeyRequest); ByteBuffer plaintextKey = dataKeyResult.getPlaintext(); ByteBuffer encryptedKey = dataKeyResult.getCiphertextBlob();
C#

Para obtener más información, consulte el método GenerateDataKey en AWS SDK for .NET.

// Generate a data key // // Replace the following example key ARN with any valid key identfier String keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; GenerateDataKeyRequest dataKeyRequest = new GenerateDataKeyRequest() { KeyId = keyId, KeySpec = DataKeySpec.AES_256 }; GenerateDataKeyResponse dataKeyResponse = kmsClient.GenerateDataKey(dataKeyRequest); MemoryStream plaintextKey = dataKeyResponse.Plaintext; MemoryStream encryptedKey = dataKeyResponse.CiphertextBlob;
Python

Para obtener más información, consulte el método generate_data_key en AWS SDK for Python (Boto3).

# Generate a data key # Replace the following example key ARN with any valid key identfier key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kms_client.generate_data_key( KeyId=key_id, KeySpec='AES_256' ) plaintext_key = response['Plaintext'] encrypted_key = response['CiphertextBlob']
Ruby

Para obtener más información, consulte el método de instancia generate_data_key en AWS SDK for Ruby.

# Generate a data key # Replace the following example key ARN with any valid key identfier key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kmsClient.generate_data_key({ key_id: key_id, key_spec: 'AES_256' }) plaintext_key = response.plaintext encrypted_key = response.ciphertext_blob
PHP

Para obtener más información, consulte el método GenerateDataKey en AWS SDK for PHP.

// Generate a data key // // Replace the following example key ARN with any valid key identfier $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; $keySpec = 'AES_256'; $result = $KmsClient->generateDataKey([ 'KeyId' => $keyId, 'KeySpec' => $keySpec, ]); $plaintextKey = $result['Plaintext']; $encryptedKey = $result['CiphertextBlob'];
Node.js

Para obtener más información, consulta la generateDataKey propiedad en el AWSSDK de JavaScript Node.js.

// Generate a data key // // Replace the following example key ARN with any valid key identfier const KeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; const KeySpec = 'AES_256'; kmsClient.generateDataKey({ KeyId, KeySpec }, (err, data) => { if (err) console.log(err, err.stack); else { const { CiphertextBlob, Plaintext } = data; ... } });
PowerShell

Para generar una clave de datos simétrica, utilice el cmdlet New-KMS DataKey.

En el resultado, la clave de texto sin formato (en la Plaintext propiedad) y la clave cifrada (en la propiedad) son objetos. CiphertextBlob MemoryStream Para convertirlos en cadenas, utilice los métodos de la MemoryStream clase o un cmdlet o una función que convierta MemoryStream los objetos en cadenas, como las funciones ConvertFrom- MemoryStream y ConvertFrom-Base64 del módulo Convert.

# Generate a data key # Replace the following example key ARN with any valid key identfier $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' $keySpec = 'AES_256' $response = New-KmsDataKey -KeyId $keyId -KeySpec $keySpec $plaintextKey = $response.Plaintext $encryptedKey = $response.CiphertextBlob

Para usar los AWS KMS PowerShell cmdlets, instale AWS.Tools. KeyManagementServicemódulo. Para obtener más información, consulte la AWS Tools for Windows PowerShellGuía del usuario de .

Ver un AWS KMS key

Para obtener información detallada sobre anAWS KMS key, incluidos el ARN y el estado de la clave de KMS, utilice la DescribeKeyoperación.

DescribeKey no obtiene alias. Para obtener los alias, utilice la ListAliasesoperación. Para ver ejemplos, consulte Trabajar con alias.

En los idiomas que requieren un objeto cliente, estos ejemplos usan el objeto cliente de AWS KMS que ha creado en Crear un cliente.

Para obtener ayuda con las claves KMS en la consola de AWS KMS, consulte Consultar claves.

Java

Para obtener más detalles, consulte el método describeKey en la Referencia de la API de AWS SDK for Java.

// Describe a KMS key // // Replace the following example key ARN with any valid key identfier String keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; DescribeKeyRequest req = new DescribeKeyRequest().withKeyId(keyId); DescribeKeyResult result = kmsClient.describeKey(req);
C#

Para obtener más información, consulte el método DescribeKey en AWS SDK for .NET.

// Describe a KMS key // // Replace the following example key ARN with any valid key identfier String keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; DescribeKeyRequest describeKeyRequest = new DescribeKeyRequest() { KeyId = keyId }; DescribeKeyResponse describeKeyResponse = kmsClient.DescribeKey(describeKeyRequest);
Python

Para obtener más información, consulte el método describe_key en AWS SDK for Python (Boto3).

# Describe a KMS key # Replace the following example key ARN with any valid key identfier key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kms_client.describe_key( KeyId=key_id )
Ruby

Para obtener más información, consulte el método de instancia describe_key en AWS SDK for Ruby.

# Describe a KMS key # Replace the following example key ARN with any valid key identfier key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kmsClient.describe_key({ key_id: key_id })
PHP

Para obtener más información, consulte el método DescribeKey en AWS SDK for PHP.

// Describe a KMS key // // Replace the following example key ARN with any valid key identfier $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; $result = $KmsClient->describeKey([ 'KeyId' => $keyId, ]);
Node.js

Para obtener más información, consulte la propiedad DescribeKey en AWSel SDK JavaScript o en Node.js.

// Describe a KMS key // // Replace the following example key ARN with any valid key identfier const KeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; kmsClient.describeKey({ KeyId }, (err, data) => { ... });
PowerShell

Para obtener información detallada sobre una clave de KMS, utilice el cmdlet Get-. KmsKey

# Describe a KMS key # Replace the following example key ARN with any valid key identfier $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' Get-KmsKey -KeyId $keyId

Para usar los AWS KMS PowerShell cmdlets, instale AWS.Tools. KeyManagementServicemódulo. Para obtener más información, consulte la AWS Tools for Windows PowerShellGuía del usuario de .

Obtener ID de clave y ARN clave de claves KMS

Para obtener los ID y los ARN clave delAWS KMS keys, utilice la ListKeysoperación. Estos ejemplos utilizan el parámetro opcional Limit, que establece el número máximo de claves KMS devueltas en cada llamada. Para obtener ayuda para identificar una clave KMS en una operación de AWS KMS, consulte Identificadores clave () KeyId.

En los idiomas que requieren un objeto cliente, estos ejemplos usan el objeto cliente de AWS KMS que ha creado en Crear un cliente.

Para obtener ayuda con la búsqueda de identificadores de clave y ARN de clave en la consola de AWS KMS, consulte Búsqueda del ID y el ARN de la clave.

Java

Para obtener más detalles, consulte el método listKeys en la Referencia de la API de AWS SDK for Java.

// List KMS keys in this account // Integer limit = 10; ListKeysRequest req = new ListKeysRequest().withLimit(limit); ListKeysResult result = kmsClient.listKeys(req);
C#

Para obtener más información, consulte el método ListKeys en AWS SDK for .NET.

// List KMS keys in this account // int limit = 10; ListKeysRequest listKeysRequest = new ListKeysRequest() { Limit = limit }; ListKeysResponse listKeysResponse = kmsClient.ListKeys(listKeysRequest);
Python

Para obtener más información, consulte el método list_keys en AWS SDK for Python (Boto3).

# List KMS keys in this account response = kms_client.list_keys( Limit=10 )
Ruby

Para obtener más información, consulte el método de instancia list_keys en AWS SDK for Ruby.

# List KMS keys in this account response = kmsClient.list_keys({ limit: 10 })
PHP

Para obtener más información, consulte el método ListKeys en AWS SDK for PHP.

// List KMS keys in this account // $limit = 10; $result = $KmsClient->listKeys([ 'Limit' => $limit, ]);
Node.js

Para obtener más información, consulta la propiedad ListKeys en el AWSSDK o JavaScript en Node.js.

// List KMS keys in this account // const Limit = 10; kmsClient.listKeys({ Limit }, (err, data) => { ... });
PowerShell

Para obtener el identificador de clave y el ARN de clave de todas las claves de KMS de la cuenta y la región, utilice el cmdlet Get- KmsKeyList.

Para limitar el número de objetos de salida, este ejemplo usa el cmdlet Select-Object en lugar del parámetro Limit, que está quedando obsoleto en los cmdlet de la lista. Para obtener asistencia con la paginación de salida en AWS Tools for PowerShell, vea Paginación de salida con AWS Tools for PowerShell.

# List KMS keys in this account $limit = 10 Get-KmsKeyList | Select-Object -First $limit

Para usar los AWS KMS PowerShell cmdlets, instale AWS.Tools. KeyManagementServicemódulo. Para obtener más información, consulte la AWS Tools for Windows PowerShellGuía del usuario de .

Habilitación de AWS KMS keys

Para habilitar un deshabilitadoAWS KMS key, use la EnableKeyoperación.

En los idiomas que requieren un objeto cliente, estos ejemplos usan el objeto cliente de AWS KMS que ha creado en Crear un cliente.

Para obtener ayuda con la habilitación y deshabilitación de claves KMS en la consola de AWS KMS, consulte Habilitación y deshabilitación de claves.

Java

Para obtener más detalles sobre la implementación de Java, consulte el método enableKey en la Referencia de la API de AWS SDK for Java.

// Enable a KMS key // // Replace the following example key ARN with a valid key ID or key ARN String keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; EnableKeyRequest req = new EnableKeyRequest().withKeyId(keyId); kmsClient.enableKey(req);
C#

Para obtener más información, consulte el método EnableKey en AWS SDK for .NET.

// Enable a KMS key // // Replace the following example key ARN with a valid key ID or key ARN String keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; EnableKeyRequest enableKeyRequest = new EnableKeyRequest() { KeyId = keyId }; kmsClient.EnableKey(enableKeyRequest);
Python

Para obtener más información, consulte el método enable_key en AWS SDK for Python (Boto3).

# Enable a KMS key # Replace the following example key ARN with a valid key ID or key ARN key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kms_client.enable_key( KeyId=key_id )
Ruby

Para obtener más información, consulte el método de instancia enable_key en AWS SDK for Ruby.

# Enable a KMS key # Replace the following example key ARN with a valid key ID or key ARN key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kmsClient.enable_key({ key_id: key_id })
PHP

Para obtener más información, consulte el método EnableKey en AWS SDK for PHP.

// Enable a KMS key // // Replace the following example key ARN with a valid key ID or key ARN $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; $result = $KmsClient->enableKey([ 'KeyId' => $keyId, ]);
Node.js

Para obtener más información, consulte la propiedad EnableKey en AWSel SDK JavaScript de Node.js.

// Enable a KMS key // // Replace the following example key ARN with a valid key ID or key ARN const KeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; kmsClient.enableKey({ KeyId }, (err, data) => { ... });
PowerShell

Para habilitar una clave KMS, utilice el cmdlet Enable-. KmsKey

# Enable a KMS key # Replace the following example key ARN with a valid key ID or key ARN $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' Enable-KmsKey -KeyId $keyId

Para usar los AWS KMS PowerShell cmdlets, instale AWS.Tools. KeyManagementServicemódulo. Para obtener más información, consulte la AWS Tools for Windows PowerShellGuía del usuario de .

Deshabilitación de AWS KMS key

Para deshabilitar una clave KMS, utilice la DisableKeyoperación. Desactivar una clave KMS impide que se utilice en operaciones criptográficas.

En los idiomas que requieren un objeto cliente, estos ejemplos usan el objeto cliente de AWS KMS que ha creado en Crear un cliente.

Para obtener ayuda con la habilitación y deshabilitación de claves KMS en la consola de AWS KMS, consulte Habilitación y deshabilitación de claves.

Java

Para obtener más detalles, consulte el método disableKey en la Referencia de la API de AWS SDK for Java.

// Disable a KMS key // // Replace the following example key ARN with a valid key ID or key ARN String keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; DisableKeyRequest req = new DisableKeyRequest().withKeyId(keyId); kmsClient.disableKey(req);
C#

Para obtener más información, consulte el método DisableKey en AWS SDK for .NET.

// Disable a KMS key // // Replace the following example key ARN with a valid key ID or key ARN String keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; DisableKeyRequest disableKeyRequest = new DisableKeyRequest() { KeyId = keyId }; kmsClient.DisableKey(disableKeyRequest);
Python

Para obtener más información, consulte el método disable_key en AWS SDK for Python (Boto3).

# Disable a KMS key # Replace the following example key ARN with a valid key ID or key ARN key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kms_client.disable_key( KeyId=key_id )
Ruby

Para obtener más información, consulte el método de instancia disable_key en AWS SDK for Ruby.

# Disable a KMS key # Replace the following example key ARN with a valid key ID or key ARN key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kmsClient.disable_key({ key_id: key_id })
PHP

Para obtener más información, consulte el método DisableKey en AWS SDK for PHP.

// Disable a KMS key // // Replace the following example key ARN with a valid key ID or key ARN $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; $result = $KmsClient->disableKey([ 'KeyId' => $keyId, ]);
Node.js

Para obtener más información, consulta la propiedad DisableKey en AWSel SDK JavaScript o en Node.js.

// Disable a KMS key // // Replace the following example key ARN with a valid key ID or key ARN const KeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; kmsClient.disableKey({ KeyId }, (err, data) => { ... });
PowerShell

Para deshabilitar una clave KMS, utilice el cmdlet Disable-. KmsKey

# Disable a KMS key # Replace the following example key ARN with a valid key ID or key ARN $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' Disable-KmsKey -KeyId $keyId

Para usar los AWS KMS PowerShell cmdlets, instale AWS.Tools. KeyManagementServicemódulo. Para obtener más información, consulte la Guía del usuario de AWS Tools for Windows PowerShell.