このプロンプトは、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をテストするをご覧ください。
前提条件
- Firebase Security Rulesのベスト プラクティスについて理解していること。
- Firebase Security Rulesの単体テストを実行して Firebase Local Emulator Suite を使用するには、Node.js をインストールして Firebase CLI をインストールします。詳しい手順については、Firebase Local Emulator Suite のインストール、構成、統合をご覧ください。
- 推奨: Gemini CLI をまだインストールしていない場合は、インストールします。次の手順では、Gemini CLI 用の Firebase 拡張機能をインストールして使用し、Security Rulesを生成する方法について説明します。別の AI アシスタントを使用する場合は、
firebase-toolsリポジトリから Cloud Firestore または Cloud Storage for Firebase のプロンプトをコピーして、選択した AI アシスタントに貼り付けます。 - Gemini CLI 用の Firebase 拡張機能は、Firebase MCP サーバーに接続して、Firebase Security Rulesを生成して検証するプロンプトにアクセスし、Security Rulesのテストとデプロイを支援します。拡張機能を使用して Firebase Security Rulesを生成する前に、Firebase MCP サーバーをインストールしてください。
制限事項
Google はこのエクスペリエンスの向上に尽力しており、、この制限事項のリストは変更される可能性があります。更新されていないか、定期的に確認してください。
このプロンプトは、Cloud Firestore と Cloud Storage for Firebase の Firebase Security Rules を生成するように設計されています。Firebase Realtime Database のSecurity Rulesを生成することはまだできません。
Firebase Admin SDK を使用する場合など、サーバーやその他のバックエンド環境からデータベースやバケットにアクセスする際には、Firebase Security Rulesは呼び出されません。Admin SDK を使用している場合、バックエンド コードで承認とデータ検証を管理するのはユーザーの責任となります。
Firebase コンソール内の Gemini in Firebase は、このプロンプトを使用しても Firebase Security Rules を生成できません。代わりに、Gemini CLI など、コードベースにアクセスできる別の AI アシスタントを使用してください(このページで説明)。
プロンプトを使用する
このプロンプトは、Gemini CLI 用の Firebase 拡張機能内のSecurity Rules機能を通じて利用でき、Security Rulesとテストを生成できます。この拡張機能はソースコードを分析して、Cloud Firestore と Cloud Storage のデータ スキーマとアクセス パターンを特定します。最小権限の原則に基づいてSecurity Rulesを作成し、反復的な「攻撃」シミュレーションを通じて脆弱性を検出するように設計されています。最終的な検証を支援するため、@firebase/rules-unit-testing を使用して単体テスト スイートを開始します。これにより、Firebase Local Emulator Suite を使用してセキュリティ ロジックをローカルで検証できます。
この拡張機能を使用するには、このセクションで説明する次の 3 つのステップが必要です。
ステップ 1: Security Rulesとテストを生成する
拡張機能をインストールして実行します。
Gemini CLI 用の Firebase 拡張機能をインストールします。
gemini extensions install https://github.com/gemini-cli-extensions/firebaseGemini CLI を開始します。
geminiプロジェクトのルートから拡張機能を実行して、Cloud Firestore または Cloud Storage のSecurity Rulesを生成します。
Cloud Firestore のSecurity Rulesを生成する:
/firestore:generate_security_rules親ディレクトリに、拡張機能によって
firestore.rulesファイルと、生成されたSecurity Rulesの単体テストを含む Node.js プロジェクトが格納された新しいsecurity_rules_test_firestoreディレクトリが作成されます。Cloud Storage for Firebase のSecurity Rulesを生成する:
/storage:generate_security_rules親ディレクトリに、拡張機能によって
storage.rulesファイルと、生成されたSecurity Rulesの単体テストを含む Node.js プロジェクトが格納された新しいsecurity_rules_test_storageディレクトリが作成されます。
ステップ 2: Security Rulesの検証とテスト結果を確認する
AI アシスタントが次のことを行っていることを確認します。拡張機能の実行後に、生成された要約が表示されます。
構文の検証 - Security Rulesの生成後、Gemini CLI は Firebase MCP サーバーの
firebase_validate_security_rulesコマンドを使用して構文を自動的に検証します。単体テスト - 構文を検証した後、Gemini CLI は Firebase Local Emulator Suite を使用して生成された単体テストを実行しようとします。
テストが自動的に実行されない場合は、別のターミナルで 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:rulesCloud Storage for Firebase
firebase deploy --only storage
参考情報
- セキュリティ ポスチャーをさらに強化するには、Gemini CLI 用のセキュリティ拡張機能を使用することもできます。これは、コード変更を分析してセキュリティ リスクと脆弱性を特定するオープンソースの拡張機能です。