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.
Topik
- Memutuskan untuk menggunakan kebijakan kalengan atau kustom untuk cookie yang ditandatangani
- Cara kerja cookie yang ditandatangani
- Mencegah penyalahgunaan cookie yang ditandatangani
- Saat CloudFront memeriksa tanggal dan waktu kedaluwarsa dalam cookie yang ditandatangani
- Kode sampel dan alat pihak ketiga
- Tetapkan cookie yang ditandatangani menggunakan kebijakan kalengan
- Tetapkan cookie yang ditandatangani menggunakan kebijakan khusus
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 |
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.
-
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.
-
Anda mengembangkan aplikasi untuk menentukan apakah pengguna harus memiliki akses ke konten Anda dan, jika demikian, untuk mengirim tiga
Set-Cookie
judul ke penampil. (SetiapSet-Cookie
header hanya dapat berisi satu pasangan nama-nilai, dan cookie yang CloudFront ditandatangani memerlukan tiga pasangan nama-nilai.) Anda harus mengirim headerSet-Cookie
ke penampil sebelum penonton meminta konten privat Anda. Jika Anda mengatur waktu kedaluwarsa singkat pada cookie, Anda mungkin juga ingin mengirim tiga lagiSet-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.
-
Pengguna masuk ke situs web Anda dan membayar konten atau memenuhi beberapa persyaratan lain untuk akses.
-
Aplikasi Anda mengembalikan
Set-Cookie
judul di respons, dan penampil menyimpan pasangan nilai. -
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. -
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.
Mencegah penyalahgunaan cookie yang ditandatangani
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
danMax-Age
sehinggaSet-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.
Saat CloudFront memeriksa tanggal dan waktu kedaluwarsa dalam cookie yang ditandatangani
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.