facebook twitter hatena line email

「Gcp/Firebase/Firestore/ルール」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(指定した複数のコレクションの読み書き許可)
(すべて読み書き許可)
 
(同じ利用者による、間の5版が非表示)
行10: 行10:
 
   }
 
   }
 
}
 
}
 +
</pre>
 +
そのままにしてると、以下メールが来る。
 +
<pre>
 +
[Firebase] Cloud Firestore データベースに安全でないルールがあります
 +
セキュリティ ルールに関する次の問題が検出されました:
 +
すべてのユーザーがデータベース全体を読み取ることができます
 +
すべてのユーザーがデータベース全体に書き込むことができます
 +
プロジェクトに強力なセキュリティ ルールが設定されていないため、誰でもデータベース全体にアクセスできます。攻撃者はデータを窃取、変更、削除でき、請求額を増やすことも可能です。
 +
分析は毎日実行されます。過去 24 時間以内にルールを変更した場合、そのルールは考慮されていない可能性があります。
 
</pre>
 
</pre>
  
行39: 行48:
 
}
 
}
 
</pre>
 
</pre>
 +
==指定したコレクションの読み書きすべて拒否==
 +
<pre>
 +
rules_version = '2';
 +
service cloud.firestore {
 +
  match /databases/{database}/documents {
 +
    match /{document=**} {
 +
      allow read, write: if false;
 +
    }
 +
  }
 +
}
 +
</pre>
 +
documentのコレクションがあったときは読み書き拒否
  
 
==参考==
 
==参考==
 
https://qiita.com/sgr-ksmt/items/1a731fdadf06119d35fc
 
https://qiita.com/sgr-ksmt/items/1a731fdadf06119d35fc

2023年2月24日 (金) 14:46時点における最新版

すべて読み書き許可

初期はデバッグ用でこのようになってる

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write;
    }
  }
}

そのままにしてると、以下メールが来る。

[Firebase] Cloud Firestore データベースに安全でないルールがあります
セキュリティ ルールに関する次の問題が検出されました:
すべてのユーザーがデータベース全体を読み取ることができます
すべてのユーザーがデータベース全体に書き込むことができます
プロジェクトに強力なセキュリティ ルールが設定されていないため、誰でもデータベース全体にアクセスできます。攻撃者はデータを窃取、変更、削除でき、請求額を増やすことも可能です。
分析は毎日実行されます。過去 24 時間以内にルールを変更した場合、そのルールは考慮されていない可能性があります。

指定したコレクションの読み書き許可

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{userID} {
      allow read, write;
    }
  }
}

users以外のコレクションがあったときは読み書き許可となる様子。

指定した複数のコレクションの読み書き許可

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{userID} {
      allow read, write;
    }
    match /scores/{scoreID} {
      allow read, write;
    }
  }
}

指定したコレクションの読み書きすべて拒否

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if false;
    }
  }
}

documentのコレクションがあったときは読み書き拒否

参考

https://qiita.com/sgr-ksmt/items/1a731fdadf06119d35fc