Gunakan cookie yang ditandatangani - Amazon CloudFront

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

Gunakan cookie yang ditandatangani

CloudFront Cookie yang ditandatangani memungkinkan Anda untuk mengontrol siapa yang dapat mengakses konten Anda ketika Anda tidak ingin mengubah konten Anda saat ini URLs atau ketika Anda ingin memberikan akses ke beberapa file terbatas, misalnya, semua file di area pelanggan situs web. Topik ini menjelaskan pertimbangan saat menggunakan cookie yang ditandatangani dan menjelaskan cara mengatur cookie yang ditandatangani menggunakan kebijakan terekam dan kustom.

Memutuskan untuk menggunakan kebijakan kalengan atau kustom untuk cookie yang ditandatangani

Saat Anda membuat cookie yang ditandatangani, Anda menulis pernyataan kebijakan dalam JSON format yang menentukan batasan pada cookie yang ditandatangani, misalnya, berapa lama cookie valid. Anda dapat menggunakan kebijakan terekam atau kebijakan khusus. Tabel berikut membandingkan kebijakan terekam dan kustom:

Deskripsi Kebijakan kalengan Kebijakan khusus

Anda dapat menggunakan kembali pernyataan kebijakan untuk beberapa file. Untuk menggunakan kembali pernyataan kebijakan, Anda harus menggunakan karakter wildcard dalam Resource objek. Untuk informasi lebih lanjut, lihat Nilai yang Anda sebutkan dalam pernyataan kebijakan untuk kebijakan kustom untuk cookie yang ditandatangani.)

Tidak

Ya

Anda dapat menentukan tanggal dan waktu pengguna dapat mulai mengakses konten Anda

Tidak

Ya (opsional)

Anda dapat menentukan tanggal dan waktu saat pengguna tidak lagi dapat mengakses konten Anda

Ya

Ya

Anda dapat menentukan alamat IP atau berbagai alamat IP pengguna yang dapat mengakses konten Anda

Tidak

Ya (opsional)

Untuk informasi tentang membuat cookie yang ditandatangani menggunakan kebijakan terekam, lihat Tetapkan cookie yang ditandatangani menggunakan kebijakan kalengan.

Untuk informasi tentang membuat cookie yang ditandatangani menggunakan kebijakan kustom, lihat Tetapkan cookie yang ditandatangani menggunakan kebijakan khusus.

Cara kerja cookie yang ditandatangani

Berikut adalah ikhtisar tentang cara Anda mengonfigurasi CloudFront cookie yang ditandatangani dan bagaimana CloudFront merespons ketika pengguna mengirimkan permintaan yang berisi cookie yang ditandatangani.

  1. Dalam CloudFront distribusi Anda, tentukan satu atau beberapa grup kunci tepercaya, yang berisi kunci publik yang CloudFront dapat digunakan untuk memverifikasi URL tanda tangan. Anda menggunakan kunci pribadi yang sesuai untuk menandatanganiURLs.

    Untuk informasi selengkapnya, lihat Tentukan penandatangan yang dapat membuat cookie yang ditandatangani URLs dan ditandatangani.

  2. Anda mengembangkan aplikasi untuk menentukan apakah pengguna harus memiliki akses ke konten Anda dan, jika demikian, untuk mengirim tiga Set-Cookie judul ke penampil. (Setiap Set-Cookie header hanya dapat berisi satu pasangan nama-nilai, dan cookie yang CloudFront ditandatangani memerlukan tiga pasangan nama-nilai.) Anda harus mengirim header Set-Cookie ke penampil sebelum penonton meminta konten privat Anda. Jika Anda mengatur waktu kedaluwarsa singkat pada cookie, Anda mungkin juga ingin mengirim tiga lagi Set-Cookie header dalam menanggapi permintaan berikutnya, sehingga pengguna terus memiliki akses.

    Biasanya, CloudFront distribusi Anda akan memiliki setidaknya dua perilaku cache, satu yang tidak memerlukan otentikasi dan satu lagi. Laman kesalahan untuk bagian situs yang aman mencakup pengarah atau tautan ke halaman login.

    Jika Anda mengonfigurasi distribusi Anda ke file cache berdasarkan cookie, CloudFront tidak menyimpan file terpisah berdasarkan atribut dalam cookie yang ditandatangani.

  3. Pengguna masuk ke situs web Anda dan membayar konten atau memenuhi beberapa persyaratan lain untuk akses.

  4. Aplikasi Anda mengembalikan Set-Cookie judul di respons, dan penampil menyimpan pasangan nilai.

  5. Pengguna meminta file.

    Browser pengguna atau penampil lain mendapatkan pasangan nilai dari langkah 4 dan menambahkannya ke permintaan dalam Cookie header. Ini adalah cookie yang ditandatangani.

  6. CloudFront menggunakan kunci publik untuk memvalidasi tanda tangan dalam cookie yang ditandatangani dan untuk mengonfirmasi bahwa cookie belum dirusak. Jika tanda tangan tidak valid, permintaan ditolak.

    Jika tanda tangan dalam cookie valid, CloudFront lihat pernyataan kebijakan di cookie (atau buat jika Anda menggunakan kebijakan kalengan) untuk mengonfirmasi bahwa permintaan tersebut masih valid. Misalnya, jika Anda menentukan tanggal dan waktu awal dan akhir untuk cookie, CloudFront konfirmasikan bahwa pengguna mencoba mengakses konten Anda selama periode waktu yang ingin Anda izinkan akses.

    Jika permintaan memenuhi persyaratan dalam pernyataan kebijakan, CloudFront menyajikan konten Anda seperti halnya untuk konten yang tidak dibatasi: ini menentukan apakah file sudah berada di cache tepi, meneruskan permintaan ke asal jika perlu, dan mengembalikan file ke pengguna.

