Tentu, ini adalah bagian pengaturan yang sangat penting untuk keamanan repositori Anda, terutama karena ini mengontrol kode dari pihak ketiga mana yang diizinkan berjalan dalam automasi Anda. Mari kita bedah setiap opsi secara mendalam.

Penjelasan: "Actions permissions"
Pengaturan ini pada dasarnya adalah "daftar tamu" untuk repositori Anda. Ia menentukan action (skrip buatan orang lain) mana yang Anda izinkan untuk masuk dan berjalan di dalam alur kerja (workflow) GitHub Actions Anda. Ini penting karena setiap action yang Anda gunakan adalah kode buatan orang lain yang berjalan di lingkungan yang memiliki akses ke kode Anda.
1. Allow all actions and reusable workflows (Izinkan semua)
Penjelasan: Ini adalah opsi paling terbuka. Repositori Anda diizinkan untuk menggunakan action apa pun dari mana pun, baik itu yang dibuat oleh GitHub, oleh perusahaan terverifikasi, atau oleh developer acak di internet.
Analogi: Anda sedang membangun rumah dan berkata pada mandor, "Pakai saja alat apa pun dari toko mana pun di seluruh dunia, saya percaya."
Risiko: Ini paling mudah, tetapi paling berisiko. Jika Anda tidak sengaja menggunakan action dari sumber yang tidak terpercaya atau jika sebuah action populer diretas, kode Anda bisa dalam bahaya. Ini disebut supply chain attack.
Status Saat Ini: Opsi ini yang sedang Anda pilih.
2. Disable actions (Nonaktifkan Actions)
Penjelasan: Opsi ini mematikan GitHub Actions sepenuhnya untuk repositori ini. Tab "Actions" akan hilang dan tidak ada workflow yang akan berjalan.
Analogi: Anda memutuskan untuk membangun rumah sendiri tanpa bantuan alat dari luar sama sekali.
Risiko: Paling aman dari intervensi pihak ketiga, tapi Anda kehilangan semua manfaat automasi.
3. Allow frijal actions and reusable workflows (Hanya izinkan dari milik sendiri)
Penjelasan: Opsi ini sangat ketat. Ia hanya mengizinkan penggunaan action yang berada di dalam repositori lain yang juga dimiliki oleh akun Anda (frijal). Semua action dari pihak ketiga (termasuk yang resmi dari GitHub seperti actions/checkout) akan diblokir.
Analogi: Anda hanya memperbolehkan mandor menggunakan alat-alat yang ada di garasi pribadi Anda.
Risiko: Sangat aman, tetapi sangat tidak praktis. Anda harus membuat ulang atau menyalin (fork) setiap action pihak ketiga yang ingin Anda gunakan ke akun Anda sendiri.
4. Allow frijal, and select non-frijal, actions... (Izinkan dari milik sendiri + daftar terpercaya)
Penjelasan: Ini adalah jalan tengah terbaik. Anda bisa mengizinkan semua action dari akun Anda sendiri, DAN Anda bisa membuat "daftar putih" berisi pembuat action pihak ketiga yang Anda percayai. Misalnya, Anda bisa menentukan bahwa hanya action yang dibuat oleh actions (resmi dari GitHub) dan cloudflare yang boleh digunakan.
Analogi: Anda berkata pada mandor, "Pakai semua alat dari garasi saya, dan kamu juga boleh membeli alat dari toko A dan toko B yang sudah saya percaya. Jangan beli dari toko lain."
Risiko: Jauh lebih aman daripada opsi pertama, sambil tetap memberikan fleksibilitas untuk menggunakan action populer dan terpercaya.
5. Require actions to be pinned to a full-length commit SHA (Wajibkan pin ke SHA)
Penjelasan: Ini adalah lapisan keamanan tambahan. Saat menggunakan action, kita biasa menentukannya dengan versi, contoh: actions/checkout@v4. Masalahnya, pembuat action bisa saja mengubah kode di balik tag v4 tersebut. Opsi ini memaksa Anda untuk menggunakan "sidik jari" unik dari versi tersebut (commit SHA), contoh: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11.
Analogi: Alih-alih memesan "pizza rasa terbaru", Anda memesan "pizza yang dibuat pada hari Selasa, jam 10:35 pagi, oleh koki Budi dengan resep nomor 5". Anda tahu persis apa yang akan Anda dapatkan, tidak akan berubah.
Risiko: Paling aman dari supply chain attack, tetapi perawatannya paling tinggi. Anda tidak akan mendapat pembaruan otomatis dan harus mengganti SHA secara manual setiap kali ingin memperbarui action.
Rekomendasi Untuk Proyek Anda
| Opsi | Fleksibilitas | Keamanan | Rekomendasi untuk Blog Pribadi |
|---|---|---|---|
| 1. Izinkan Semua | Sangat Tinggi | Rendah | Oke, tapi bukan praktik terbaik. |
| 2. Nonaktifkan | Tidak Ada | Sangat Tinggi | Tidak direkomendasikan jika butuh automasi. |
| 3. Hanya Milik Sendiri | Sangat Rendah | Sangat Tinggi | Tidak praktis. |
| 4. Izinkan & Pilih | Tinggi | Tinggi | ✅ Pilihan Terbaik |
| 5. Pin ke SHA | Rendah | Sangat Tinggi | Berlebihan (overkill), perawatannya sulit. |
Untuk keseimbangan terbaik antara kemudahan dan keamanan di proyek blog Anda, saya sangat merekomendasikan Anda untuk memilih opsi nomor 4: "Allow frijal, and select non-frijal, actions...".
Setelah memilihnya, Anda bisa menambahkan pembuat terverifikasi yang Anda gunakan, misalnya:
actions(Untuk action resmi GitHub seperti checkout, setup-node, dll.)cloudflare(Untuk action deploy ke Cloudflare Pages)- Dan kreator terpercaya lainnya yang mungkin Anda gunakan.
Untuk opsi nomor 5 (Pin ke SHA), biarkan saja tidak tercentang. Itu lebih cocok untuk proyek-proyek perusahaan dengan tingkat keamanan sangat tinggi dan kurang praktis untuk proyek pribadi.