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 Rules untuk kasus penggunaan umum, seperti memberikan akses khusus pengguna, menerapkan izin berbasis peran, dan memvalidasi data.

Perintah ini berfokus pada pembuatan 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 Rules secara menyeluruh sebelum di-deploy ke produksi. Untuk mengetahui informasi selengkapnya tentang pengujian Rules, baca Mulai menggunakan Firebase Security Rules: Menguji aturan 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.

  • Gemini di Firebase tidak dapat membuat Firebase Security Rules. Gunakan asisten AI alternatif, seperti Gemini CLI.
  • Perintah ini dirancang untuk membuat Firebase Security Rules untuk Cloud Firestore dan Cloud Storage for Firebase. Perintah ini belum dapat membuat 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.

Menggunakan prompt

  1. Gunakan ekstensi Gemini CLI eksperimental untuk Firebase Security Rules dalam membuat aturan 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 Rules berdasarkan prinsip hak istimewa terendah dan berupaya menemukan kerentanan melalui simulasi "serangan" berulang. Untuk membantu verifikasi akhir, alat ini menyediakan rangkaian pengujian unit awal menggunakan @firebase/rules-unit-testing sehingga Anda dapat memverifikasi logika keamanan secara lokal menggunakan Firebase Local Emulator Suite.

    Untuk menginstal dan menggunakan ekstensi:

    1. Instal ekstensi Gemini CLI:

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

      gemini
      
    1. Dari root project Anda, jalankan ekstensi guna membuat aturan untuk Cloud Firestore:

      /firebase-rules:firestore Generate rules using PROJECT ID PROJECT_ID
      

      Atau, buat aturan untuk Cloud Storage:

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

    Ekstensi membuat direktori rules_test untuk Cloud Firestore atau direktori storage_rules_test untuk Cloud Storage di root project Anda. Direktori baru ini berisi file .rules yang dihasilkan serta project Node.js dengan pengujian unit.

  2. Tinjau validasi aturan dan hasil pengujian:

    • Validasi sintaksis - Setelah membuat aturan, Gemini CLI akan secara 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. Agar pengujian dapat berjalan, Anda perlu menjalankan Firebase Local Emulator Suite di terminal terpisah.

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

    *   Instruct Gemini CLI to run tests:
        ```none
        Firebase Emulator Suite is running in a separate terminal. Please
        execute the tests.
        ```
    *   Run tests manually by following the instructions in the `README.md`
        file in the `rules_test` or `storage_rules_test` directory.
    
  3. Jika Anda sudah puas dengan hasil Rules yang dihasilkan, gunakan perintah Firebase CLI berikut untuk men-deploy Rules.

    Cloud Firestore

    firebase deploy --only firestore:rules

    Cloud Storage

    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.