Firebase Summit で発表されたすべての情報をご覧ください。Firebase を使用してアプリ開発を加速し、自信を持ってアプリを実行する方法を紹介しています。詳細

Firebaseセキュリティルールの使用を開始する

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

Firebase セキュリティ ルールは、Cloud Firestore、Realtime Database、Cloud Storage のデータに対して堅牢で完全にカスタマイズ可能な保護を提供します。このガイドの手順に従ってルールを簡単に開始し、データを保護し、悪意のあるユーザーからアプリを保護できます。

Firebase セキュリティ ルールの言語を理解する

ルールを書き始める前に、使用している Firebase 製品に固有の Firebase セキュリティ ルール言語を確認することをお勧めします。 Cloud Storage は、定義されたパスでのアクセスの条件を設定するmatchステートメントとallowステートメントに依存する Common Expression Language (CEL) のスーパーセットを利用します。

Firebase セキュリティ ルール言語のコア構文を学習することから始めます。

認証の設定

まだ行っていない場合は、アプリに Firebase Authentication を追加します。 Firebase Authentication は、多くの一般的な認証方法をサポートし、Firebase セキュリティ ルールと統合して包括的な検証機能を提供します。

アプリの追加のカスタム認証情報を設定できます。

Firebase セキュリティ ルールと Firebase Authenticationの詳細をご覧ください。

データとルールの構造を定義する

データを構造化する方法は、ルールを構造化して実装する方法に影響を与える可能性があります。データ構造を定義するときは、それらがルール構造に与える影響を考慮してください。

たとえば、Cloud Storage では、各ユーザーの特定のロールを示すフィールドを含めることができます。次に、ルールでそのフィールドを読み取り、それを使用してロールベースのアクセスを許可できます。また、Cloud Firestore データベースを作成し、Cloud Firestore ドキュメントにアクセス基準を保存してから、Cloud Storage セキュリティ ルールからそれらのドキュメントにアクセスすることもできます。

データとルールのアーキテクチャを定義するときは、製品に応じて、ルールがカスケードする方法とカスケードしない方法に注意してください。 Realtime Database では、ルールはトップダウンで機能し、浅いルールが深いルールを上書きします。ルールが特定のパスで読み取りまたは書き込み権限を付与する場合、その下にあるすべての子ノードへのアクセスも付与されます。対照的に、Cloud Firestore と Cloud Storage では、ルールはデータ階層の指定されたレベルでのみ適用され、明示的なルールを記述してさまざまなレベルへのアクセスを制御します。

ルールにアクセスする

既存のルールを表示するには、Firebase CLI または Firebase コンソールを使用します。誤って更新を上書きしないように、一貫して同じ方法を使用してルールを編集してください。ローカルで定義されたルールが最新の更新を反映しているかどうかわからない場合、Firebase コンソールには、Firebase セキュリティ ルールの最近デプロイされたバージョンが常に表示されます。

Firebase コンソールからルールにアクセスするには、プロジェクトを選択し、左側のナビゲーション パネルで [ストレージ] をクリックします。正しいデータベースまたはストレージ バケットに移動したら、[ルール]をクリックします。

Firebase CLI からルールにアクセスするには、 firebase.jsonファイルに記載されているルール ファイルに移動します。

基本的なルールを書く

アプリを開発し、ルールを理解する際に、次のようないくつかの基本的な使用例に対処するためにルールを実装してみてください。

  • コンテンツ所有者のみ:ユーザーによるコンテンツへのアクセスを制限します。
  • 混合アクセス:ユーザーによる書き込みアクセスを制限しますが、パブリック読み取りアクセスは許可します。
  • 属性ベースのアクセス:グループまたはユーザーのタイプへのアクセスを制限します。

ルールをテストする

Firebase コンソールで Firebase Security Rules を設定している場合は、 Firebase Rules Playgroundを使用して動作をすばやく検証できます。ただし、変更を本番環境にデプロイする前に、 Local Emulator Suiteを使用してより徹底的にテストすることをお勧めします。

ルールを展開する

Firebase コンソールまたは Firebase CLI を使用して、ルールを本番環境にデプロイします。 Firebase セキュリティ ルールの管理とデプロイで説明されている手順に従います。