Untuk membuat permintaan yang ditandatangani, buat string yang menyertakan parameter yang menjelaskan konten yang ingin Anda lindungi dan waktu habis masa berlaku nilai yang ditandatangani. Kemudian, Anda menyertakan string yang disusun dalam permintaan. Media CDN kemudian memverifikasi bahwa permintaan yang ditandatangani valid sebelum menindaklanjutinya.
Persyaratan permintaan yang ditandatangani
Permintaan yang ditandatangani harus memenuhi persyaratan berikut:
Memiliki metode HTTP
GET
,HEAD
, atauOPTIONS
. Metode lain tidak didukung.Memiliki waktu habis masa berlaku yang ditetapkan di masa mendatang. Karena potensi perbedaan sinkronisasi jam, serta kondisi jaringan klien (misalnya, putus dan percobaan ulang), sebaiknya tetapkan stempel waktu tidak kurang dari satu menit ke depan, atau tidak kurang dari durasi streaming video, mana saja yang lebih besar.
Memiliki tanda tangan yang dapat diverifikasi oleh kunci atau rahasia di
EdgeCacheKeyset
.
Anda tidak dapat menandatangani metode HTTP lain, 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.
Mengonfigurasi permintaan yang ditandatangani
Bagian berikut menjelaskan cara mengonfigurasi, menandatangani, dan memvalidasi permintaan yang ditandatangani.
Membuat kunci
Buat kunci yang digunakan Media CDN untuk menandatangani permintaan.
Membuat keyset
Buat keyset yang digunakan Media CDN untuk permintaan yang ditandatangani.
Memerlukan permintaan yang ditandatangani
Untuk mengizinkan hanya permintaan yang ditandatangani untuk mengakses resource, Anda dapat melampirkan
daftar kunci ke rute dan menetapkan signedRequestMode
ke salah satu dari hal berikut:
REQUIRE_SIGNATURES
untuk permintaan yang ditandatangani yang tidak menggunakan token.REQUIRE_TOKENS
untuk permintaan yang ditandatangani menggunakan token.
Mengaktifkan permintaan yang ditandatangani di rute akan mewajibkan semua permintaan ditandatangani atau menampilkan token. Permintaan tanpa tanda tangan yang valid (seperti nama kunci yang tidak valid, tanda tangan atau token yang sudah tidak berlaku, tanda tangan yang tidak cocok, dan sebagainya), akan gagal.
EdgeCacheKeyset
dapat berisi beberapa kunci untuk memungkinkan rotasi
kunci. Permintaan valid yang ditandatangani dengan kunci yang tercantum akan diterima, dan kunci
akan dicoba secara berurutan. Untuk mengetahui informasi selengkapnya tentang rotasi kunci, lihat Memutar secret.
Jika signedRequestMode
disetel ke REQUIRE_SIGNATURES
atau REQUIRE_TOKENS
, Media CDN akan memvalidasi hit dan miss cache. Hal ini mencakup semua
permintaan ke origin.
Berikut adalah contoh konfigurasi Media CDN yang menerapkan permintaan yang ditandatangani 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
Untuk informasi tentang cara membuat token untuk permintaan yang ditandatangani, lihat Membuat token.
Untuk menonaktifkan penandatanganan permintaan, Anda dapat menetapkan signedRequestMode
ke DISABLED
dan menghapus referensi ke signedRequestKeyset
.
Memvalidasi permintaan di origin
Saat rute dikonfigurasi dengan mode penandatanganan REQUIRE_SIGNATURES
, Media CDN akan memvalidasi bahwa setiap permintaan yang cocok memiliki tanda tangan yang valid. Tidak adanya tanda tangan diperlakukan sebagai tanda tangan yang tidak valid untuk rute
ini.
Untuk mencegah kasus saat penandatanganan salah dikonfigurasi, dan saat pengguna mencoba mengakses origin Anda secara langsung, sebaiknya Anda memvalidasi bahwa permintaan juga ditandatangani di origin. Pendekatan defense in depth untuk perlindungan konten membantu mencegah akses dan download konten berlisensi dan berbayar Anda yang tidak sah.
Untuk metode penandatanganan berbasis URL, dengan tanda tangan sebagai bagian dari parameter
kueri atau disematkan sebagai komponen jalur URL, tanda tangan dan parameter
terkait akan dihapus dari URL sebelum permintaan dikirim ke
asal. Hal ini mencegah tanda tangan menyebabkan masalah pemilihan rute saat
asal menangani permintaan. Untuk memvalidasi permintaan ini, Anda dapat memeriksa
header permintaan x-client-request-url
, yang menyertakan URL permintaan klien
asli (ditandatangani) sebelum penghapusan komponen yang ditandatangani.
Untuk memvalidasi permintaan di origin, gunakan kode validasi yang sama sebagai bagian dari endpoint penandatanganan permintaan Anda, yang juga membantu mengurangi ketidakcocokan kunci dan masalah karena rotasi kunci.
Merotasi kunci
Sebagai praktik terbaik, rotasi atau perbarui secret yang digunakan oleh Media CDN secara rutin. Sebaiknya rotasi kunci setiap 30 hingga 60 hari, tetapi hal ini tidak diwajibkan.
Langkah selanjutnya
Untuk membaca selengkapnya tentang cara mengaktifkan dan mengakses log Media CDN, termasuk cara memfilter dan membuat kueri di seluruh log, lihat Logging.
Untuk mengonfigurasi Media CDN dan bucket Cloud Storage pribadi, lihat Konektivitas dan perlindungan origin.