View a markdown version of this page

Memperbarui enkripsi sisi server untuk data yang ada - Amazon Simple Storage Service

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

Memperbarui enkripsi sisi server untuk data yang ada

Semua bucket Amazon S3 memiliki enkripsi yang dikonfigurasi secara default, dan objek secara otomatis dienkripsi dengan menggunakan enkripsi sisi server dengan kunci terkelola Amazon S3 ()SSE-S3. Setelan enkripsi default ini berlaku untuk semua objek baru di bucket Amazon S3 Anda.

Menggunakan operasi UpdateObjectEncryption API, Anda dapat memperbarui secara atomik jenis enkripsi sisi server dari objek terenkripsi yang ada dalam bucket tujuan umum dari enkripsi sisi server dengan enkripsi terkelola Amazon S3 (SSE-S3) ke enkripsi sisi server dengan () kunci enkripsi (). AWS Key Management Service AWS KMS SSE-KMS Operasi UpdateObjectEncryption API menggunakan enkripsi amplop untuk mengenkripsi ulang kunci data yang digunakan untuk mengenkripsi dan mendekripsi objek Anda dengan jenis enkripsi sisi server yang baru ditentukan.

Amazon S3 melakukan pembaruan jenis enkripsi ini tanpa pergerakan data apa pun. Dengan kata lain, saat Anda menggunakan UpdateObjectEncryption operasi, data Anda tidak disalin, objek yang diarsipkan di S3 Glacier Flexible Retrieval atau S3 Glacier Deep Archive tidak dipulihkan, dan objek di kelas Intelligent-Tiering penyimpanan S3 tidak dipindahkan antar tingkatan. Selain itu, UpdateObjectEncryption operasi mempertahankan semua properti metadata objek, termasuk kelas penyimpanan, tanggal pembuatan, tanggal modifikasi terakhir, ETag, dan properti checksum.

UpdateObjectEncryptionOperasi ini didukung untuk semua kelas penyimpanan S3 yang didukung oleh bucket tujuan umum. Anda dapat menggunakan UpdateObjectEncryption operasi untuk melakukan hal berikut:

  • Ubah objek terenkripsi dari enkripsi sisi server dengan enkripsi terkelola Amazon S3 (SSE-S3) menjadi enkripsi sisi server dengan AWS Key Management Service (AWS KMS) kunci enkripsi (). SSE-KMS

  • Memperbarui objek teren SSE-KMS kripsi tingkat objek untuk menggunakan S3 Bucket Keys, yang mengurangi lalu lintas AWS KMS permintaan dari Amazon S3 ke. AWS KMS Untuk informasi selengkapnya, lihat Mengurangi biaya SSE-KMS dengan Amazon S3 Bucket Keys.

  • Ubah kunci KMS yang dikelola pelanggan yang digunakan untuk mengenkripsi data Anda sehingga Anda dapat mematuhi standar rotasi kunci khusus.

catatan

Objek sumber yang tidak dienkripsi, atau dienkripsi dengan enkripsi sisi server lapis ganda dengan AWS KMS keys (DSSE-KMS) atau kunci enkripsi yang disediakan pelanggan (SSE-C) tidak didukung oleh operasi ini.

UpdateObjectEncryptionOperasi biasanya selesai dalam milidetik terlepas dari ukuran objek atau kelas penyimpanan, termasuk S3 Glacier Flexible Retrieval atau S3 Glacier Deep Archive. Operasi ini tidak dihitung sebagai akses untuk S3 Intelligent-Tiering, sehingga objek di tingkat Akses Langsung atau tingkat Akses Instan Arsip tidak akan secara otomatis bertingkat kembali ke tingkat Akses Sering jika Anda mengubah jenis enkripsi sisi server objek Anda.

UpdateObjectEncryptionadalah operasi API tingkat objek (bidang data) yang dicatat ke log akses server Amazon S3 dan peristiwa AWS CloudTrail data. Untuk informasi selengkapnya, lihat Opsi pencatatan untuk Amazon S3.

UpdateObjectEncryptionOperasi dihargai sama denganPUT,, COPYPOST, dan LIST permintaan (per 1.000 permintaan) dan selalu dikenakan biaya sebagai permintaan kelas penyimpanan Standar S3 terlepas dari kelas penyimpanan objek yang mendasarinya. Untuk informasi selengkapnya, lihat Harga Amazon S3.

Pembatasan dan pertimbangan

