

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Atualizando AWS KMS chaveiros
<a name="migrate-keyrings-v2"></a>

Os AWS KMS chaveiros do [AWS Encryption SDK for C](c-language.md), do [AWS Encryption SDK para o.NET](dot-net.md) e do [AWS Encryption SDK para JavaScript](javascript.md)oferecem suporte [às melhores práticas](best-practices.md), permitindo que você especifique chaves de agrupamento ao criptografar e descriptografar. Se você criar um [token de autenticação de descoberta do AWS KMS](use-kms-keyring.md#kms-keyring-discovery), você o fará de maneira explícita. 

**nota**  
A versão mais antiga do AWS Encryption SDK para.NET é a versão 3.0. *x.* Todas as versões do AWS Encryption SDK para.NET oferecem suporte às melhores práticas de segurança introduzidas na versão 2.0. *x* do AWS Encryption SDK. É possível atualizar com segurança para a versão mais recente sem fazer alterações no código ou nos dados.

Quando você atualiza para o mais recente 1. Na versão *x* do AWS Encryption SDK, você pode usar um [filtro de descoberta](use-kms-keyring.md#kms-keyring-discovery) para limitar as chaves de agrupamento que um chaveiro de [AWS KMS descoberta ou um chaveiro](use-kms-keyring.md#kms-keyring-discovery) de [descoberta AWS KMS regional](use-kms-keyring.md#kms-keyring-regional) usa ao descriptografar para aquelas em particular. Contas da AWS Filtrar um chaveiro de descoberta é uma prática AWS Encryption SDK [recomendada](best-practices.md).

Os exemplos nesta seção mostram como adicionar o filtro de descoberta a um token de autenticação de descoberta regional do AWS KMS .

**Saiba mais sobre migração**

Para todos os AWS Encryption SDK usuários, saiba como definir sua política de compromisso em[Como definir sua política de compromisso](migrate-commitment-policy.md).

Para usuários da CLI de AWS criptografia e AWS Encryption SDK for Java AWS Encryption SDK for Python, saiba mais sobre uma atualização necessária para os provedores de chaves mestras em. [Atualizando provedores de chaves AWS KMS mestras](migrate-mkps-v2.md)

 

Você pode ter um código como o seguinte na aplicação. Este exemplo cria um token de autenticação de descoberta regional do AWS KMS que só pode usar chaves de encapsulamento na região Oeste dos EUA (Oregon) (us-west-2). Este exemplo representa o código em AWS Encryption SDK versões anteriores à 1.7. *x.* No entanto, ele ainda é válido nas versões 1.7*x* e 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 da versão 1.7. *x*, você pode adicionar um filtro de descoberta a qualquer chaveiro de AWS KMS descoberta. Esse filtro de descoberta limita o AWS KMS keys que eles AWS Encryption SDK podem usar para decodificação àqueles na partição e nas contas especificadas. Antes de usar esse código, altere a partição, se necessário, e substitua a conta IDs de exemplo por outras válidas.

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

Para obter um exemplo 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 obter um exemplo 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}}' }
})
```

------