Perlindungan Integritas Data untuk Amazon S3 - AWS SDKs dan Tools

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

Perlindungan Integritas Data untuk Amazon S3

catatan

Untuk bantuan dalam memahami tata letak halaman pengaturan, atau dalam menafsirkan tabel Support by AWS SDKs and tools berikut, lihatMemahami halaman pengaturan panduan ini.

Untuk beberapa waktu, AWS SDKs telah mendukung pemeriksaan integritas data saat mengunggah data ke atau mengunduh data dari Amazon Simple Storage Service. Sebelumnya, pemeriksaan ini adalah opt-in. Sekarang, kami telah mengaktifkan pemeriksaan ini secara default, menggunakan algoritma berbasis CRC seperti CRC32 atau NVME. CRC64 Meskipun setiap SDK atau alat memiliki algoritma default, Anda dapat memilih algoritma yang berbeda. Anda juga dapat terus menyediakan checksum yang telah dihitung sebelumnya secara manual untuk diunggah jika Anda mau. Perilaku konsisten di seluruh unggahan, unggahan multibagian, unduhan, dan mode enkripsi menyederhanakan pemeriksaan integritas sisi klien.

Versi terbaru dari kami AWS SDKs dan AWS CLI secara otomatis menghitung checksum berbasis pemeriksaan redundansi siklik (CRC) untuk setiap unggahan dan mengirimkannya ke Amazon S3. Amazon S3 secara independen menghitung checksum di sisi server dan memvalidasinya terhadap nilai yang diberikan sebelum menyimpan objek dan checksumnya secara tahan lama dalam metadata objek. Dengan menyimpan checksum dalam metadata di samping objek, ketika objek diunduh, checksum yang sama dapat secara otomatis dikembalikan dan digunakan untuk memvalidasi unduhan juga. Anda juga dapat memverifikasi checksum yang disimpan dalam metadata objek kapan saja.

Untuk mempelajari lebih lanjut tentang operasi checksum, unggahan multibagian, atau daftar algoritme checksum yang didukung, lihat Memeriksa integritas objek di Amazon S3 di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

Unggahan multipart:

Amazon S3 juga memberi pengembang checksum objek lengkap yang konsisten di seluruh unggahan satu bagian dan multibagian.

Saat mengunggah file di beberapa bagian, SDKs menghitung checksum untuk setiap bagian. Amazon S3 menggunakan checksum ini untuk memverifikasi integritas setiap bagian melalui API. UploadPart Selain itu, Amazon S3 memvalidasi seluruh ukuran file dan checksum saat Anda memanggil API. CompleteMultipartUpload

Jika SDK Anda memiliki Manajer Transfer Amazon S3 untuk membantu unggahan multibagian, checksum akan divalidasi untuk komponen menggunakan algoritme default khusus SDK yang ditemukan dalam tabel. Support oleh AWS SDKs dan alat Anda dapat ikut serta ke checksum objek lengkap dengan mengatur pengaturan checksum_type ke FULL_OBJECT atau dengan memilih untuk menggunakan algoritma CRC64 NVME.

Jika Anda menggunakan versi SDK yang lebih lama atau AWS CLI:

Jika aplikasi Anda menggunakan versi SDK atau alat sebelum Desember 2024, Amazon S3 masih menghitung CRC64 checksum NVME pada objek baru dan menyimpannya di metadata objek untuk referensi future. Anda nantinya dapat membandingkan CRC yang disimpan dengan CRC yang dihitung di sisi Anda dan memverifikasi transmisi jaringan sudah benar. Selain itu, Anda masih dapat memperluas perlindungan integritas secara manual dengan menyediakan checksum yang telah dihitung sebelumnya dengan UploadPartpermintaan PutObjectatau Anda, yang merupakan teknik standar untuk menangani ini dalam versi yang lebih lama.

Konfigurasikan fungsi ini dengan menggunakan yang berikut:

request_checksum_calculation- Pengaturan AWS config file bersama
AWS_REQUEST_CHECKSUM_CALCULATION- variabel lingkungan
aws.requestChecksumCalculation- Properti sistem JVM: Hanya Java/Kotlin

Secara default, pengguna memilih untuk menghitung checksum permintaan saat mengirim permintaan. Pengguna dapat memilih salah satu algoritma checksum yang tersedia sebagai bagian dari membangun permintaan. Jika tidak, algoritma default khusus SDK digunakan. Lihat Support oleh AWS SDKs dan alat tabel untuk algoritme default untuk setiap SDK atau alat.

