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

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

このプロンプトは、次のSecurity Rulesの生成だけを扱います。

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

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

前提条件

制限事項

Google はこのエクスペリエンスの向上に尽力しており、、この制限事項のリストは変更される可能性があります。更新されていないか、定期的に確認してください。

  • このプロンプトは、Cloud FirestoreCloud Storage for FirebaseFirebase Security Rules を生成するように設計されています。Firebase Realtime DatabaseSecurity Rulesを生成することはまだできません。

  • Firebase Admin SDK を使用する場合など、サーバーやその他のバックエンド環境からデータベースやバケットにアクセスする際には、Firebase Security Rulesは呼び出されません。Admin SDK を使用している場合、バックエンド コードで承認とデータ検証を管理するのはユーザーの責任となります。

  • Firebase コンソール内の Gemini in Firebase は、このプロンプトを使用しても Firebase Security Rules を生成できません。代わりに、Gemini CLI(このページで説明)など、コードベースにアクセスできる別の AI アシスタントを使用してください。

プロンプトを使用する

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

この拡張機能を使用するには、このセクションで説明する 3 つのステップが必要です。

  1. Security Rules とテストを生成します

  2. Security Rules の検証とテストの結果を確認します

  3. Security Rules を Firebase プロジェクトにデプロイします

ステップ 1: Security Rules とテストを生成する

拡張機能をインストールして実行します。

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

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

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

    • Cloud FirestoreSecurity Rules を生成する:

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

      親ディレクトリに、拡張機能によって firestore.rules ファイルと、生成された Security Rules の単体テストを含む Node.js プロジェクトを含む新しい rules_test ディレクトリが作成されます。

    • Cloud Storage for FirebaseSecurity Rules を生成する:

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

      親ディレクトリに、拡張機能によって storage.rules ファイルと、生成された Security Rules の単体テストを含む Node.js プロジェクトを含む新しい storage_rules_test ディレクトリが作成されます。

ステップ 2: Security Rules の検証とテスト結果を確認する

  1. AI アシスタントが次のことを行っていることを確認します。拡張機能の実行後に、生成された要約が表示されます。

    • 構文の検証 - Security Rulesの生成後、Gemini CLI は Firebase MCP サーバーの firebase_validate_security_rules コマンドを使用して構文を自動的に検証します。

    • 単体テスト - 構文を検証した後、Gemini CLIFirebase Local Emulator Suite を使用して生成された単体テストを実行しようとします。

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

    • オプション 1: Gemini CLI にテストの実行を指示します。

      Firebase Emulator Suite is running in a separate terminal. Please execute the tests.
      
    • オプション 2: rules_test ディレクトリまたは storage_rules_test ディレクトリの README.md ファイルの手順に沿って、テストを手動で実行します。

ステップ 3: Security Rules を Firebase プロジェクトにデプロイする

生成された Security Rules の結果に満足したら、次の Firebase CLI コマンドを使用して、生成された Security Rules を Firebase プロジェクトにデプロイします。

  • Cloud Firestore

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

    firebase deploy --only storage

参考情報

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