Amazon S3enkripsi sisi klien - AWS SDK for Java 1.x

AWS SDK for Java 1.x telah memasuki mode pemeliharaan pada 31 Juli 2024, dan akan mencapai end-of-supportpada 31 Desember 2025. Kami menyarankan Anda bermigrasi ke AWS SDK for Java 2.xuntuk terus menerima fitur baru, peningkatan ketersediaan, dan pembaruan keamanan.

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

Amazon S3enkripsi sisi klien

Contoh berikut menggunakanAmazons3EncryptionClientV2Builderkelas untuk membuatAmazon S3enkripsi sisi klien diaktifkan. Setelah diaktifkan, objek apa pun yang Anda unggahAmazon S3menggunakan klien ini akan dienkripsi. Setiap benda yang Anda dapatkan dariAmazon S3menggunakan klien ini akan secara otomatis didekripsi.

catatan

Contoh berikut menunjukkan menggunakanAmazon S3enkripsi sisi klien dengan kunci master klien. Untuk mempelajari cara menggunakan enkripsi denganAWSKunci terkelola KMS, lihatAmazon S3enkripsi sisi klien denganAWSKunci terkelola KMS.

Anda dapat memilih dari dua mode enkripsi saat mengaktifkan sisi klienAmazon S3enkripsi: ketat dikonfirmasi atau diautentikasi. Bagian berikut menunjukkan cara mengaktifkan setiap jenis. Untuk mempelajari algoritma yang digunakan setiap mode, lihatCryptoModedefinisi.

Impor yang diperlukan

Impor kelas berikut untuk contoh-contoh ini.

Impor

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;

Enkripsi terautentikasi

Enkripsi otentikasi yang ketat adalah mode default jika tidakCryptoModeditentukan.

Untuk secara eksplisit mengaktifkan mode ini, tentukanStrictAuthenticatedEncryptionvalue dalamwithCryptoConfigurationmetode.

catatan

Untuk menggunakan enkripsi otentikasi sisi klien, Anda harus menyertakan yang terbaruGoyang Puri jarfile di classpath aplikasi Anda.

Kode

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");

Mode enkripsi

Saat Anda menggunakanAuthenticatedEncryptionmode, algoritma pembungkus kunci ditingkatkan diterapkan selama enkripsi. Saat mendekripsi dalam mode ini, algoritma dapat memverifikasi integritas objek yang didekripsi dan membuang pengecualian jika cek gagal. Untuk detail lebih lanjut tentang cara kerja enkripsi terautentikasi, lihatAmazon S3Enkripsi terautentikasiposting blog.

catatan

Untuk menggunakan enkripsi otentikasi sisi klien, Anda harus menyertakan yang terbaruGoyang Puri jarfile di classpath aplikasi Anda.

Untuk mengaktifkan mode ini, tentukanAuthenticatedEncryptionvalue dalamwithCryptoConfigurationmetode.

Kode

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");