AWS KMS キーリングの更新 - AWS Encryption SDK

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

AWS KMS キーリングの更新

AWS Encryption SDK for C」の AWS KMS キーリング、「.NET 用 AWS Encryption SDK」および「AWS Encryption SDK for JavaScript」は、暗号化時と復号化時にラッピングキーを指定できるようになり、ベストプラクティス がサポートされます。AWS KMS 検出キーリングを作成する場合は、明示的に作成します。

注記

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

AWS Encryption SDK の最新 1.x バージョンに更新した場合は、検出フィルター を使用して、AWS KMS 検出キーリング または AWS KMS リージョン検出キーリング が復号時に使用するラッピングキーを特定の AWS アカウント に制限できます。検出キーリングのフィルタリングは AWS Encryption SDK のベストプラクティスです。

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

移行の詳細

すべての AWS Encryption SDK ユーザーのために、コミットメントポリシーの設定について「コミットメントポリシーの設定」で説明します。

AWS Encryption SDK for Java、AWS Encryption SDK for Python、AWS Encryption CLI のユーザーのために、マスターキープロバイダーへの必要な更新について AWS KMS マスターキープロバイダーの更新 で説明します。

 

アプリケーションでは、コードは次のようなものになります。この例では、米国西部 (オレゴン) (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 を参照してください。

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 を参照してください。

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