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 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: Amankan koleksi dan dokumen berdasarkan logika aplikasi Anda.
  • Cloud Storage for Firebase: Memvalidasi izin akses untuk file tersimpan Anda.

Menggunakan perintah ini dapat membantu Anda memulai dengan postur keamanan yang kuat, tetapi Anda harus selalu menguji Rules secara menyeluruh sebelum men-deploy ke produksi. Untuk mengetahui informasi selengkapnya tentang pengujian Rules, tinjau artikel Mulai menggunakan Firebase Security Rules: Menguji aturan Anda.

Prasyarat

  • Pahami praktik terbaik Aturan Keamanan.
  • Untuk menjalankan pengujian unit untuk Firebase Security Rules dan menggunakan Firebase Local Emulator Suite, instal Node.js dan CLI Firebase. Untuk mendapatkan petunjuk lengkapnya, lihat Menginstal, mengonfigurasi, dan mengintegrasikan Local Emulator Suite.
  • Direkomendasikan: Jika Anda belum melakukannya, instal Gemini CLI. Petunjuk berikut menjelaskan cara menginstal dan menggunakan ekstensi Gemini CLI untuk membuat Rules; jika Anda lebih suka menggunakan asisten AI lain, Anda dapat menyalin dan menempelkan perintah dari repositori ke asisten AI pilihan Anda.
  • Ekstensi Gemini CLI ini menggunakan server Firebase MCP untuk memvalidasi Firebase Security Rules yang dihasilkannya. Server MCP juga dapat digunakan untuk mempermudah pengujian dan deployment Rules Anda. Instal server Firebase MCP sebelum menggunakan ekstensi untuk membuat Firebase Security Rules.

Keterbatasan

Kami terus berupaya meningkatkan kualitas pengalaman ini, sehingga daftar batasan ini dapat berubah. Sering-seringlah mengecek halaman ini untuk mengetahui informasi terbaru.

  • Gemini di Firebase tidak dapat membuat Firebase Security Rules. Menggunakan asisten AI alternatif, seperti Gemini CLI.
  • Perintah ini dirancang untuk menghasilkan Firebase Security Rules untuk Cloud Firestore dan Cloud Storage for Firebase. Model 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 guna 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. 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 untuk 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 bersama dengan project Node.js dengan pengujian unit.

  2. Meninjau validasi aturan dan hasil pengujian:

    • Validasi sintaksis - Setelah membuat aturan, Gemini CLI secara otomatis memvalidasi sintaksis menggunakan perintah firebase_validate_security_rules dari server MCP Firebase.
    • 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 tambahan

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