AWS SDK for Java 1.x telah memasuki mode pemeliharaan pada 31 Juli 2024, dan akan mencapai end-of-support
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Amazon S3enkripsi sisi klien denganAWSKunci terkelola KMS
Contoh berikut menggunakanAmazons3EncryptionClientV2Builderkelas untuk membuatAmazon S3enkripsi di sisi klien diaktifkan. Setelah dikonfigurasi, objek apa pun yang Anda unggahAmazon S3menggunakan klien ini akan dienkripsi. Setiap benda yang Anda dapatkan dariAmazon S3menggunakan klien ini secara otomatis didekripsi.
catatan
Contoh berikut menunjukkan cara menggunakanAmazon S3enkripsi sisi klien denganAWSKMS kunci yang dikelola. Untuk mempelajari cara menggunakan enkripsi dengan kunci Anda sendiri, lihatAmazon S3enkripsi sisi klien.
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.kms.AWSKMS; import com.amazonaws.services.kms.AWSKMSClientBuilder; import com.amazonaws.services.kms.model.GenerateDataKeyRequest; import com.amazonaws.services.kms.model.GenerateDataKeyResult; 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.KMSEncryptionMaterialsProvider;
enkripsi terautentikasi
Enkripsi otentikasi yang ketat adalah mode default jika tidakCryptoMode
ditentukan.
Untuk secara eksplisit mengaktifkan mode ini, tentukanStrictAuthenticatedEncryption
value dalamwithCryptoConfiguration
metode.
catatan
Untuk menggunakan enkripsi otentikasi sisi klien, Anda harus menyertakan yang terbaruGoyang Puri jar
Kode
AmazonS3EncryptionV2 s3Encryption = AmazonS3EncryptionClientV2Builder.standard() .withRegion(Regions.US_WEST_2) .withCryptoConfiguration(new CryptoConfigurationV2().withCryptoMode((CryptoMode.StrictAuthenticatedEncryption))) .withEncryptionMaterialsProvider(new KMSEncryptionMaterialsProvider(keyId)) .build(); s3Encryption.putObject(bucket_name, ENCRYPTED_KEY3, "This is the 3rd content to encrypt with a key created in the {console}"); System.out.println(s3Encryption.getObjectAsString(bucket_name, ENCRYPTED_KEY3));
PanggilputObject
Metode pada metodeAmazon S3enkripsi klien untuk meng-upload objek.
Kode
s3Encryption.putObject(bucket_name, ENCRYPTED_KEY3, "This is the 3rd content to encrypt with a key created in the {console}");
Anda dapat mengambil objek menggunakan klien yang sama. Contoh ini memanggilgetObjectAsString
metode untuk mengambil string yang disimpan.
Kode
System.out.println(s3Encryption.getObjectAsString(bucket_name, ENCRYPTED_KEY3));
Mode enkripsi terautentik
Saat Anda menggunakanAuthenticatedEncryption
mode, 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 terautentikasi sisi klien
catatan
Untuk menggunakan enkripsi otentikasi sisi klien, Anda harus menyertakan yang terbaruGoyang Puri jar
Untuk mengaktifkan mode ini, tentukanAuthenticatedEncryption
value dalamwithCryptoConfiguration
metode.
Kode
AmazonS3EncryptionV2 s3Encryption = AmazonS3EncryptionClientV2Builder.standard() .withRegion(Regions.US_WEST_2) .withCryptoConfiguration(new CryptoConfigurationV2().withCryptoMode((CryptoMode.AuthenticatedEncryption))) .withEncryptionMaterialsProvider(new KMSEncryptionMaterialsProvider(keyId)) .build();
MengonfigurasiAWS KMSklien
ParameterAmazon S3enkripsi klien menciptakanAWS KMSklien secara default, kecuali salah satu secara eksplisit ditentukan.
Untuk mengatur wilayah untuk ini dibuat secara otomatisAWS KMSklien, mengaturawsKmsRegion
.
Kode
Region kmsRegion = Region.getRegion(Regions.AP_NORTHEAST_1); AmazonS3EncryptionV2 s3Encryption = AmazonS3EncryptionClientV2Builder.standard() .withRegion(Regions.US_WEST_2) .withCryptoConfiguration(new CryptoConfigurationV2().withAwsKmsRegion(kmsRegion)) .withEncryptionMaterialsProvider(new KMSEncryptionMaterialsProvider(keyId)) .build();
Atau, Anda dapat menggunakan sendiriAWS KMSklien untuk menginisialisasi klien enkripsi.
Kode
AWSKMS kmsClient = AWSKMSClientBuilder.standard() .withRegion(Regions.US_WEST_2); .build(); AmazonS3EncryptionV2 s3Encryption = AmazonS3EncryptionClientV2Builder.standard() .withRegion(Regions.US_WEST_2) .withKmsClient(kmsClient) .withCryptoConfiguration(new CryptoConfigurationV2().withCryptoMode((CryptoMode.AuthenticatedEncryption))) .withEncryptionMaterialsProvider(new KMSEncryptionMaterialsProvider(keyId)) .build();