0Pricing
Cloud & IT Cert Prep · Pelajaran

URL Bertanda Tangan, Cookie Bertanda Tangan, dan Pembatasan Geografis

Batasi akses ke konten premium menggunakan URL dan cookie bertanda tangan, serta blokir pengguna dari negara tertentu dengan pembatasan geografis.

URL Bertanda Tangan, Cookie Bertanda Tangan, dan Pembatasan Geografis adalah pelajaran Cloud & IT Cert Prep gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Cloud & IT Cert Prep, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cloud & IT Cert Prep mencakup 4 pelajaran total.

Membatasi Akses Konten CloudFront

Secara default, CloudFront menyajikan konten kepada viewer mana pun yang mengetahui URL-nya. Untuk konten premium atau privat—kursus video, unduhan perangkat lunak berbayar, sumber daya khusus anggota—Anda perlu membatasi akses agar hanya pengguna yang berwenang yang dapat mengambilnya.

CloudFront menyediakan dua mekanisme untuk akses terotorisasi: URL Bertanda Tangan (satu URL memberikan akses ke satu objek tertentu) dan Cookie Bertanda Tangan (sekumpulan cookie memberikan akses ke beberapa objek yang cocok dengan pola jalur). Keduanya menggunakan tanda tangan kriptografis yang dibuat dengan pasangan kunci RSA.

URL Bertanda Tangan CloudFront

URL bertanda tangan adalah URL CloudFront yang menyertakan tanda tangan kriptografis yang mengodekan waktu kedaluwarsa dan, secara opsional, pembatasan alamat IP. URL tersebut hanya valid sampai waktu kedaluwarsanya dan hanya dapat digunakan dari IP yang diizinkan (jika ditentukan). Setelah kedaluwarsa, CloudFront mengembalikan 403 Forbidden.

URL bertanda tangan paling sesuai untuk: memberikan akses kepada satu pengguna ke satu berkas tertentu (misalnya laporan PDF yang dibuat secara dinamis), tautan unduhan dengan batas waktu, atau saat klien tidak dapat mengatur cookie (misalnya aplikasi seluler atau streaming RTMP).

# Generate a signed URL using AWS CLI (requires a CloudFront key pair)
aws cloudfront sign \
  --url https://d1234abcdef.cloudfront.net/premium/video.mp4 \
  --key-pair-id APKA1234567890 \
  --private-key file://private-key.pem \
  --date-less-than 2026-06-21T00:00:00Z

Cookie Bertanda Tangan CloudFront

Cookie bertanda tangan bekerja mirip dengan URL bertanda tangan, tetapi memberikan akses ke beberapa berkas tanpa mengubah setiap URL. Setelah autentikasi berhasil, server Anda membuat tiga cookie (CloudFront-Policy, CloudFront-Signature, CloudFront-Key-Pair-Id) dan mengaturnya dalam respons peramban. Permintaan CloudFront berikutnya dari peramban tersebut menyertakan cookie itu, sehingga memberikan akses ke semua konten yang cocok.