Saat menggunakan UpdateObjectEncryption operasi, batasan dan pertimbangan berikut berlaku:

  • UpdateObjectEncryptionOperasi tidak mendukung objek yang tidak dienkripsi atau objek yang dienkripsi dengan enkripsi sisi server lapis ganda dengan AWS KMS keys (DSSE-KMS) atau kunci enkripsi yang disediakan pelanggan (). SSE-C Selain itu, Anda tidak dapat menentukan SSE-S3 sebagai UpdateObjectEncryption permintaan jenis enkripsi baru yang diminta.

  • Anda dapat menggunakan UpdateObjectEncryption operasi untuk memperbarui objek dalam bucket yang mengaktifkan S3 Versioning. Untuk memperbarui jenis enkripsi versi tertentu, Anda harus menentukan ID versi dalam UpdateObjectEncryption permintaan Anda. Jika Anda tidak menentukan ID versi, UpdateObjectEncryption permintaan akan bertindak pada versi objek saat ini. Untuk informasi selengkapnya tentang Penentuan Versi S3, lihat Mempertahankan beberapa versi objek dengan S3 Versioning.

  • UpdateObjectEncryptionOperasi gagal pada objek apa pun yang memiliki mode retensi Kunci Objek S3 atau penahanan legal yang diterapkan padanya. Jika objek memiliki periode retensi mode tata kelola atau penahanan legal, Anda harus terlebih dahulu menghapus status Object Lock pada objek sebelum Anda UpdateObjectEncryption mengeluarkan permintaan. Anda tidak dapat menggunakan UpdateObjectEncryption operasi dengan objek yang memiliki periode retensi mode kepatuhan Object Lock yang diterapkan padanya. Untuk informasi lebih lanjut tentang S3 Object Lock, lihat Mengunci objek dengan Object Lock.

  • UpdateObjectEncryptionpermintaan pada bucket sumber dengan replikasi langsung diaktifkan tidak akan memulai peristiwa replika di bucket tujuan. Jika Anda ingin mengubah jenis enkripsi objek di bucket sumber dan tujuan, Anda harus memulai UpdateObjectEncryption permintaan terpisah pada objek di bucket sumber dan tujuan.

  • Secara default, semua UpdateObjectEncryption permintaan yang menentukan kunci KMS yang dikelola pelanggan dibatasi untuk kunci KMS yang dimiliki oleh pemilik bucket. Akun AWS Jika Anda menggunakan AWS Organizations, Anda dapat meminta kemampuan untuk menggunakan yang AWS KMS keys dimiliki oleh akun anggota lain dalam organisasi Anda dengan menghubungi AWS Dukungan.

  • Jika Anda menggunakan Replikasi Batch S3 untuk mereplikasi kumpulan data lintas wilayah dan objek Anda sebelumnya memiliki jenis enkripsi sisi server yang diperbarui dari SSE-S3 ke SSE-KMS, Anda mungkin memerlukan izin tambahan. Pada bucket wilayah sumber, Anda harus memiliki kms:decrypt izin. Kemudian, Anda akan memerlukan kms:encrypt izin kms:decrypt dan untuk bucket di wilayah tujuan.

  • Anda harus memberikan kunci KMS lengkap ARN dalam UpdateObjectEncryption permintaan Anda. Anda tidak dapat menggunakan nama alias atau alias ARN. Anda dapat menentukan ARN Kunci KMS lengkap di Konsol AWS KMS atau menggunakan AWS K DescribeKey MS API.

Izin yang diperlukan

Untuk melakukan UpdateObjectEncryption operasi, Anda harus memiliki izin berikut:

  • s3:UpdateObjectEncryption

  • kms:Encrypt

  • kms:Decrypt

  • kms:GenerateDataKey

  • kms:ReEncrypt*

Jika Anda menggunakan AWS Organizations, untuk menggunakan operasi ini dengan kunci KMS yang dikelola pelanggan dari pihak lain Akun AWS dalam organisasi Anda, Anda harus memiliki izin tersebut. organizations:DescribeAccount Anda juga harus meminta kemampuan untuk menggunakan yang AWS KMS keys dimiliki oleh akun anggota lain dalam organisasi Anda dengan menghubungi AWS Dukungan.

Untuk melakukan UpdateObjectEncryption operasi, tambahkan kebijakan AWS Identity and Access Management (IAM) berikut ke peran IAM Anda. Untuk menggunakan kebijakan ini, ganti amzn-s3-demo-bucket dengan nama bucket tujuan umum Anda, dan ganti yang lain user input placeholders dengan informasi Anda sendiri.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowUpdateObjectEncryption", "Effect": "Allow", "Action": [ "s3:UpdateObjectEncryption", "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey", "kms:ReEncrypt*", "organizations:DescribeAccount" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*", "arn:aws:kms:us-east-1:111122223333:key/01234567-89ab-cdef-0123-456789abcdef" ] } ] }

Memperbarui enkripsi secara massal

Untuk memperbarui jenis enkripsi sisi server lebih dari satu objek Amazon S3 dengan satu permintaan, Anda dapat menggunakan Operasi Batch S3. Anda dapat menyediakan S3 Batch Operations dengan daftar objek untuk dioperasikan, atau Anda dapat mengarahkan Operasi Batch untuk menghasilkan metadata objek berdasarkan daftar objek, termasuk awalan, kelas penyimpanan, tanggal pembuatan, jenis enkripsi, ARN kunci KMS, atau status Kunci S3 Bucket. Operasi Batch S3 akan memanggil masing-masing operasi API untuk melakukan operasi tertentu. Tugas Operasi Batch tunggal dapat melakukan operasi yang ditentukan pada miliaran objek dalam bucket yang berisi petabyte data. Untuk informasi selengkapnya tentang Operasi Batch, lihatMelakukan operasi objek secara massal dengan Batch Operations.

