Perintah AI: Menulis Aturan Keamanan Firebase

Perintah ini dapat membantu asisten AI Anda (seperti Gemini CLI) membuat dan menyempurnakan Firebase Security Rules untuk aplikasi Anda. Anda dapat menggunakan perintah ini untuk membuat draf Security Rules untuk kasus penggunaan umum, seperti memberikan akses khusus pengguna, menerapkan izin berbasis peran, dan memvalidasi data.

Perintah ini berfokus pada pembuatan Security Rules untuk:

  • Cloud Firestore: Mengamankan koleksi dan dokumen berdasarkan logika aplikasi Anda.
  • Cloud Storage for Firebase: Memvalidasi izin akses untuk file Anda yang tersimpan.

Perintah ini dapat digunakan untuk membantu Anda memulai dengan postur keamanan yang kuat. Namun, Anda harus selalu menguji Security Rules secara menyeluruh sebelum di-deploy ke produksi. Untuk mengetahui informasi selengkapnya tentang pengujian Security Rules, baca Mulai menggunakan Firebase Security Rules: Menguji Security Rules Anda.

Prasyarat

Batasan

Kami terus berupaya meningkatkan kualitas pengalaman ini. Oleh karena itu, daftar batasan ini dapat berubah-ubah. Periksa halaman ini secara berkala untuk mengetahui informasi terbaru.

  • Perintah ini dirancang untuk membuat Firebase Security Rules untuk Cloud Firestore dan Cloud Storage for Firebase. Perintah ini belum dapat membuat Security Rules untuk Firebase Realtime Database.

  • Firebase Security Rules tidak dipanggil saat mengakses database atau bucket dari server atau lingkungan backend lain, seperti saat menggunakan Firebase Admin SDK. Jika menggunakan Admin SDK, Anda bertanggung jawab untuk mengelola otorisasi dan validasi data dalam kode backend.

  • Gemini di Firebase dalam Firebase console tidak dapat membuat Firebase Security Rules, meskipun menggunakan perintah ini. Sebagai gantinya, gunakan asisten AI alternatif yang memiliki akses ke codebase Anda, seperti Gemini CLI (yang dijelaskan di halaman ini).

Menggunakan prompt

Perintah ini tersedia dari ekstensi Gemini CLI untuk Firebase Security Rules guna membuat Security Rules dan pengujian Anda. Ekstensi ini menganalisis kode sumber Anda untuk membantu mengidentifikasi skema data dan pola akses untuk Cloud Firestore dan Cloud Storage. Ekstensi ini dirancang untuk membuat draf Security Rules berdasarkan prinsip hak istimewa terendah dan berupaya menemukan kerentanan melalui simulasi "serangan" berulang. Untuk membantu verifikasi akhir, ekstensi ini menyediakan rangkaian pengujian unit awal menggunakan @firebase/rules-unit-testing sehingga Anda dapat memverifikasi logika keamanan secara lokal menggunakan Firebase Local Emulator Suite.

Penggunaan ekstensi ini memerlukan tiga langkah yang dijelaskan di bagian ini:

  1. Membuat Security Rules dan pengujian Anda.

  2. Meninjau validasi dan hasil pengujian Security Rules.

  3. Men-deploy Security Rules ke project Firebase Anda.

Langkah 1: Membuat Security Rules dan pengujian

Instal dan jalankan ekstensi:

  1. Instal ekstensi Gemini CLI:

    gemini extensions install https://github.com/firebase/snippets-rules
  2. Mulai Gemini CLI:

    gemini
  3. Dari root project Anda, jalankan ekstensi untuk membuat Security Rules untuk Cloud Firestore atau Cloud Storage:

    • Buat Security Rules untuk Cloud Firestore:

      /firebase-rules:firestore Generate Firebase Security Rules using PROJECT ID PROJECT_ID

      Di direktori induk, ekstensi membuat file firestore.rules dan direktori rules_test baru yang berisi project Node.js dengan pengujian unit untuk Security Rules yang dihasilkan.

    • Buat Security Rules untuk Cloud Storage for Firebase:

      /firebase-rules:storage Generate Firebase Security Rules using PROJECT ID PROJECT_ID and BUCKET NAME BUCKET_NAME

      Di direktori induk, ekstensi membuat file storage.rules dan direktori storage_rules_test baru yang berisi project Node.js dengan pengujian unit untuk Security Rules yang dihasilkan.

Langkah 2: Meninjau validasi dan hasil pengujian Security Rules

  1. Pastikan asisten AI Anda melakukan hal berikut. Setelah ekstensi berjalan, Anda akan mendapatkan ringkasan yang dibuat.

    • Validasi sintaksis: Setelah membuat Security Rules, Gemini CLI akan otomatis memvalidasi sintaksis menggunakan perintah firebase_validate_security_rules dari server Firebase MCP.

    • Pengujian unit: Setelah memvalidasi sintaksis, Gemini CLI akan mencoba menjalankan pengujian unit yang dihasilkan menggunakan Firebase Local Emulator Suite.

  2. Jika pengujian tidak berjalan otomatis, mulai Firebase Local Emulator Suite di terminal terpisah, lalu gunakan salah satu opsi berikut untuk menjalankan pengujian:

    • Opsi 1: Instruksikan Gemini CLI untuk menjalankan pengujian:

      Firebase Emulator Suite is running in a separate terminal. Please execute the tests.
      
    • Opsi 2: Jalankan pengujian secara manual dengan mengikuti petunjuk dalam file README.md di direktori rules_test atau storage_rules_test.

Langkah 3: Men-deploy Security Rules ke project Firebase Anda

Jika Anda sudah puas dengan Security Rules yang dihasilkan, gunakan perintah Firebase CLI berikut untuk men-deploy Security Rules ke project Firebase Anda:

  • Cloud Firestore

    firebase deploy --only firestore:rules
  • Cloud Storage for Firebase

    firebase deploy --only storage

Referensi lainnya

  • Untuk mendapatkan bantuan tambahan terkait postur keamanan, Anda juga dapat menggunakan ekstensi keamanan untuk Gemini CLI, yakni ekstensi open source yang menganalisis perubahan kode guna mengidentifikasi risiko dan kerentanan keamanan.