

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS KMS キーリングの更新
<a name="migrate-keyrings-v2"></a>

の AWS KMS キーリング[AWS Encryption SDK for C](c-language.md)、 [AWS Encryption SDK for .NET](dot-net.md)、および は、暗号化および復号時にラッピングキーを指定できるようにすることで[、ベストプラクティス](best-practices.md)[AWS Encryption SDK for JavaScript](javascript.md)をサポートしています。[AWS KMS 検出キーリング](use-kms-keyring.md#kms-keyring-discovery)を作成する場合は、明示的に作成します。

**注記**  
for .NET AWS Encryption SDK の最も古いバージョンはバージョン 3.0.*x* です。 AWS Encryption SDK for .NET のすべてのバージョンは、 の 2.0.*x* で導入されたセキュリティのベストプラクティスをサポートしています AWS Encryption SDK。コードやデータを変更することなく、最新バージョンに安全にアップグレードできます。

を最新の 1.*x* バージョンに更新すると AWS Encryption SDK、[検出フィルター](use-kms-keyring.md#kms-keyring-discovery)を使用して、検出キー[AWS KMS リングまたはリージョン別検出キー](use-kms-keyring.md#kms-keyring-discovery)[AWS KMS リングが復号するときに](use-kms-keyring.md#kms-keyring-regional)使用するラッピングキーを制限できます AWS アカウント。検出キーリングのフィルタリングは AWS Encryption SDK [ベストプラクティス](best-practices.md)です。

このセクションの例では、検出フィルターを AWS KMS リージョン検出キーリングに追加する方法を示します。

**移行の詳細**

すべての AWS Encryption SDK ユーザーについて、 でのコミットメントポリシーの設定について説明します[コミットメントポリシーの設定](migrate-commitment-policy.md)。

 AWS Encryption SDK for Java、 AWS Encryption SDK for Python、および AWS Encryption CLI ユーザーについては、 のマスターキープロバイダーに必要な更新について説明します[AWS KMS マスターキープロバイダーの更新](migrate-mkps-v2.md)。

 

アプリケーションでは、コードは次のようなものになります。この例では、米国西部 (オレゴン) (us-west-2) リージョンのラッピングキーのみを使用する AWS KMS リージョン検出キーリングを作成します。この例では、1.7.*x* より前の AWS Encryption SDK バージョンのコードを表します。ただし、バージョン 1.7.*x* 以降でも有効です。

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

------

バージョン 1.7.*x* 以降では、任意の検出キーリングに AWS KMS 検出フィルターを追加できます。この検出フィルター AWS Encryption SDK は、 AWS KMS keys が復号に使用できる を、指定されたパーティションとアカウント内のものに制限します。このコードを使用する前に、必要に応じてパーティションを変更し、サンプルアカウント ID を有効なアカウント ID に置き換えます。

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

詳しい例については、[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 ]

詳しい例については、[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}}' }
})
```

------