

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Mise à jour des AWS KMS porte-clés
<a name="migrate-keyrings-v2"></a>

Les AWS KMS trousseaux de clés contenus dans [Kit SDK de chiffrement AWS pour C](c-language.md), [AWS Encryption SDK pour .NET](dot-net.md) et dans le cadre du [Kit SDK de chiffrement AWS pour JavaScript](javascript.md)support prennent en charge les [meilleures pratiques](best-practices.md) en vous permettant de spécifier des clés d'encapsulage lors du chiffrement et du déchiffrement. Si vous créez un trousseau de [clés de AWS KMS découverte](use-kms-keyring.md#kms-keyring-discovery), vous le faites explicitement. 

**Note**  
La version la plus ancienne de AWS Encryption SDK pour .NET est la version 3.0. *x.* Toutes les versions de AWS Encryption SDK for .NET respectent les meilleures pratiques de sécurité introduites dans la version 2.0. *x* du AWS Encryption SDK. Vous pouvez passer à la dernière version en toute sécurité sans aucune modification de code ou de données.

Lorsque vous effectuez une mise à jour vers la dernière version 1. version *x* du AWS Encryption SDK, vous pouvez utiliser un [filtre de découverte](use-kms-keyring.md#kms-keyring-discovery) pour limiter les clés d'encapsulation utilisées par un jeu de clés de [AWS KMS découverte ou un trousseau](use-kms-keyring.md#kms-keyring-discovery) de [clés de découverte AWS KMS régional](use-kms-keyring.md#kms-keyring-regional) lors du déchiffrement vers celles-ci en particulier. Comptes AWS Le filtrage d'un trousseau de clés de découverte est une AWS Encryption SDK [bonne pratique](best-practices.md).

Les exemples présentés dans cette section vous montrent comment ajouter le filtre de découverte à un trousseau de clés de découverte AWS KMS régional.

**En savoir plus sur la migration**

Pour tous les AWS Encryption SDK utilisateurs, découvrez comment définir votre politique d'engagement dans[Définition de votre politique d'engagement](migrate-commitment-policy.md).

Pour Kit SDK de chiffrement AWS pour Java Kit SDK de chiffrement AWS pour Python, et les utilisateurs de la CLI de AWS chiffrement, découvrez une mise à jour requise pour les fournisseurs de clés principales dans[Mise à jour des fournisseurs de clés AWS KMS principales](migrate-mkps-v2.md).

 

Il se peut que votre application comporte un code tel que celui-ci. Cet exemple crée un jeu de clés de découverte AWS KMS régional qui ne peut utiliser des clés d'encapsulage que dans la région USA Ouest (Oregon) (us-west-2). Cet exemple représente le code des AWS Encryption SDK versions antérieures à 1.7. *x.* Cependant, il est toujours valide dans les versions 1.7. *x* et versions ultérieures. 

------
#### [ 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 })
```

------

À partir de la version 1.7. *x*, vous pouvez ajouter un filtre de découverte à n'importe quel trousseau de clés de AWS KMS découverte. Ce filtre de découverte limite ce AWS KMS keys qu'ils AWS Encryption SDK peuvent utiliser pour le déchiffrement à ceux de la partition et des comptes spécifiés. Avant d'utiliser ce code, modifiez la partition, si nécessaire, et remplacez le compte d'exemple par IDs des comptes valides.

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

Pour un exemple complet, consultez le [fichier 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 ]

Pour un exemple complet, consultez [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}}' }
})
```

------