クライアントマスターキーを使用した Amazon S3 クライアント側の暗号化 - AWS SDK for Java 1.x

AWS SDK for Java 1.x は 2024 年 7 月 31 日にメンテナンスモードに移行し、2025 年 12 月 31 end-of-support日に終了します。新機能、可用性の向上、セキュリティ更新プログラムを引き続き受信AWS SDK for Java 2.xするには、 に移行することをお勧めします。

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

クライアントマスターキーを使用した Amazon S3 クライアント側の暗号化

次の例では、AmazonS3EncryptionClientV2Builder クラスを使用して、クライアント側の暗号化が有効になった Amazon S3 クライアントを作成します。有効にすると、このクライアントを使用して Amazon S3 にアップロードするすべてのオブジェクトが暗号化されます。このクライアントを使用して Amazon S3 から取得したオブジェクトは、自動的に復号化されます。

注記

次の例では、カスタマー管理のクライアントマスターキーを使用した Amazon S3 クライアント側の暗号化の使用方法を説明します。AWS KMS マネージドの暗号化キーを使用する方法については、「Amazon S3 client-side encryption with AWS KMS managed keys」を参照してください。

クライアント側の Amazon S3 暗号化を有効にする際に、厳格な認証済みまたは認証済みの 2 つの暗号化モードから選択できます。以下のセクションで、各タイプを有効にする方法を説明します。各モードで使用されるアルゴリズムについては、CryptoMode の定義を参照してください。

必須のインポート

これらの例では、次のクラスをインポートします。

インポート

import com.amazonaws.ClientConfiguration; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3EncryptionClientV2Builder; import com.amazonaws.services.s3.AmazonS3EncryptionV2; import com.amazonaws.services.s3.model.CryptoConfigurationV2; import com.amazonaws.services.s3.model.CryptoMode; import com.amazonaws.services.s3.model.EncryptionMaterials; import com.amazonaws.services.s3.model.StaticEncryptionMaterialsProvider;

厳格な認証済み暗号化

厳密に認証された暗号化は、CryptoMode が指定されていない場合のデフォルトのモードです。

このモードを明示的に有効にするには、StrictAuthenticatedEncryption 値を withCryptoConfiguration メソッドに指定します。

注記

クライアント側で認証済み暗号化を使用するには、最新の Bouncy Castle jar ファイルをアプリケーションのクラスパスに含める必要があります。

Code

AmazonS3EncryptionV2 s3Encryption = AmazonS3EncryptionClientV2Builder.standard() .withRegion(Regions.US_WEST_2) .withCryptoConfiguration(new CryptoConfigurationV2().withCryptoMode((CryptoMode.StrictAuthenticatedEncryption))) .withEncryptionMaterialsProvider(new StaticEncryptionMaterialsProvider(new EncryptionMaterials(secretKey))) .build(); s3Encryption.putObject(bucket_name, ENCRYPTED_KEY2, "This is the 2nd content to encrypt");

認証済み暗号化モード

AuthenticatedEncryption モードを使用すると、暗号化中に適用されるキーのラップアルゴリズムが強化されます。このモードで復号化するときは、アルゴリズムによって復号化されたオブジェクトの整合性が検証され、チェックが失敗した場合は例外がスローされます。認証済み暗号化の動作の詳細については、「Amazon S3 Client-Side Authenticated Encryption」というブログ記事を参照してください。

注記

クライアント側で認証済み暗号化を使用するには、最新の Bouncy Castle jar ファイルをアプリケーションのクラスパスに含める必要があります。

このモードを有効にするには、AuthenticatedEncryption 値を withCryptoConfiguration メソッドに指定します。

Code

AmazonS3EncryptionV2 s3EncryptionClientV2 = AmazonS3EncryptionClientV2Builder.standard() .withRegion(Regions.DEFAULT_REGION) .withClientConfiguration(new ClientConfiguration()) .withCryptoConfiguration(new CryptoConfigurationV2().withCryptoMode(CryptoMode.AuthenticatedEncryption)) .withEncryptionMaterialsProvider(new StaticEncryptionMaterialsProvider(new EncryptionMaterials(secretKey))) .build(); s3EncryptionClientV2.putObject(bucket_name, ENCRYPTED_KEY1, "This is the 1st content to encrypt");