

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

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

 AWS KMS Gantungan kunci di [AWS Encryption SDK for C](c-language.md), [AWS Encryption SDK untuk .NET](dot-net.md), dan [AWS Encryption SDK for JavaScript](javascript.md)mendukung [praktik terbaik](best-practices.md) dengan memungkinkan Anda menentukan kunci pembungkus saat mengenkripsi dan mendekripsi. Jika Anda membuat [keyring AWS KMS penemuan](use-kms-keyring.md#kms-keyring-discovery), Anda melakukannya secara eksplisit. 

**catatan**  
Versi paling awal AWS Encryption SDK untuk .NET adalah versi 3.0. *x*. Semua versi AWS Encryption SDK untuk .NET mendukung praktik terbaik keamanan yang diperkenalkan di 2.0. *x* dari AWS Encryption SDK. Anda dapat dengan aman meningkatkan ke versi terbaru tanpa kode atau perubahan data.

Saat Anda memperbarui ke yang terbaru 1. *x* versi AWS Encryption SDK, Anda dapat menggunakan [filter penemuan](use-kms-keyring.md#kms-keyring-discovery) untuk membatasi kunci pembungkus yang digunakan oleh keyring [AWS KMS penemuan atau keyring](use-kms-keyring.md#kms-keyring-discovery) [penemuan AWS KMS regional saat mendekripsi ke kunci](use-kms-keyring.md#kms-keyring-regional) tertentu. Akun AWS Memfilter keyring penemuan adalah praktik AWS Encryption SDK [terbaik](best-practices.md).

Contoh di bagian ini akan menunjukkan cara menambahkan filter penemuan ke keyring penemuan AWS KMS regional.

**Pelajari lebih lanjut tentang migrasi**

Untuk semua AWS Encryption SDK pengguna, pelajari tentang menetapkan kebijakan komitmen Anda[Menetapkan kebijakan komitmen Anda](migrate-commitment-policy.md).

Untuk AWS Encryption SDK for Java, AWS Encryption SDK for Python, dan pengguna CLI AWS Enkripsi, pelajari tentang pembaruan yang diperlukan untuk menguasai penyedia kunci di. [Memperbarui penyedia kunci AWS KMS utama](migrate-mkps-v2.md)

 

Anda mungkin memiliki kode seperti berikut dalam aplikasi Anda. Contoh ini membuat keyring penemuan AWS KMS regional yang hanya dapat menggunakan kunci pembungkus di Wilayah AS Barat (Oregon) (us-west-2). Contoh ini mewakili kode dalam AWS Encryption SDK versi lebih awal dari 1.7. *x*. Namun, ini masih berlaku di versi 1.7. *x* dan kemudian. 

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

------

Dimulai pada versi 1.7. *x*, Anda dapat menambahkan filter penemuan ke keyring AWS KMS penemuan apa pun. Filter penemuan ini membatasi AWS KMS keys yang AWS Encryption SDK dapat digunakan untuk dekripsi ke partisi dan akun yang ditentukan. Sebelum menggunakan kode ini, ubah partisi, jika perlu, dan ganti akun contoh IDs dengan yang valid.

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

Untuk contoh lengkap, lihat [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 ]

Untuk contoh lengkap, lihat [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}}' }
})
```

------