Kami mengumumkan
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Berbagi Sumber Daya Lintas Orisinil (CORS)
Berbagi sumber daya lintas asal, atau CORS, adalah fitur keamanan browser web modern. Ini memungkinkan browser web untuk menegosiasikan domain mana yang dapat membuat permintaan situs web atau layanan eksternal. CORS merupakan pertimbangan penting ketika mengembangkan aplikasi browser denganAWS SDK for JavaScriptkarena sebagian besar permintaan ke sumber daya dikirim ke domain eksternal, seperti endpoint untuk layanan web. Jika lingkungan JavaScript Anda memberlakukan keamanan CORS, Anda harus mengonfigurasi CORS dengan layanan ini.
CORS menentukan apakah akan mengizinkan berbagi sumber daya dalam permintaan lintas asal berdasarkan:
Domain spesifik yang membuat permintaan
Jenis permintaan HTTP yang dibuat (GET, PUT, POST, DELETE dan sebagainya)
Cara CORS Bekerja
Dalam kasus yang paling sederhana, skrip browser Anda membuat permintaan GET untuk sumber daya dari server di domain lain. Tergantung pada konfigurasi CORS server tersebut, jika permintaan berasal dari domain yang berwenang untuk mengirimkan permintaan GET, server cross-origin merespon dengan mengembalikan sumber daya yang diminta.
Jika domain yang meminta atau jenis permintaan HTTP tidak diotorisasi, permintaan ditolak. Namun, CORS memungkinkan untuk melakukan preflight permintaan sebelum benar-benar mengirimkannya. Dalam hal ini, permintaan preflight dibuat di manaOPTIONS
operasi permintaan akses dikirim. Jika konfigurasi CORS server lintas-asal memberikan akses ke domain yang meminta, server mengirimkan kembali respons preflight yang mencantumkan semua jenis permintaan HTTP yang dapat dibuat oleh domain yang meminta pada sumber daya yang diminta.

Apakah Konfigurasi CORS Diperlukan
Bucket Amazon S3 memerlukan konfigurasi CORS sebelum Anda dapat melakukan operasi pada mereka. Dalam beberapa lingkungan JavaScript CORS mungkin tidak ditegakkan dan karena itu mengkonfigurasi CORS tidak perlu. Misalnya, jika Anda meng-host aplikasi Anda dari bucket Amazon S3 dan mengakses sumber daya dari*.s3.amazonaws.com
atau titik akhir tertentu lainnya, permintaan Anda tidak akan mengakses domain eksternal. Oleh karena itu, konfigurasi ini tidak memerlukan CORS. Dalam hal ini, CORS masih digunakan untuk layanan selain Amazon S3.
Mengonfigurasi CORS untuk Amazon S3 Bucket
Anda dapat mengonfigurasi bucket Amazon S3 untuk menggunakan CORS di konsol Amazon S3.
-
Di konsol Amazon S3, pilih bucket yang ingin Anda edit.
-
PilihIzintab, dan scoll keCross-origin resource sharing (CORS)panel.
-
MemilihMengedit, dan ketik konfigurasi CORS Anda diEditor Konfigurasi CORS, kemudian memilihSimpan.
Konfigurasi CORS adalah file XML yang berisi serangkaian aturan dalam<CORSRule>
. Konfigurasi dapat memiliki hingga 100 aturan. Aturan didefinisikan oleh salah satu tag berikut:
<AllowedOrigin>
, yang menentukan asal domain yang Anda izinkan untuk membuat permintaan lintas domain.<AllowedMethod>
, yang menentukan jenis permintaan yang Anda izinkan (GET, PUT, POST, DELETE, HEAD) dalam permintaan lintas domain.<AllowedHeader>
, yang menentukan header diperbolehkan dalam permintaan preflight.
Untuk konfigurasi sampel, lihatBagaimana Cara Mengonfigurasi CORS di Ember Saya?diPanduan Amazon Simple Storage Service.
Contoh Konfigurasi CORS
Contoh konfigurasi CORS berikut memungkinkan pengguna untuk melihat, menambah, menghapus, atau memperbarui objek di dalam bucket dari domainexample.org
, meskipun dianjurkan bahwa Anda lingkup<AllowedOrigin>
ke domain situs web Anda. Anda dapat menentukan"*"
untuk memungkinkan asal apapun.
penting
Pada konsol S3 baru, konfigurasi CORS harus JSON.
Konfigurasi ini tidak mengizinkan pengguna untuk melakukan tindakan pada bucket. Hal ini memungkinkan model keamanan browser untuk memungkinkan permintaan ke Amazon S3. Izin harus dikonfigurasi melalui izin bucket atau izin peran IAM.
Anda dapat menggunakanExposeHeader
agar SDK membaca header yang dikembalikan dari Amazon S3. Misalnya, jika Anda ingin membacaETag
header dariPUT
atau upload multipart, Anda perlu menyertakanExposeHeader
tag di konfigurasi Anda, seperti yang ditunjukkan pada contoh sebelumnya. SDK hanya dapat mengakses header yang terpapar melalui konfigurasi CORS. Jika Anda menetapkan metadata pada objek, nilai dikembalikan sebagai header dengan awalanx-amz-meta-
, sepertix-amz-meta-my-custom-header
, dan juga harus terkena dengan cara yang sama.