Untuk membuat permintaan bertanda tangan, tulis string yang menyertakan parameter yang jelaskan konten yang ingin Anda lindungi dan waktu habis masa berlaku nilai yang ditandatangani. Anda kemudian menyertakan string yang telah disusun dalam permintaan. Media CDN kemudian memverifikasi bahwa permintaan Anda yang ditandatangani valid sebelum mengambil tindakan berdasarkan data tersebut.
Persyaratan permintaan yang ditandatangani
Permintaan yang ditandatangani harus memenuhi persyaratan berikut:
Memiliki metode HTTP
GET
,HEAD
, atauOPTIONS
. Metode lain tidak didukung.Menetapkan waktu habis masa berlaku di masa mendatang. Karena potensi jam perbedaan sinkronisasi, serta kondisi jaringan klien (untuk Misalnya, memutuskan koneksi dan mencoba ulang), sebaiknya tetapkan stempel waktu, kurang dari satu menit pada waktu yang akan datang, atau tidak kurang dari durasi streaming video, mana saja yang lebih besar.
Memiliki tanda tangan yang dapat diverifikasi dengan kunci atau rahasia dalam
EdgeCacheKeyset
.
Anda tidak dapat menandatangani metode HTTP lainnya, seperti permintaan POST
, PUT
, atau DELETE
.
Jika Anda perlu menerbitkan URL yang ditandatangani untuk upload yang ditampilkan kepada pengguna, lihat
Dokumentasi Cloud Storage untuk URL yang ditandatangani.
Pertimbangan keamanan
Media CDN memvalidasi semua permintaan yang cocok dengan rute yang dikonfigurasi dengan
cdnPolicy.signedRequestMode
dari REQUIRE_SIGNATURES
atau REQUIRE_TOKENS
.
Tabel berikut menjelaskan skenario saat Media CDN memvalidasi permintaan:
Permintaan memiliki tanda tangan | Tanda tangan valid? | signedRequestMode | Perilaku | Response code |
---|---|---|---|---|
Tidak | T/A | REQUIRE_SIGNATURES atau REQUIRE_TOKENS |
Permintaan tanpa tanda tangan atau token diperlakukan seolah-olah tanda tangan tersebut tidak valid. | HTTP 403 |
Ya | Tidak | REQUIRE_SIGNATURES atau REQUIRE_TOKENS |
Tanda tangan atau token dianggap tidak valid jika telah kedaluwarsa atau memiliki URL tidak cocok atau kunci salah. Tanda tangan atau token yang tidak valid ditolak di edge CDN. | HTTP 403 |
Ya | Ya | REQUIRE_SIGNATURES atau REQUIRE_TOKENS |
Validasi tanda tangan atau token dan respons dengan konten dari atau pengambilan dari origin. | HTTP 200 |
Ya | Ya | Tidak ada atau DISABLED |
Tidak ada validasi yang dilakukan, dan respons disajikan kepada pengguna secara langsung. | HTTP 200 |
Ya | Tidak | Tidak ada atau DISABLED |
Tidak ada validasi yang dilakukan, dan respons disajikan kepada pengguna secara langsung. | HTTP 200 |
Bila aplikasi mendeteksi tanda tangan yang tidak valid, pastikan bahwa
aplikasi merespons dengan kode respons HTTP 403 (Forbidden)
.
Kode respons HTTP 403
tidak dapat di-cache.
Mengonfigurasi permintaan yang ditandatangani
Bagian berikut menjelaskan cara mengonfigurasi, menandatangani, dan memvalidasi data bertanda tangan permintaan.
Buat kunci
Buat kunci yang digunakan Media CDN untuk menandatangani permintaan.
Membuat keyset
Buat keyset yang digunakan Media CDN untuk permintaan yang ditandatangani.
Mewajibkan permintaan yang ditandatangani
Untuk mengizinkan hanya permintaan yang ditandatangani untuk mengakses resource, Anda dapat melampirkan
daftar kunci ke rute dan tetapkan signedRequestMode
ke salah satu opsi berikut:
REQUIRE_SIGNATURES
untuk permintaan bertanda tangan yang tidak menggunakan token.REQUIRE_TOKENS
untuk permintaan yang ditandatangani menggunakan token.
Mengaktifkan permintaan yang ditandatangani pada rute mengharuskan semua permintaan ditandatangani atau menampilkan token. Permintaan tanpa tanda tangan yang valid (misalnya kunci yang tidak valid nama, tanda tangan atau token kedaluwarsa, tanda tangan tidak cocok, dan sebagainya), gagal.
EdgeCacheKeyset
dapat berisi beberapa kunci untuk memungkinkan kunci
kunci. Permintaan valid yang ditandatangani dengan kunci yang tercantum diterima, dan kunci
dicoba secara berurutan. Untuk mengetahui informasi selengkapnya tentang rotasi kunci, lihat Memutar
secret.
Jika signedRequestMode
ditetapkan ke REQUIRE_SIGNATURES
atau REQUIRE_TOKENS
,
Media CDN memvalidasi cache ditemukan dan cache tidak ditemukan. Hal ini mencakup semua
terhadap origin.
Berikut adalah contoh konfigurasi Media CDN yang menerapkan permintaan bertanda tangan pada PathMatcher (rute tertentu):
gcloud edge-cache services describe prod-media-service
... routeAction: cdnPolicy: cacheMode: CACHE_ALL_STATIC signedRequestMode: REQUIRE_SIGNATURES signedRequestKeyset: prod-vod-keyset
Guna mengetahui informasi tentang cara membuat token untuk permintaan yang ditandatangani, lihat Membuat token.
Untuk menonaktifkan penandatanganan permintaan, Anda dapat menyetel signedRequestMode
ke DISABLED
dan menghapus referensi ke signedRequestKeyset
.
Memvalidasi permintaan di asal
Jika rute dikonfigurasi dengan mode penandatanganan REQUIRE_SIGNATURES
,
Media CDN memvalidasi bahwa setiap permintaan yang cocok memiliki
tanda tangan. Tidak adanya tanda tangan dianggap sebagai tanda tangan yang tidak valid untuk
rute perjalanan.
Untuk mencegah kasus kesalahan konfigurasi penandatanganan, dan ketika pengguna mencoba mengakses origin Anda secara langsung, sebaiknya memvalidasi bahwa permintaan juga ditandatangani di tempat asal. Pertahanan mendalam Pendekatan terhadap perlindungan konten membantu mencegah akses dan download yang tidak sah konten berlisensi dan berbayar Anda.
Untuk metode penandatanganan berbasis URL, dengan tanda tangan sebagai bagian dari kueri
parameter khusus atau disematkan sebagai komponen jalur URL, tanda tangan dan
parameter dihapus dari URL sebelum permintaan dikirim ke
tempat asal. Hal ini mencegah tanda tangan
menyebabkan masalah perutean saat
origin akan menangani permintaan. Untuk memvalidasi permintaan ini, Anda dapat memeriksa
Header permintaan x-client-request-url
, yang menyertakan header asli (ditandatangani)
URL permintaan klien sebelum penghapusan komponen yang ditandatangani.
Untuk memvalidasi permintaan di asal, gunakan kode validasi yang sama sebagai bagian dari endpoint penandatanganan permintaan Anda, yang juga membantu mengurangi ketidakcocokan kunci dan karena rotasi kunci.
Merotasi kunci
Sebagai praktik terbaik, putar atau perbarui rahasia yang digunakan oleh Media CDN secara rutin. Sebaiknya putar tombol setiap 30 hingga 60 hari, tetapi hal ini tidak wajib dilakukan.
Langkah selanjutnya
Untuk membaca lebih lanjut cara mengaktifkan dan mengakses Media CDN log, termasuk cara memfilter dan membuat kueri di seluruh log Anda, lihat Logging.
Untuk mengonfigurasi Media CDN dan bucket Cloud Storage pribadi, lihat Perlindungan dan konektivitas origin.