Nilai default: WHEN_SUPPORTED

Nilai yang valid:

  • WHEN_SUPPORTED— Validasi Checksum dilakukan pada semua muatan respons saat didukung oleh operasi API, seperti transfer data ke Amazon S3.

  • WHEN_REQUIRED— Validasi Checksum dilakukan hanya bila diperlukan oleh operasi API.

response_checksum_validation- Pengaturan AWS config file bersama
AWS_RESPONSE_CHECKSUM_VALIDATION- variabel lingkungan
aws.responseChecksumValidation- Properti sistem JVM: Hanya Java/Kotlin

Secara default, pengguna ikut serta dalam validasi checksum respons saat mengirim permintaan. Checksum dihitung untuk muatan respons dan dibandingkan dengan header respons checksum. Jika validasi checksum gagal, kesalahan akan muncul ke pengguna saat payload dibaca.

Header respons checksum juga menunjukkan algoritma untuk checksum. Klien Amazon S3 mencoba memvalidasi checksum respons untuk semua operasi API Amazon S3 yang mendukung checksum. Namun, jika SDK belum menerapkan algoritma checksum yang ditentukan maka validasi ini dilewati.

Nilai default: WHEN_SUPPORTED

Nilai yang valid:

  • WHEN_SUPPORTED— Validasi Checksum dilakukan pada semua muatan respons saat didukung oleh operasi API, seperti transfer data ke Amazon S3.

  • WHEN_REQUIRED— Validasi Checksum dilakukan hanya ketika didukung oleh operasi API dan pemanggil telah secara eksplisit mengaktifkan checksum untuk operasi. Misalnya, ketika GetObject API Amazon S3 dipanggil dan ChecksumMode parameter disetel ke diaktifkan.

Support oleh AWS SDKs dan alat

Berikut ini SDKs mendukung fitur dan pengaturan yang dijelaskan dalam topik ini. Setiap pengecualian sebagian dicatat. Setiap pengaturan properti sistem JVM didukung oleh AWS SDK untuk Java dan satu-satunya. AWS SDK for Kotlin

catatan

Dalam tabel berikut, 'CRT' mengacu pada AWS Pustaka Runtime Umum (CRT) dan mungkin perlu menambahkan ketergantungan tambahan ke proyek Anda.

SDK Didukung Algoritma checksum default Algoritma checksum yang didukung Catatan atau informasi lebih lanjut
AWS CLI v2 Ya CRC64NVME CRC64NVME,, CRC32 C CRC32,, SHA1 SHA256 Untuk AWS CLI v1, algoritma default dan algoritma yang didukung akan identik dengan Python (Boto3).
SDK for C++ Ya CRC64NVME CRC64NVME,, CRC32 C CRC32,, SHA1 SHA256
SDK for Go V2 (1.x) Ya CRC32 CRC64NVME,, CRC32 C CRC32,, SHA1 SHA256
SDK for Go 1.x (V1) Tidak
SDK for Java 2.x Ya CRC32 CRC64NVME (hanya melalui CRT),, C, CRC32, CRC32 SHA1 SHA256
SDK for Java 1.x Tidak
SDK untuk 3.x JavaScript Ya CRC32 CRC32, CRC32 C SHA1, SHA256
SDK untuk 2.x JavaScript Tidak
SDK para Kotlin Ya CRC32 CRC32, CRC32 C SHA1, SHA256
SDK for .NET 3.x Ya CRC32 CRC32, CRC32 C SHA1, SHA256
SDK for PHP 3.x Ya CRC32 CRC32, CRC32 C (hanya melalui CRT),, SHA1 SHA256 awscrtekstensi diperlukan untuk menggunakan CRC32 C.
SDK untuk Python (Boto3) Ya CRC32 CRC64NVME (hanya melalui CRT), CRC32, CRC32 C (hanya melalui CRT),, SHA1 SHA256
SDK for Ruby 3.x Ya CRC32 CRC64NVME (hanya melalui CRT), CRC32, CRC32 C (hanya melalui CRT),, SHA1 SHA256
SDK untuk Rust Ya CRC32 CRC64NVME,, CRC32 C CRC32,, SHA1 SHA256
SDK para Swift Ya CRC32 CRC64NVME,, CRC32 C CRC32,, SHA1 SHA256 Ketergantungan CRT diperlukan untuk semua algoritma.
Alat untuk PowerShell Ya CRC32 CRC32, CRC32 C SHA1, SHA256