Operasi Batch S3 memiliki fitur melacak progres, mengirimkan notifikasi, dan menyimpan laporan penyelesaian terperinci dari semua tindakan, menyediakan pengalaman yang dikelola sepenuhnya, dapat diaudit, dan nirserver. Anda dapat menggunakan Operasi Batch S3 melalui konsol Amazon S3, AWS Command Line Interface (AWS CLI) AWS SDK, atau Amazon S3 REST API. Untuk informasi selengkapnya, lihat Perbarui enkripsi objek.

Memperbarui enkripsi untuk objek

Anda dapat memperbarui jenis enkripsi sisi server untuk objek melalui AWS Command Line Interface (AWS CLI) AWS SDK, atau Amazon S3 REST API.

Memperbarui enkripsi untuk objek

Untuk menjalankan perintah berikut, Anda harus AWS CLI menginstal dan dikonfigurasi. Jika Anda belum AWS CLI menginstal, lihat Meng instal atau memperbarui ke versi terbaru AWS CLI di Panduan AWS Command Line Interface Pengguna.

Atau, Anda dapat menjalankan AWS CLI perintah dari konsol dengan menggunakan AWS CloudShell. AWS CloudShell adalah shell pra-otentikasi berbasis browser yang dapat Anda luncurkan langsung dari. Konsol Manajemen AWS Untuk informasi lebih lanjut, lihat Apa itu CloudShell? dan Memulai dengan AWS CloudShell di Panduan AWS CloudShell Pengguna.

Untuk memperbarui enkripsi untuk objek dengan menggunakan AWS CLI

Untuk menggunakan perintah contoh berikut, ganti user input placeholders dengan informasi Anda sendiri.

  1. Gunakan perintah berikut untuk memperbarui enkripsi untuk satu objek (index.html) di bucket tujuan umum Anda (misalnya,amzn-s3-demo-bucket) untuk digunakan SSE-KMS dengan S3 Bucket Key:

    aws s3api update-object-encryption \ --bucket amzn-s3-demo-bucket \ --key index.html \ --object-encryption '{"SSEKMS": { "KMSKeyArn": "arn:aws:kms:us-east-1:111122223333:key/f12a345a-678e-9bbb-1025-62e317037583", "BucketKeyEnabled": true }}'
    catatan

    Anda harus menentukan Nama Sumber AWS KMS key Daya Amazon (ARN) lengkap. ID kunci KMS dan alias kunci KMS tidak didukung.

  2. Jalan head-object kan perintah untuk melihat jenis enkripsi yang diperbarui dari objek Anda:

    aws s3api head-object --bucket amzn-s3-demo-bucket --key index.html

Anda dapat mengirim permintaan REST untuk memperbarui enkripsi untuk suatu objek. Untuk informasi selengkapnya, lihat UpdateObjectEncryption.

Anda dapat menggunakan AWS SDK untuk memperbarui enkripsi untuk objek. Untuk informasi selengkapnya, lihat daftar SDK yang didukung.

Java
contoh

AWS SDK for Java 2.x Contoh berikut memperbarui jenis enkripsi SSE-KMS untuk objek dalam bucket tujuan umum.

public void updateObjectEncryption(String bucketName, String objectKey, String versionId, String kmsKeyArn, boolean bucketKeyEnabled) { // Create the target object encryption type. ObjectEncryption objectEncryption = ObjectEncryption.builder() .ssekms(SSEKMSEncryption.builder() .kmsKeyArn(kmsKeyArn) .bucketKeyEnabled(bucketKeyEnabled) .build()) .build(); // Create the UpdateObjectEncryption request. UpdateObjectEncryptionRequest request = UpdateObjectEncryptionRequest.builder() .bucket(bucketName) .key(objectKey) .versionId(versionId) .objectEncryption(objectEncryption) .build(); // Update the object encryption. try { getS3Client().updateObjectEncryption(request); logger.info("Object encryption updated to SSE-KMS for {} in bucket {}", objectKey, bucketName); } catch (S3Exception e) { logger.error("Failed to update to object encryption: {} - Error code: {}", e.awsErrorDetails().errorMessage(), e.awsErrorDetails().errorCode()); throw e; } }
Python
contoh

AWS SDK untuk Python (Boto3) Contoh berikut menunjukkan cara memperbarui tipe enkripsi SSE-KMS untuk objek dalam bucket tujuan umum.

response = client.update_object_encryption( Bucket='string', Key='string', VersionId='string', ObjectEncryption={ 'SSEKMS': { 'KMSKeyArn': 'string', 'BucketKeyEnabled': True|False } } )