Cookie bertanda tangan paling sesuai untuk: memberikan akses kepada pengguna yang sudah masuk ke seluruh bagian premium (misalnya semua video di /members/*), atau saat Anda tidak dapat mengendalikan format URL setiap sumber daya individual.

Grup Kunci Tepercaya

Untuk membuat tanda tangan CloudFront, Anda memerlukan pasangan kunci CloudFront. Pendekatan modern menggunakan Grup Kunci Tepercaya: buat pasangan kunci RSA, unggah kunci publik ke CloudFront, tambahkan kunci tersebut ke grup kunci, lalu kaitkan grup kunci dengan perilaku cache yang memerlukan akses bertanda tangan.

Kunci privat disimpan dengan aman (misalnya di Secrets Manager) pada server penanda tangan Anda. Saat pengguna melakukan autentikasi, server menggunakan kunci privat untuk menandatangani URL atau kebijakan cookie. CloudFront memvalidasi tanda tangan menggunakan kunci publik yang sesuai dalam grup kunci tepercaya.

# Upload a public key to CloudFront
aws cloudfront create-public-key \
  --public-key-config '{
    "Name": "MySigningKey",
    "EncodedKey": "-----BEGIN PUBLIC KEY-----\n...<key>...\n-----END PUBLIC KEY-----",
    "CallerReference": "2026-06-20-key"
  }'

Kebijakan URL Bertanda Tangan Bawaan vs Kustom

URL bertanda tangan dapat menggunakan salah satu dari dua jenis kebijakan:

  • Kebijakan bawaan: bentuk paling sederhana—hanya menentukan URL sumber daya dan waktu kedaluwarsa. Tanda tangannya ringkas dan mudah dibuat.
  • Kebijakan kustom: lebih fleksibel—menentukan URL sumber daya dengan karakter pengganti opsional (https://d123.cloudfront.net/videos/*), waktu mulai opsional (tidak boleh digunakan sebelum waktu ini), dan, secara opsional, pembatasan alamat IP. JSON kebijakan dikodekan dalam Base64 pada URL.

Gunakan kebijakan bawaan untuk tautan sederhana ke satu berkas; gunakan kebijakan kustom saat Anda memerlukan pencocokan sumber daya dengan karakter pengganti atau pembatasan berbasis IP.

Pembatasan Geografis CloudFront

Pembatasan geografis (juga disebut pembatasan berdasarkan wilayah) memblokir atau mengizinkan CloudFront menyajikan konten berdasarkan negara pemirsa. CloudFront menentukan negara pemirsa dari alamat IP mereka menggunakan basis data geolokasi pihak ketiga.

Anda mengonfigurasi pembatasan geografis per distribusi sebagai daftar izin (hanya negara yang tercantum yang dapat mengakses konten) atau daftar blokir (negara yang tercantum diblokir). Pengguna di negara yang dibatasi menerima respons HTTP 403. Pembatasan geografis adalah alat yang cukup kasar—penerapannya mencakup seluruh distribusi, bukan jalur individual.

# Enable geo-restriction: block two countries
aws cloudfront update-distribution \
  --id EDFDVBD6EXAMPLE \
  --distribution-config '{
    ...existing config...
    "Restrictions": {
      "GeoRestriction": {
        "RestrictionType": "blacklist",
        "Quantity": 2,
        "Items": ["CN", "RU"]
      }
    }
  }' \
  --if-match ETVPDKIKX0DER

Pembatasan Geografis vs Geolokasi Route 53

Pembatasan geografis CloudFront dan perutean geolokasi Route 53 sama-sama menggunakan informasi geografis, tetapi memiliki tujuan yang berbeda:

  • Pembatasan geografis CloudFront: memblokir atau mengizinkan penyajian di edge suatu konten pada lapisan CDN—mengembalikan 403 kepada negara yang diblokir; diterapkan per distribusi
  • Geolokasi Route 53: merutekan kueri DNS ke endpoint yang berbeda (server atau halaman yang berbeda) berdasarkan lokasi geografis—tidak memblokir akses, tetapi mengarahkan ke konten atau infrastruktur yang berbeda

Gunakan pembatasan geografis CloudFront untuk pengendalian akses (memblokir seluruh negara). Gunakan geolokasi Route 53 untuk mengarahkan pengguna ke konten atau infrastruktur yang sesuai dengan wilayah mereka.

Menggabungkan URL Bertanda Tangan dengan S3 dan OAC

Arsitektur lengkap untuk pengiriman konten privat:

  1. Bucket S3 bersifat privat (tidak ada akses publik)
  2. CloudFront menggunakan OAC sehingga hanya distribusi yang dapat membaca dari S3
  3. Perilaku cache untuk konten privat memerlukan URL atau cookie bertanda tangan (Grup Kunci Tepercaya yang telah dikaitkan)
  4. Server aplikasi Anda mengautentikasi pengguna dan menerbitkan URL/cookie bertanda tangan
  5. Pengguna mengakses konten hanya melalui URL CloudFront bertanda tangan dengan batas waktu

Meskipun pengguna menebak atau membagikan URL S3, akses tetap diblokir. Meskipun mereka membagikan URL CloudFront, URL tersebut akan kedaluwarsa setelah waktu yang dikonfigurasi. Pendekatan berlapis ini memberikan perlindungan berlapis untuk konten digital.

Enkripsi Tingkat Bidang

Enkripsi tingkat bidang adalah fitur CloudFront tingkat lanjut yang memungkinkan bidang data sensitif dalam permintaan HTTP POST dienkripsi di edge sebelum diteruskan ke asal. Meskipun server asal disusupi, bidang yang dienkripsi (misalnya nomor kartu kredit dan SSN) tetap tidak dapat dibaca tanpa kunci privat yang sesuai.

CloudFront mengenkripsi bidang yang ditentukan menggunakan kunci publik di edge. Hanya layanan backend yang dituju dan memiliki kunci privat yang sesuai yang dapat mendekripsi data tersebut. Enkripsi tingkat bidang menambahkan lapisan perlindungan dalam pipeline yang sudah diamankan dengan TLS.

Pola Pengendalian Akses Berbasis Token

Untuk aplikasi dinamis yang memerlukan pengendalian akses terperinci selain pemblokiran berdasarkan negara, pola yang umum adalah akses berbasis token menggunakan Lambda@Edge:

  1. Pengguna melakukan autentikasi dengan Cognito atau layanan autentikasi Anda dan menerima JWT
  2. Pengguna menyertakan JWT sebagai parameter kueri atau cookie pada permintaan CloudFront
  3. Fungsi Lambda@Edge Viewer-Request memvalidasi tanda tangan dan klaim JWT
  4. Jika valid, Lambda@Edge meneruskan permintaan ke asal; jika tidak valid, fungsi mengembalikan 401

Hal ini memberikan pengendalian akses yang terperinci untuk setiap pengguna dan sumber daya, sepenuhnya di edge CloudFront, tanpa menjangkau asal untuk permintaan yang tidak sah.

Ringkasan Kasus Penggunaan di Dunia Nyata

Pola skenario ujian untuk URL/cookie bertanda tangan dan pembatasan geografis:

  • 'Tautan unduhan dengan batas waktu untuk berkas yang dibeli' → URL bertanda tangan dengan waktu kedaluwarsa
  • 'Pengguna premium yang sudah masuk mengakses semua video di /premium/*' → Cookie bertanda tangan dengan kebijakan karakter pengganti
  • 'Memblokir akses bagi pengguna di negara tertentu karena lisensi' → Daftar blokir pembatasan geografis CloudFront
  • 'Menyajikan konten yang berbeda kepada negara yang berbeda' → Geolokasi Route 53 + beberapa distribusi atau asal
  • 'Melindungi bidang kartu kredit bahkan dari administrator asal' → Enkripsi tingkat bidang

Pemeriksaan Singkat

Uji pemahaman Anda tentang konsep AWS Solutions Architect (SAA-C03) dari pelajaran ini.

Rangkuman Pelajaran

Dalam pelajaran ini, Anda mempelajari bahwa URL bertanda tangan membatasi akses ke berkas individual dengan waktu kedaluwarsa dan pembatasan IP opsional, cookie bertanda tangan memberikan akses ke beberapa berkas yang cocok dengan pola jalur dalam satu sesi terautentikasi, dan pembatasan geografis memblokir atau mengizinkan seluruh negara pada tingkat distribusi CloudFront. Selanjutnya, kita akan membahas CloudFront dengan WAF dan Lambda@Edge.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “URL Bertanda Tangan, Cookie Bertanda Tangan, dan Pembatasan Geografis” gratis?

Ya — teks lengkap “URL Bertanda Tangan, Cookie Bertanda Tangan, dan Pembatasan Geografis” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cloud & IT Cert Prep, upgrade ke CoddyKit PRO. Kursus Cloud & IT Cert Prep mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “URL Bertanda Tangan, Cookie Bertanda Tangan, dan Pembatasan Geografis”?

Batasi akses ke konten premium menggunakan URL dan cookie bertanda tangan, serta blokir pengguna dari negara tertentu dengan pembatasan geografis. Kamu berlatih Cloud & IT Cert Prep dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Cloud & IT Cert Prep?

Tidak diperlukan pengalaman sebelumnya. Cloud & IT Cert Prep di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “URL Bertanda Tangan, Cookie Bertanda Tangan, dan Pembatasan Geografis” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Cloud & IT Cert Prep ini?

Ya. Setiap pelajaran Cloud & IT Cert Prep menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Distribusi dan Asal CloudFront
  2. Perilaku Tembolok dan Pengaturan TTL
  3. URL Bertanda Tangan, Cookie Bertanda Tangan, dan Pembatasan Geografis
  4. CloudFront dengan WAF dan Lambda@Edge
← Kembali ke Cloud & IT Cert Prep