View a markdown version of this page

Cross-origin dukungan berbagi sumber daya dan Amazon EC2 - Amazon Elastic Compute Cloud

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

Cross-origin dukungan berbagi sumber daya dan Amazon EC2

Amazon EC2 API mendukung berbagi sumber daya lintas asal (CORS). CORS mendefinisikan cara untuk aplikasi web klien yang dimuat dalam satu domain untuk berinteraksi dengan sumber daya di domain yang berbeda. Untuk informasi lebih lanjut, buka Rekomendasi W3C Berbagi Cross-Origin Sumber Daya. Dengan dukungan CORS untuk Amazon EC2, Anda dapat membangun aplikasi web sisi klien kaya yang menggunakan Amazon EC2 API. Misalnya, Anda menghosting situs webmywebsite.example.com, dan Anda ingin menggunakan JavaScript pada halaman web Anda untuk membuat permintaan ke Amazon EC2 API. Biasanya, browser memblokir JavaScript agar tidak mengizinkan permintaan ini, tetapi dengan CORS, Anda dapat melakukan panggilan API Amazon EC2 lintas asal. mywebsite.example.com

CORS sudah diaktifkan untuk Amazon EC2 API, dan siap untuk Anda gunakan. Anda tidak perlu melakukan langkah-langkah konfigurasi tambahan untuk mulai menggunakan fitur ini. Tidak ada perubahan pada cara Anda melakukan panggilan ke Amazon EC2 API; mereka masih harus ditandatangani dengan AWS kredensi yang valid untuk memastikan bahwa AWS dapat mengautentikasi pemohon. Untuk informasi selengkapnya, lihat Menandatangani permintaan AWS API di Panduan Pengguna IAM.

Implementasi CORS di Amazon EC2 API distandarisasi. Aplikasi Anda dapat mengirim permintaan sederhana ke Amazon EC2 API, atau, tergantung pada konten permintaan, permintaan preflight diikuti dengan permintaan yang sebenarnya. Amazon EC2 memungkinkan permintaan dari asal mana pun

Untuk informasi lebih lanjut tentang CORS dan contoh cara kerjanya, buka artikel berikut di Jaringan Pengembang Mozilla: Kontrol akses HTTP (CORS).

Permintaan sederhana

Berikut ini adalah kriteria yang mendefinisikan permintaan sederhana atau aktual:

  • Permintaan hanya menggunakan metode GET atau POST HTTP. Jika POST metode ini digunakan, maka hanya Content-Type bisa salah satu dari yang berikut:application/x-www-form-urlencoded,multipart/form-data, atautext/plain.

  • Permintaan tidak menyetel header khusus, sepertiX-Other-Header.

Amazon EC2 memungkinkan permintaan dari asal mana pun. Setiap GET atau POST permintaan yang mencoba menggunakan kredensil browser dengan menyetel Access-Control-Allow-Credentials nilai ke true (whereXMLHttpRequest.withCredentials = true) akan gagal.

Informasi berikut menjelaskan header permintaan ke Amazon EC2:

Nilai header permintaan sederhana
  • Origin: Menentukan domain yang ingin mengakses sumber daya (dalam hal ini, sumber dayanya adalah Amazon EC2). Ini dimasukkan oleh browser dalam permintaan lintas asal.

Informasi berikut menjelaskan header respons yang dikembalikan Amazon EC2 (atau tidak dikembalikan) setelah permintaan sederhana atau aktual:

Nilai header respons sederhana
  • Access-Control-Allow-Origin: Menentukan domain yang dapat mengakses sumber daya (dalam hal ini, sumber daya adalah Amazon EC2). Ini selalu dikembalikan dengan nilai*. Oleh karena itu, Amazon EC2 memungkinkan asal lintas domain apa pun, dan tidak pernah mengizinkan kredensyal browser, seperti cookie.

  • Access-Control-Allow-Credentials: Menunjukkan apakah kredensyal browser dapat digunakan untuk membuat permintaan yang sebenarnya. Ini tidak pernah dikembalikan. Oleh karena itu, browser harus menafsirkan nilai sebagaiAccess-Control-Allow-Credentials: false.

Permintaan preflight

Jika konten permintaan Anda memenuhi kriteria di bawah ini, maka permintaan Anda diperiksa apakah permintaan yang sebenarnya harus dikirim. Permintaan preflight pertama mengirimkan permintaan HTTP ke sumber daya (dalam hal ini, Amazon EC2) menggunakan OPTIONS metode ini.

Berikut ini adalah kriteria yang menentukan permintaan preflight:

  • Permintaan menggunakan metode HTTP selain GET atauPOST. Namun, jika POST metode ini digunakan, maka itu Content-Type bukan salah satu dari yang berikut:application/x-www-form-urlencoded,multipart/form-data, atautext/plain.

  • Permintaan mengatur header khusus; misalnya,X-Other-Header.

Implementasi Amazon EC2 CORS memungkinkan header apa pun, dan memungkinkan asal apa pun dalam permintaan yang sebenarnya.

Informasi berikut menjelaskan header permintaan untuk permintaan preflight ke Amazon EC2:

Nilai header permintaan preflight
  • Origin: Menentukan domain yang ingin mengakses sumber daya (dalam hal ini, sumber dayanya adalah Amazon EC2). Ini dimasukkan oleh browser dalam permintaan lintas asal.

  • Access-Control-Request-Method: Metode HTTP yang akan digunakan dalam permintaan aktual dari browser.

  • Access-Control-Request-Headers: Header khusus yang akan dikirim dalam permintaan lintas asal yang sebenarnya.

Informasi berikut adalah tentang header respons yang dikembalikan Amazon EC2 (atau tidak dikembalikan) setelah permintaan preflight:

Nilai header respons preflight
  • Access-Control-Allow-Origin: Menentukan domain yang dapat mengakses sumber daya (dalam hal ini, sumber daya adalah Amazon EC2). Ini selalu dikembalikan dengan nilai*. Oleh karena itu, Amazon EC2 memungkinkan asal lintas domain apa pun, dan tidak pernah mengizinkan kredensyal browser, seperti cookie.

  • Access-Control-Allow-Credentials: Menunjukkan apakah kredensyal browser dapat digunakan untuk membuat permintaan yang sebenarnya. Ini tidak pernah dikembalikan oleh Amazon EC2. Oleh karena itu, browser harus menafsirkan nilai sebagaiAccess-Control-Allow-Credentials: false.

  • Access-Control-Expose-Headers: Memungkinkan header untuk diekspos ke browser. Ini tidak pernah dikembalikan oleh Amazon EC2. Oleh karena itu, tidak ada header pengembalian dari Amazon EC2 yang dapat dibaca oleh domain yang meminta.

  • Access-Control-Max-Age: Menentukan berapa lama hasil permintaan preflight dapat di-cache. Nilai diatur ke 1800 detik (30 menit).

  • Access-Control-Allow-Methods: Menunjukkan metode mana yang diizinkan saat membuat permintaan yang sebenarnya. Metode berikut diperbolehkan:GET,, POSTOPTIONS,DELETE, danPUT. Ini juga tergantung pada bagaimana Anda memanggil Amazon EC2 API; misalnya, dengan menggunakan Query API, atau dengan menggunakan REST.

  • Access-Control-Allow-Headers: Menunjukkan header mana yang dapat digunakan dalam permintaan yang sebenarnya. Amazon EC2 menerima header apa pun dalam permintaan preflight. Jika header HTTP tidak relevan dalam permintaan yang sebenarnya, mereka diabaikan.