Media CDN menggunakan pasangan kunci kriptografis saat menandatangani permintaan. Media CDN menggunakan keyset untuk menyimpan pasangan kunci yang secara aktif digunakan untuk menandatangani permintaan. Anda dapat memiliki hingga tiga kunci publik dan tiga kunci bersama validasi, dengan total enam kunci per keyset.
Anda juga dapat menghapus kunci yang tidak digunakan dari keyset. Penambahan dan penghapusan kunci biasanya disebut rotasi rahasia. Rotasi secret memungkinkan Anda melakukan hal berikut:
- Secara aman menambahkan secret baru ke keyset dengan menambahkannya ke keyset.
- Membuat token dengan rahasia yang sesuai.
Hapus secret lama setelah masa berlaku token terlama yang memungkinkan.
Misalnya, Anda menetapkan token berdurasi singkat agar habis masa berlakunya setelah satu jam. Kemudian, Anda harus menghapus rahasia terlama yang digunakan untuk token berdurasi singkat setelah permintaan baru ditayangkan kepada pengguna selama satu atau beberapa jam.
Sebelum menghapus rahasia yang tidak digunakan, pastikan rahasia tersebut tidak direferensikan atau diambil untuk
menandatangani permintaan pengguna di server aplikasi Anda. Menghapus secret dari keyset sebelum waktunya akan mencegah Media CDN memvalidasi permintaan yang terkait dengan rahasia tersebut. Pengguna yang terpengaruh akan menerima respons HTTP 403
Forbidden
.
Untuk mengoptimalkan performa, keandalan, dan biaya akses simultan ke Secret Manager, rahasia kunci validasi bersama Anda akan disimpan dalam cache hingga satu jam. Cache secret dapat mengakibatkan akses token berkelanjutan setelah secret dihapus dari Secret Manager hingga satu jam.
Sebagai praktik terbaik, ganti kunci secara rutin.
Batasan umum
Media CDN menolak permintaan yang ditandatangani dengan tanda tangan simetris yang digunakan oleh Cloud CDN dengan respons HTTP 403
.
Media CDN saat ini mendukung kunci simetris dengan permintaan yang menggunakan format token dan kunci yang dirujuk oleh Media CDN.
Kunci asimetris harus dibuat sebagai pasangan Ed25519, dengan kunci pribadi 512-bit (64-byte), dan kunci publik 256-bit (32-byte). Library Tink memiliki dukungan untuk pembuatan, penandatanganan, dan validasi tanda tangan Ed25519 dengan C++, Go, Java, dan Objective-C.
Kunci asimetris harus memiliki karakteristik berikut:
Berenkode base64 dengan panjang 44 byte (dengan padding) atau 43 byte (tanpa padding). Bentuk base64 dengan padding dan tanpa padding diterima.
Kunci publik harus dienkode dalam format base64 yang aman untuk URL. Kunci pribadi dapat dienkode dalam format base64 standar.
Memiliki kunci pribadi yang cocok.