

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.

# Actualización de los AWS KMS llaveros
<a name="migrate-keyrings-v2"></a>

 AWS KMS Los anillos de claves de [SDK de cifrado de AWS para C](c-language.md), los de [.NET](dot-net.md) y el AWS Encryption SDK son [SDK de cifrado de AWS para JavaScript](javascript.md)compatibles con [las mejores prácticas](best-practices.md), ya que permiten especificar claves de empaquetado al cifrar y descifrar. Si crea un [conjunto de claves de detección de AWS KMS](use-kms-keyring.md#kms-keyring-discovery), lo hace de forma explícita. 

**nota**  
La versión más antigua de AWS Encryption SDK para .NET es la 3.0. *x*. Todas las AWS Encryption SDK versiones de.NET son compatibles con las mejores prácticas de seguridad introducidas en la versión 2.0. *x* de AWS Encryption SDK. Puede actualizar de forma segura a la última versión sin cambios de código o datos.

Al actualizar a la última versión 1. versión *x* de AWS Encryption SDK, puede utilizar un [filtro de descubrimiento](use-kms-keyring.md#kms-keyring-discovery) para limitar las claves de empaquetado que un conjunto de claves de [AWS KMS descubrimiento o un](use-kms-keyring.md#kms-keyring-discovery) conjunto de [claves de descubrimiento AWS KMS regional](use-kms-keyring.md#kms-keyring-regional) utiliza al descifrar a esas en particular. Cuentas de AWS[Se recomienda filtrar un conjunto de claves de detección. AWS Encryption SDK](best-practices.md)

Los ejemplos de esta sección le mostrarán cómo añadir el filtro de detección a un conjunto de claves de detección regional AWS KMS .

**Obtenga más información sobre la migración**

Para todos los AWS Encryption SDK usuarios, infórmese sobre cómo establecer su política de compromiso. [Establecer su política de compromiso](migrate-commitment-policy.md)

Para SDK de cifrado de AWS para Java SDK de cifrado de AWS para Python, y los usuarios de CLI de AWS cifrado, infórmese sobre la actualización necesaria para los proveedores de claves maestras en[Actualización de los proveedores de claves AWS KMS maestras](migrate-mkps-v2.md).

 

Es posible que tenga un código como el siguiente en su aplicación. En este ejemplo, se crea un conjunto de claves de detección regional AWS KMS que solo puede usar claves de encapsulamiento en la región del oeste de EE. UU. (Oregón) (us-west-2). Este ejemplo representa el código de las AWS Encryption SDK versiones anteriores a la 1.7. *x*. Sin embargo, sigue siendo válido en las versiones 1.7.*x* y versiones posteriores. 

------
#### [ C ]

```
struct aws_cryptosdk_keyring *kms_regional_keyring = Aws::Cryptosdk::KmsKeyring::Builder()
       .WithKmsClient(create_kms_client(Aws::Region::US_WEST_2)).BuildDiscovery());
```

------
#### [ JavaScript Browser ]

```
const clientProvider = getClient(KMS, { credentials })

const discovery = true
const clientProvider = limitRegions(['us-west-2'], getKmsClient)
const keyring = new KmsKeyringBrowser({ clientProvider, discovery })
```

------
#### [ JavaScript Node.js ]

```
const discovery = true
const clientProvider = limitRegions(['us-west-2'], getKmsClient)
const keyring = new KmsKeyringNode({ clientProvider, discovery })
```

------

A partir de la versión 1.7. *x*, puede añadir un filtro de detección a cualquier conjunto de claves de AWS KMS detección. Este filtro de detección limita las AWS KMS keys que se AWS Encryption SDK pueden utilizar para el descifrado a las de la partición y las cuentas especificadas. Antes de usar este código, cambie la partición, si es necesario, y sustituya la cuenta IDs de ejemplo por una válida.

------
#### [ C ]

Para ver un ejemplo completo, consulte: [kms\_discovery.cpp](https://github.com/aws/aws-encryption-sdk-c/blob/master/examples/kms_discovery.cpp).

```
std::shared_ptr<KmsKeyring::DiscoveryFilter> discovery_filter(
    KmsKeyring::DiscoveryFilter::Builder("{{aws}}")
        .AddAccount("{{111122223333}}")
        .AddAccount("{{{{444455556666}}}}")
        .Build());

struct aws_cryptosdk_keyring *kms_regional_keyring = Aws::Cryptosdk::KmsKeyring::Builder()
       .WithKmsClient(create_kms_client(Aws::Region::US_WEST_2)).BuildDiscovery(discovery_filter));
```

------
#### [ JavaScript Browser ]

```
const clientProvider = getClient(KMS, { credentials })

const discovery = true
const clientProvider = limitRegions(['us-west-2'], getKmsClient)
const keyring = new KmsKeyringBrowser(clientProvider, {
    discovery,
    discoveryFilter: { accountIDs: ['{{111122223333}}', '{{{{444455556666}}}}'], partition: '{{aws}}' }
})
```

------
#### [ JavaScript Node.js ]

Para ver un ejemplo completo, consulte: [kms\_filtered\_discovery.ts](https://github.com/aws/aws-encryption-sdk-javascript/blob/master/modules/example-node/src/kms_filtered_discovery.ts).

```
const discovery = true
const clientProvider = limitRegions(['us-west-2'], getKmsClient)
const keyring = new KmsKeyringNode({
    clientProvider,
    discovery,
    discoveryFilter: { accountIDs: ['{{111122223333}}', '{{{{444455556666}}}}'], partition: '{{aws}}' }
})
```

------