Ringkasan kunci

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 maksimal tiga kunci publik dan tiga kunci bersama validasi, dengan total enam kunci per kumpulan kunci.

Anda juga dapat menghapus kunci yang tidak digunakan dari kumpulan kunci. Menambahkan dan menghapus kunci biasanya disebut rotasi rahasia. Rotasi secret memungkinkan Anda melakukan hal berikut:

  • Tambahkan secret baru ke kumpulan kunci dengan menambahkannya ke kumpulan kunci.
  • Buat token dengan secret yang sesuai.
  • Hapus secret lama setelah masa berlaku token terlama habis.

    Misalnya, Anda menetapkan token berdurasi singkat agar tidak berlaku lagi setelah satu jam. Kemudian, Anda akan menghapus secret terlama yang digunakan untuk token durasi singkat setelah permintaan baru melayani pengguna selama satu jam atau lebih.

Sebelum menghapus secret yang tidak digunakan, pastikan secret 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 secret tersebut. Pengguna yang terpengaruh akan menerima respons HTTP 403 Forbidden.

Untuk mengoptimalkan performa, keandalan, dan biaya akses serentak ke Secret Manager, secret kunci validasi bersama Anda akan disimpan dalam cache hingga satu jam. Cache secret dapat menyebabkan akses token berlanjut setelah secret dihapus dari Secret Manager hingga satu jam.

Sebagai praktik terbaik, rotasikan 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 kunci, penandatanganan, dan validasi tanda tangan Ed25519 dengan C++, Go, Java, dan Objective-C.

Kunci asimetris harus memiliki karakteristik berikut:

  • Dienkode dengan 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.

Apa langkah selanjutnya?