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

クラウドストレージのFirebaseセキュリティルールを理解する

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

従来、セキュリティはアプリ開発の最も複雑な部分の 1 つです。ほとんどのアプリケーションでは、開発者は、認証 (ユーザーが誰であるか) と承認 (ユーザーができること) を処理するサーバーを構築して実行する必要があります。認証と承認は、セットアップが難しく、正しく行うのが難しく、製品の成功に不可欠です。

Firebase Authentication によってユーザーの認証が容易になるのと同様に、Firebase Security Rules for Cloud Storage によって、ユーザーの承認とリクエストの検証が容易になります。 Cloud Storage セキュリティ ルールは、パス ベースの権限を指定できるようにすることで複雑さを管理します。わずか数行のコードで、Cloud Storage リクエストを特定のユーザーに制限したり、アップロードのサイズを制限したりする承認ルールを記述できます。

Firebase Realtime Database には、 Firebase Realtime Database ルールと呼ばれる同様の機能があります。

認証

ユーザーが誰であるかを知ることは、アプリケーションを構築する上で重要な部分です。Firebase Authentication は、使いやすく安全なクライアント側のみの認証ソリューションを提供します。 Cloud Storage の Firebase セキュリティ ルールは、ユーザー ベースのセキュリティのために Firebase Authentication と結びついています。ユーザーが Firebase Authentication で認証されると、Cloud Storage セキュリティ ルールのrequest.auth変数は、ユーザーの一意の ID ( request.auth.uid ) とトークン内の他のすべてのユーザー情報 ( request.auth.token ) を含むオブジェクトになります。 .ユーザーが認証されていない場合、 request.authnullです。これにより、ユーザーごとにデータ アクセスを安全に制御できます。詳細については、認証セクションをご覧ください。

認可

ユーザーの識別は、セキュリティの一部にすぎません。彼らが誰であるかがわかったら、Cloud Storage 内のファイルへのアクセスを制御する方法が必要です。

Cloud Storage を使用すると、サーバー上にあるファイルごとおよびパスごとの承認ルールを指定して、アプリ内のファイルへのアクセスを決定できます。たとえば、デフォルトの Cloud Storage セキュリティ ルールでは、すべてのファイルに対してreadまたはwrite操作を実行するために、Firebase Authentication が必要です。

service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write: if request.auth != null;
    }
  }
}

これらのルールを編集するには、 Firebase コンソールで Firebase アプリを選択し、[ストレージ] セクションの [ Rules ] タブを表示します。

データ検証

Cloud Storage の Firebase セキュリティ ルールは、データの検証にも使用できます。これには、ファイル名とパス、およびcontentTypesizeなどのファイル メタデータ プロパティの検証が含まれます。

service firebase.storage {
  match /b/{bucket}/o {
    match /images/{imageId} {
      // Only allow uploads of any image file that's less than 5MB
      allow write: if request.resource.size < 5 * 1024 * 1024
                   && request.resource.contentType.matches('image/.*');
    }
  }
}

次のステップ

  • Cloud Storage バケットのルール開発の計画を開始します。

  • セキュリティ ルールを使用してデータを保護する方法については、こちらをご覧ください。