AI プロンプト: Firebase セキュリティ ルールを作成する

このプロンプトは、Gemini CLI などの AI アシスタントがアプリの Firebase Security Rules を生成して調整するのに役立ちます。このプロンプトを使用すると、ユーザー固有のアクセス権の付与、ロールベースの権限の実装、データの検証などの一般的なユースケースの Rules を作成できます。

このプロンプトは、次の Rules の生成に焦点を当てています。

  • Cloud Firestore: アプリのロジックに基づいてコレクションとドキュメントを保護します。
  • Cloud Storage for Firebase: 保存されたファイルのアクセス権を検証します。

このプロンプトを使用すると、強力なセキュリティ ポスチャーを簡単に設定できますが、本番環境にデプロイする前に、必ず Rules を十分にテストしてください。Rules のテストについて詳しくは、Firebase Security Rules の使用を開始する: ルールをテストするをご覧ください。

前提条件

  • セキュリティ ルールのベスト プラクティスについて理解を深めます。
  • Firebase Security Rules の単体テストを実行して Firebase Local Emulator Suite を使用するには、Node.js をインストールして Firebase CLI をインストールします。詳しい手順については、Local Emulator Suite のインストール、構成、統合をご覧ください。
  • 推奨: Gemini CLI をまだインストールしていない場合は、インストールします。次の手順では、Gemini CLI 拡張機能をインストールして Rules を生成する方法について説明します。別の AI アシスタントを使用する場合は、リポジトリから選択した AI アシスタントにプロンプトをコピーして貼り付けることができます。
  • この Gemini CLI 拡張機能は、Firebase MCP サーバーを使用して、生成された Firebase Security Rules を検証します。MCP サーバーは、Rules のテストとデプロイを容易にするためにも使用できます。拡張機能を使用して Firebase Security Rules を生成する前に、Firebase MCP サーバーをインストールします。

制限事項

Google はこのエクスペリエンスの改善に積極的に取り組んでおり、この制限事項のリストは変更される可能性があります。更新されていないか、定期的に確認してください。

  • Gemini in FirebaseFirebase Security Rules を生成できません。Gemini CLI などの別の AI アシスタントを使用します。
  • このプロンプトは、Cloud FirestoreCloud Storage for FirebaseFirebase Security Rules を生成するように設計されています。Firebase Realtime DatabaseRules を生成することはまだできません。
  • Firebase Admin SDK を使用する場合など、サーバーやその他のバックエンド環境からデータベースやバケットにアクセスする際には、Firebase Security Rules は呼び出されません。Admin SDK を使用している場合は、バックエンド コードで承認とデータ検証を管理する必要があります。

プロンプトを使用する

  1. Firebase Security Rules試験運用版の Gemini CLI 拡張機能を使用して、ルールとテストを生成します。

    この拡張機能は、ソースコードを分析して、Cloud FirestoreCloud Storage のデータ スキーマとアクセス パターンを特定します。最小権限の原則に基づいて Rules を作成し、反復的な「攻撃」シミュレーションを通じて脆弱性を検出するように設計されています。最終的な検証を支援するため、@firebase/rules-unit-testing を使用した単体テスト スイートの開始を提供します。これにより、Firebase Local Emulator Suite を使用してセキュリティ ロジックをローカルで検証できます。

    拡張機能をインストールして使用するには:

    1. Gemini CLI 拡張機能をインストールします。

      gemini extensions install https://github.com/firebase/snippets-rules
      
    2. Gemini CLI を開きます。

      gemini
      
    1. プロジェクトのルートから拡張機能を実行して、Cloud Firestore のルールを生成します。

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

      または、Cloud Storage のルールを生成します。

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

    拡張機能により、プロジェクトのルートに Cloud Firestore の場合は rules_test ディレクトリ、Cloud Storage の場合は storage_rules_test ディレクトリが作成されます。この新しいディレクトリには、生成された .rules ファイルと、単体テストを含む Node.js プロジェクトが含まれています。

  2. ルールの検証とテストの結果を確認します。

    • 構文の検証 - ルールの生成後、Gemini CLI は Firebase MCP サーバーの firebase_validate_security_rules コマンドを使用して構文を自動的に検証します。
    • 単体テスト - 構文を検証した後、Gemini CLIFirebase Local Emulator Suite を使用して生成された単体テストを実行しようとします。テストを実行するには、別のターミナルで Firebase Local Emulator Suite を実行する必要があります。

    テストが自動的に実行されない場合は、別のターミナルで Firebase Local Emulator Suite を開始し、次のいずれかのオプションを使用してテストを実行します。

    *   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. 生成された Rules の結果に満足したら、次の Firebase CLI コマンドを使用して Rules をデプロイします。

    Cloud Firestore

    firebase deploy --only firestore:rules

    Cloud Storage

    firebase deploy --only storage

参考情報

  • セキュリティ体制をさらに強化するには、Gemini CLI 用のセキュリティ拡張機能を使用することもできます。これは、コード変更を分析してセキュリティ リスクと脆弱性を特定するオープンソースの拡張機能です。