Jika Anda menentukan Domain parameter dalam Set-Cookie tajuk, menentukan nilai paling tepat yang memungkinkan untuk mengurangi potensi akses oleh seseorang dengan nama domain akar yang sama. Misalnya, aplikasi.contoh.com lebih disukai ke contoh.com, terutama ketika Anda tidak mengontrol contoh.com. Ini membantu mencegah seseorang mengakses konten Anda dari www.example.com.

Untuk membantu mencegah jenis serangan ini, lakukan hal berikut:

  • Kecualikan Expires dan Max-Age sehingga Set-Cookie judul membuat cookie sesi. Cookie sesi secara otomatis dihapus ketika pengguna menutup peramban, yang mengurangi kemungkinan seseorang mendapatkan akses tanpa izin ke konten Anda.

  • Sertakan Secure sehingga cookie dienkripsi ketika penampil menyertakannya dalam permintaan.

  • Jika memungkinkan, gunakan kebijakan khusus dan sertakan alamat IP penampil.

  • Di CloudFront-Expires menentukan waktu kedaluwarsa yang paling pendek yang masuk akal berdasarkan berapa lama Anda ingin pengguna mengakses konten Anda.

Untuk menentukan apakah cookie yang ditandatangani masih valid, CloudFront periksa tanggal kedaluwarsa dan waktu dalam cookie pada saat permintaan. HTTP Jika klien mulai mengunduh file besar segera sebelum waktu kedaluwarsa, pengunduhan harus selesai meskipun waktu kedaluwarsa sudah lewat selama pengunduhan. Jika TCP koneksi turun dan klien mencoba memulai ulang unduhan setelah waktu kedaluwarsa berlalu, unduhan akan gagal.

Jika klien menggunakan Range GETs untuk mendapatkan file dalam potongan yang lebih kecil, GET permintaan apa pun yang terjadi setelah waktu kedaluwarsa berlalu akan gagal. Untuk informasi lebih lanjut tentang RentangGETs, lihatBagaimana CloudFront memproses permintaan sebagian untuk suatu objek (rentangGETs).

Kode sampel dan alat pihak ketiga

Kode sampel untuk konten pribadi hanya menunjukkan cara membuat tanda tangan untuk ditandatanganiURLs. Namun, proses untuk membuat tanda tangan untuk cookie yang ditandatangani sangat mirip, sehingga sebagian besar kode sampel masih relevan. Untuk informasi selengkapnya, lihat topik berikut.