Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Migrasi Klien Enkripsi Amazon S3 (V2 ke V3)
catatan
Jika Anda menggunakan V1 dari klien enkripsi S3, Anda harus terlebih dahulu bermigrasi ke V2 sebelum bermigrasi ke V3. Lihat Migrasi Klien Enkripsi Amazon S3 (V1 ke V2) petunjuk tentang migrasi dari V1 ke V2.
Topik ini menunjukkan cara memigrasikan aplikasi Anda dari klien enkripsi Amazon Simple Storage Service (Amazon S3) ke Versi 2 (V3) Amazon Simple Storage Service (Amazon S3) ke Versi 3 (V3), dan memastikan ketersediaan aplikasi selama proses migrasi. V3 memperkenalkan AES GCM dengan Kebijakan Komitmen dan Komitmen Utama untuk meningkatkan keamanan dan melindungi dari gangguan kunci data.
Ikhtisar Migrasi
Versi 3 dari klien enkripsi Amazon S3 memperkenalkan AES GCM dengan Komitmen Utama untuk keamanan yang ditingkatkan. Algoritma enkripsi baru ini memberikan perlindungan terhadap gangguan kunci data dan memastikan integritas data terenkripsi. Migrasi ke V3 memerlukan perencanaan yang cermat untuk menjaga ketersediaan aplikasi dan aksesibilitas data selama proses berlangsung.
Migrasi ini terjadi dalam dua fase:
1. Perbarui klien yang ada untuk membaca format baru. Pertama, gunakan versi terbaru AWS SDK for Ruby ke aplikasi Anda. Ini akan memungkinkan klien enkripsi V2 yang ada untuk mendekripsi objek yang ditulis oleh klien V3 baru. Jika aplikasi Anda menggunakan beberapa AWS SDKs, Anda harus memutakhirkan setiap SDK secara terpisah.
2. Migrasikan enkripsi dan dekripsi klien ke V3. Setelah semua klien enkripsi V2 Anda dapat membaca format baru, Anda dapat memigrasikan klien enkripsi dan dekripsi yang ada ke versi V3 masing-masing. Ini termasuk mengonfigurasi Kebijakan Komitmen dan memperbarui kode Anda untuk menggunakan opsi konfigurasi klien baru.
Jika Anda belum bermigrasi dari V1 ke V2, Anda harus menyelesaikan migrasi itu terlebih dahulu. Lihat Migrasi Klien Enkripsi Amazon S3 (V1 ke V2) petunjuk terperinci tentang migrasi dari V1 ke V2.
Memahami Fitur V3
Versi 3 dari klien enkripsi Amazon S3 memperkenalkan dua fitur keamanan utama: Kebijakan Komitmen dan AES GCM dengan Komitmen Utama. Memahami fitur-fitur ini sangat penting untuk merencanakan strategi migrasi Anda dan memastikan keamanan data terenkripsi Anda.
Kebijakan Komitmen
Kebijakan Komitmen mengontrol bagaimana klien enkripsi menangani komitmen utama selama operasi enkripsi dan dekripsi. Komitmen utama memastikan bahwa data terenkripsi hanya dapat didekripsi dengan kunci yang tepat yang digunakan untuk mengenkripsinya, melindungi terhadap jenis serangan kriptografi tertentu.
Klien enkripsi V3 mendukung tiga opsi Kebijakan Komitmen:
FORBID_ENCRYPT_ALLOW_DECRYPT
Kebijakan ini mengenkripsi objek tanpa komitmen utama dan memungkinkan dekripsi kedua objek dengan dan tanpa komitmen utama.
-
Perilaku enkripsi: Objek dienkripsi tanpa komitmen kunci, menggunakan rangkaian algoritma yang sama dengan V2.
-
Perilaku dekripsi: Dapat mendekripsi objek yang dienkripsi dengan atau tanpa komitmen kunci.
-
Implikasi keamanan: Kebijakan ini tidak menegakkan komitmen utama dan memungkinkan gangguan. Objek yang dienkripsi dengan kebijakan ini tidak mendapat manfaat dari perlindungan keamanan yang ditingkatkan dari komitmen utama. Gunakan kebijakan ini hanya selama migrasi bila Anda perlu mempertahankan kompatibilitas dengan perilaku enkripsi V2.
-
Kompatibilitas versi: Objek yang dienkripsi dengan kebijakan ini dapat dibaca oleh semua implementasi V2 dan V3 dari klien enkripsi S3.
REQUIRE_ENCRYPT_ALLOW_DECRYPT
Kebijakan ini mengenkripsi objek dengan komitmen utama dan memungkinkan dekripsi kedua objek dengan dan tanpa komitmen utama.
-
Perilaku enkripsi: Objek dienkripsi dengan komitmen utama menggunakan AES GCM dengan Komitmen Kunci.
-
Perilaku dekripsi: Dapat mendekripsi objek yang dienkripsi dengan atau tanpa komitmen kunci, memberikan kompatibilitas mundur.
-
Implikasi keamanan: Objek baru mendapat manfaat dari perlindungan komitmen utama, sementara objek yang ada tanpa komitmen utama masih dapat dibaca. Ini memberikan keseimbangan antara keamanan dan kompatibilitas mundur selama migrasi.
-
Kompatibilitas versi: Objek yang dienkripsi dengan kebijakan ini hanya dapat dibaca oleh V3 dan implementasi V2 terbaru dari klien enkripsi S3.
REQUIRE_ENCRYPT_REQUIRE_DECRYPT
Kebijakan ini mengenkripsi objek dengan komitmen utama dan hanya memungkinkan dekripsi objek yang dienkripsi dengan komitmen utama.
-
Perilaku enkripsi: Objek dienkripsi dengan komitmen utama menggunakan AES GCM dengan Komitmen Kunci.
-
Perilaku dekripsi: Hanya dapat mendekripsi objek yang dienkripsi dengan komitmen utama. Upaya untuk mendekripsi objek tanpa komitmen utama akan gagal.
-
Implikasi keamanan: Kebijakan ini memberikan tingkat keamanan tertinggi dengan menegakkan komitmen utama untuk semua operasi. Gunakan kebijakan ini hanya setelah semua objek dienkripsi ulang dengan komitmen utama dan semua klien telah ditingkatkan ke V3.
-
Kompatibilitas versi: Objek yang dienkripsi dengan kebijakan ini hanya dapat dibaca oleh V3 dan implementasi V2 terbaru dari klien enkripsi S3. Kebijakan ini juga mencegah pembacaan objek yang dienkripsi oleh klien V2 atau V1.
catatan
Saat merencanakan migrasi Anda, mulailah REQUIRE_ENCRYPT_ALLOW_DECRYPT dengan mempertahankan kompatibilitas mundur sambil mendapatkan manfaat keamanan dari komitmen utama untuk objek baru. Hanya pindah ke REQUIRE_ENCRYPT_REQUIRE_DECRYPT setelah semua objek telah dienkripsi ulang dan semua klien telah ditingkatkan ke V3.
AES GCM dengan Komitmen Utama
AES GCM with Key Commitment (ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY) adalah algoritma enkripsi baru yang diperkenalkan di V3 yang memberikan peningkatan keamanan dengan melindungi terhadap gangguan kunci data. Memahami cara kerja algoritme ini dan kapan itu berlaku penting untuk merencanakan migrasi Anda.
Bagaimana ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY Berbeda dari Algoritma Sebelumnya
Versi sebelumnya dari klien enkripsi S3 menggunakan AES CBC atau AES GCM tanpa komitmen kunci untuk mengenkripsi kunci data dalam File Instruksi. ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEYmenambahkan komitmen kriptografi untuk proses enkripsi, yang mengikat data terenkripsi ke kunci tertentu. Ini mencegah penyerang merusak kunci data terenkripsi dalam File Instruksi dan menyebabkan klien mendekripsi data dengan kunci yang salah.
Tanpa komitmen kunci, penyerang dapat memodifikasi kunci data terenkripsi dalam File Instruksi sehingga mendekripsi ke kunci yang berbeda, berpotensi memungkinkan akses yang tidak sah atau korupsi data. ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEYmencegah serangan ini dengan memastikan bahwa kunci data terenkripsi hanya dapat mendekripsi ke kunci asli yang digunakan selama enkripsi.
Kompatibilitas Versi
Objek yang dienkripsi hanya ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY dapat didekripsi oleh implementasi V3 dari klien enkripsi S3 dan versi transisi tertentu dari V2 yang menyertakan dukungan untuk membaca format V3. Klien V2 tanpa dukungan transisi ini tidak dapat mendekripsi File Instruksi yang dienkripsi. ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY
Awas
Sebelum mengaktifkan enkripsi dengan ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY (dengan menggunakan REQUIRE_ENCRYPT_ALLOW_DECRYPT atau kebijakan REQUIRE_ENCRYPT_REQUIRE_DECRYPT komitmen), pastikan bahwa semua klien yang perlu membaca objek terenkripsi Anda telah ditingkatkan ke V3 atau versi transisi yang mendukung format V3. Jika ada klien V2 tanpa dukungan transisi yang mencoba membaca objek yang dienkripsiALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY, dekripsi akan gagal.
Selama migrasi, Anda dapat menggunakan kebijakan FORBID_ENCRYPT_ALLOW_DECRYPT komitmen untuk melanjutkan enkripsi tanpa ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY tetap mengizinkan klien V3 Anda membaca objek yang dienkripsi dengan komitmen utama. Ini menyediakan jalur migrasi yang aman di mana Anda pertama kali meningkatkan semua pembaca, kemudian beralih ke enkripsi dengan komitmen utama.
Perbarui Klien yang Ada untuk Membaca Format Baru
Klien enkripsi V3 menggunakan algoritma enkripsi dan fitur komitmen utama yang tidak didukung klien V2 secara default. Langkah pertama dalam migrasi adalah memperbarui klien dekripsi V2 Anda ke versi AWS SDK for Ruby yang dapat membaca objek terenkripsi V3. Setelah menyelesaikan langkah ini, klien V2 aplikasi Anda akan dapat mendekripsi objek yang dienkripsi oleh klien enkripsi V3.
Untuk membaca objek yang dienkripsi oleh klien V3 (yang menggunakan REQUIRE_ENCRYPT_ALLOW_DECRYPT atau kebijakan REQUIRE_ENCRYPT_REQUIRE_DECRYPT komitmen), Anda perlu menggunakan permata versi 1.93.0 atau yang lebih baru. aws-sdk-s3 Versi ini mencakup dukungan untuk mendekripsi objek yang dienkripsi dengan AES GCM dengan Komitmen Kunci.
Instalasi dari Command Line
Untuk proyek yang menginstal aws-sdk-s3 permata dari baris perintah, gunakan opsi versi untuk memverifikasi bahwa versi minimum 1.208.0 diinstal.
gem install aws-sdk-s3 -v '>= 1.208.0'
Menggunakan Gemfiles
Untuk proyek yang menggunakan Gemfile untuk mengelola dependensi, atur versi minimum aws-sdk-s3 permata ke 1.208.0. Contoh:
gem 'aws-sdk-s3', '>= 1.208.0'
-
Ubah Gemfile Anda untuk menentukan versi minimum.
-
Jalankan
bundle update aws-sdk-s3untuk memperbarui permata. -
Untuk memverifikasi versi Anda, jalankan
bundle info aws-sdk-s3.
catatan
Setelah memperbarui ke versi terbaru, klien enkripsi V2 Anda yang ada akan dapat mendekripsi objek yang dienkripsi oleh klien V3. Namun, mereka akan terus mengenkripsi objek baru menggunakan algoritma V2 sampai Anda memigrasikannya ke V3 seperti yang dijelaskan di bagian berikutnya.
Migrasi Klien Enkripsi dan Dekripsi ke V3
Setelah memperbarui klien Anda untuk membaca format enkripsi baru, Anda dapat memperbarui aplikasi Anda ke klien enkripsi dan dekripsi V3. Langkah-langkah berikut menunjukkan cara berhasil memigrasikan kode Anda dari V2 ke V3.
Sebelum memperbarui kode Anda untuk menggunakan klien enkripsi V3, pastikan Anda telah mengikuti langkah-langkah sebelumnya dan menggunakan aws-sdk-s3 permata versi 1.93.0 atau yang lebih baru.
catatan
Saat mendekripsi dengan AES-GCM, baca seluruh objek sampai akhir sebelum Anda mulai menggunakan data yang didekripsi. Ini untuk memverifikasi bahwa objek belum dimodifikasi sejak dienkripsi.
Mengkonfigurasi Klien V3
Klien enkripsi V3 memperkenalkan opsi konfigurasi baru yang mengontrol perilaku komitmen kunci dan kompatibilitas mundur. Memahami opsi ini sangat penting untuk migrasi yang sukses.
commitment_policy
commitment_policyParameter mengontrol bagaimana klien enkripsi menangani komitmen utama selama operasi enkripsi dan dekripsi. Ini adalah opsi konfigurasi paling penting untuk klien V3.
-
:require_encrypt_allow_decrypt- Mengenkripsi objek baru dengan komitmen utama dan memungkinkan dekripsi objek dengan atau tanpa komitmen utama. Ini adalah pengaturan yang disarankan untuk migrasi, karena memberikan keamanan yang ditingkatkan untuk objek baru sambil mempertahankan kompatibilitas mundur dengan objek V2 yang ada. -
:forbid_encrypt_allow_decrypt- Mengenkripsi objek baru tanpa komitmen utama (menggunakan algoritma V2) dan memungkinkan dekripsi objek dengan atau tanpa komitmen utama. Gunakan pengaturan ini hanya jika Anda perlu mempertahankan perilaku enkripsi V2 selama migrasi, seperti ketika beberapa klien belum dapat membaca objek terenkripsi V3. -
:require_encrypt_require_decrypt- Mengenkripsi objek baru dengan komitmen utama dan hanya memungkinkan dekripsi objek yang dienkripsi dengan komitmen utama. Gunakan pengaturan ini hanya setelah semua objek dienkripsi ulang dengan komitmen utama dan semua klien telah ditingkatkan ke V3.
security_profile
security_profileParameter menentukan dukungan untuk membaca objek yang ditulis oleh versi klien enkripsi yang lebih lama. Parameter ini penting untuk menjaga kompatibilitas mundur selama migrasi.
-
:v3_and_legacy- Memungkinkan klien V3 untuk mendekripsi objek yang dienkripsi oleh klien enkripsi V1 dan V2. Gunakan pengaturan ini selama migrasi untuk memastikan klien V3 Anda dapat membaca semua objek terenkripsi yang ada. -
:v3- Memungkinkan klien V3 untuk mendekripsi objek yang dienkripsi oleh klien enkripsi V2 saja. Gunakan pengaturan ini jika Anda telah memigrasikan semua objek V1 ke format V2. -
Jika tidak ditentukan, klien hanya akan mendekripsi objek yang dienkripsi oleh klien V3. Gunakan ini hanya untuk pengembangan aplikasi baru di mana tidak ada objek lama.
amplope_location
envelope_locationParameter menentukan di mana metadata enkripsi (termasuk kunci data terenkripsi) disimpan. Parameter ini mempengaruhi objek mana yang dilindungi oleh AES GCM dengan Key Commitment.
-
:metadata(Default) - Menyimpan metadata enkripsi di header metadata objek S3. Ini adalah perilaku default dan direkomendasikan untuk sebagian besar kasus penggunaan. Saat menggunakan penyimpanan metadata, AES GCM dengan Komitmen Utama tidak berlaku. -
:instruction_file- Menyimpan metadata enkripsi dalam objek S3 terpisah (File Instruksi) dengan akhiran yang dapat dikonfigurasi. Saat menggunakan File Instruksi, AES GCM dengan Key Commitment melindungi kunci data terenkripsi dari gangguan. Gunakan pengaturan ini jika Anda memerlukan keamanan tambahan yang disediakan oleh komitmen utama untuk kunci data itu sendiri.
Saat menggunakan:instruction_file, Anda dapat secara opsional menentukan instruction_file_suffix parameter untuk menyesuaikan akhiran yang digunakan untuk objek File Instruksi. Sufiks default adalah.instruction.
Kapan Menggunakan Setiap Opsi Konfigurasi
Selama migrasi, ikuti strategi konfigurasi yang disarankan ini:
-
Migrasi Awal: Set
commitment_policy: :require_encrypt_allow_decryptdansecurity_profile: :v3_and_legacy. Ini memungkinkan klien V3 Anda untuk mengenkripsi objek baru dengan komitmen utama sambil tetap dapat mendekripsi semua objek V1 dan V2 yang ada. -
Setelah Semua Klien Diupgrade: Lanjutkan menggunakan
commitment_policy: :require_encrypt_allow_decryptdansecurity_profile: :v3_and_legacysampai Anda telah mengenkripsi ulang semua objek yang membutuhkan perlindungan komitmen utama. -
Penegakan V3 Penuh: Hanya setelah semua objek dienkripsi ulang dengan komitmen kunci dan Anda tidak perlu lagi membaca objek V1/V2, Anda dapat secara opsional beralih ke
commitment_policy: :require_encrypt_require_decryptdan menghapussecurity_profileparameter (atau mengaturnya ke:v2jika objek V2 masih ada).
Untukenvelope_location, lanjutkan menggunakan metode penyimpanan yang ada (:metadataatau:instruction_file) kecuali Anda memiliki alasan khusus untuk mengubahnya. Jika saat ini Anda menggunakan penyimpanan metadata dan menginginkan keamanan tambahan AES GCM dengan Komitmen Kunci untuk kunci data, Anda dapat beralih ke:instruction_file, tetapi perhatikan bahwa ini akan memerlukan pembaruan semua klien yang membaca objek ini.
Migrasikan klien Enkripsi dan Dekripsi ke V3
Setelah memperbarui klien Anda untuk membaca format enkripsi baru, Anda dapat memperbarui aplikasi Anda ke klien enkripsi dan dekripsi V3. Contoh berikut menunjukkan cara memigrasi kode Anda dari V2 ke V3 dengan sukses.
Menggunakan Klien Enkripsi V3
Pra-migrasi (V2)
require 'aws-sdk-s3' # Create V2 encryption client with KMS client = Aws::S3::EncryptionV2::Client.new( kms_key_id: kms_key_id, key_wrap_schema: :kms_context, content_encryption_schema: :aes_gcm_no_padding, security_profile: :v2_and_legacy, commitment_policy: :forbid_encrypt_allow_decrypt ) # Encrypt and upload object client.put_object(bucket: 'my-bucket', key: 'my-object', body: 'secret data') # Download and decrypt object resp = client.get_object(bucket: 'my-bucket', key: 'my-object') decrypted_data = resp.body.read
Selama migrasi (V3 dengan kompatibilitas mundur)
require 'aws-sdk-s3' # Create V3 encryption client with KMS client = Aws::S3::EncryptionV3::Client.new( kms_key_id: kms_key_id, key_wrap_schema: :kms_context, content_encryption_schema: :aes_gcm_no_padding, security_profile: :v3_and_legacy, commitment_policy: :require_encrypt_allow_decrypt ) # Encrypt and upload object client.put_object(bucket: 'my-bucket', key: 'my-object', body: 'secret data') # Download and decrypt object resp = client.get_object(bucket: 'my-bucket', key: 'my-object') decrypted_data = resp.body.read
Pasca-migrasi (V3)
require 'aws-sdk-s3' # Create V3 encryption client with KMS client = Aws::S3::EncryptionV3::Client.new( kms_key_id: kms_key_id, key_wrap_schema: :kms_context, content_encryption_schema: :aes_gcm_no_padding, security_profile: :v3, # Use the commitment policy (REQUIRE_ENCRYPT_REQUIRE_DECRYPT) # This encrypts with key commitment and does not decrypt V2 objects commitment_policy: :require_encrypt_require_decrypt ) # Encrypt and upload object client.put_object(bucket: 'my-bucket', key: 'my-object', body: 'secret data') # Download and decrypt object resp = client.get_object(bucket: 'my-bucket', key: 'my-object') decrypted_data = resp.body.read
Perbedaan utama dalam V3 adalah penambahan commitment_policy parameter. Mengaturnya untuk :require_encrypt_require_decrypt memastikan bahwa objek baru dienkripsi dengan komitmen utama dan bahwa klien hanya mendekripsi objek yang dienkripsi dengan komitmen utama, memberikan keamanan yang ditingkatkan terhadap gangguan kunci data.
put_objectPanggilan itu sendiri tetap tidak berubah. Semua peningkatan keamanan dikonfigurasi di tingkat klien.
Contoh Tambahan
Bagian ini memberikan contoh tambahan untuk skenario migrasi tertentu dan opsi konfigurasi yang mungkin berguna selama migrasi V2 ke V3 Anda.
File Instruksi vs Penyimpanan Metadata
Klien enkripsi S3 dapat menyimpan metadata enkripsi (termasuk kunci data terenkripsi) di dua lokasi berbeda: di header metadata objek S3 atau dalam File Instruksi terpisah. Pilihan metode penyimpanan memengaruhi objek mana yang mendapat manfaat dari AES GCM dengan perlindungan Komitmen Utama.
Penyimpanan Metadata (Default)
Secara default, klien enkripsi menyimpan metadata enkripsi di header metadata objek S3. Ini adalah pendekatan yang direkomendasikan untuk sebagian besar kasus penggunaan karena menyimpan metadata enkripsi dengan objek dan tidak memerlukan pengelolaan objek File Instruksi terpisah.
require 'aws-sdk-s3' # Create V3 encryption client with metadata storage (default) client = Aws::S3::EncryptionV3::Client.new( kms_key_id: kms_key_id, key_wrap_schema: :kms_context, content_encryption_schema: :aes_gcm_no_padding, security_profile: :v3_and_legacy, commitment_policy: :require_encrypt_allow_decrypt, envelope_location: :metadata # Explicitly set to metadata (this is the default) ) # Encrypt and upload object # Encryption metadata is stored in the object's metadata headers client.put_object(bucket: 'my-bucket', key: 'my-object',body: 'secret data')
Saat menggunakan penyimpanan metadata, AES GCM dengan Komitmen Kunci tidak berlaku untuk kunci data terenkripsi. Namun, enkripsi konten masih mendapat manfaat dari komitmen utama saat menggunakan commitment_policy: :require_encrypt_allow_decrypt atau:require_encrypt_require_decrypt.
Penyimpanan File Instruksi
Atau, Anda dapat mengonfigurasi klien enkripsi untuk menyimpan metadata enkripsi dalam objek S3 terpisah yang disebut File Instruksi. Saat menggunakan File Instruksi dengan V3, kunci data terenkripsi dilindungi oleh AES GCM dengan Komitmen Kunci, memberikan keamanan tambahan terhadap gangguan kunci data.
require 'aws-sdk-s3' # Create V3 encryption client with instruction file storage client = Aws::S3::EncryptionV3::Client.new( kms_key_id: kms_key_id, key_wrap_schema: :kms_context, content_encryption_schema: :aes_gcm_no_padding, security_profile: :v3_and_legacy, commitment_policy: :require_encrypt_allow_decrypt, envelope_location: :instruction_file, # Store metadata in separate instruction file instruction_file_suffix: '.instruction' # Optional: customize the suffix (default is '.instruction') ) # Encrypt and upload object # Encryption metadata is stored in a separate object: 'my-object.instruction' client.put_object(bucket: 'my-bucket', key: 'my-object', body: 'secret data') # When retrieving the object, the client automatically reads the instruction file resp = client.get_object(bucket: 'my-bucket', key: 'my-object') decrypted_data = resp.body.read
Saat menggunakanenvelope_location: :instruction_file, klien enkripsi membuat dua objek S3:
-
Objek data terenkripsi (misalnya,)
my-object -
File Instruksi yang berisi metadata enkripsi (mis.,)
my-object.instruction
instruction_file_suffixParameter ini memungkinkan Anda untuk menyesuaikan akhiran yang digunakan untuk File Instruksi. Nilai default-nya adalah .instruction.
Kapan Menggunakan Setiap Metode Penyimpanan
-
Gunakan Penyimpanan Metadata untuk sebagian besar skenario. Ini menyederhanakan manajemen objek karena metadata enkripsi berjalan dengan objek.
-
Gunakan Penyimpanan File Instruksi ketika ukuran metadata objek menjadi perhatian atau ketika Anda perlu memisahkan metadata enkripsi dari objek terenkripsi. Perhatikan bahwa menggunakan File Instruksi memerlukan pengelolaan dua objek S3 (objek terenkripsi dan file instruksinya), bukan satu.
Awas
Jika Anda mengubah dari penyimpanan metadata ke penyimpanan file instruksi (atau sebaliknya), objek yang ada dienkripsi dengan metode penyimpanan lama tidak akan dapat dibaca oleh klien yang dikonfigurasi dengan metode penyimpanan baru. Rencanakan metode penyimpanan Anda dengan hati-hati dan pertahankan konsistensi di seluruh aplikasi Anda.