SupabaseのRLS:気をつけたい3つの落とし穴
著者について
著者について
コメント
コメントを読み込んでいます
会話の履歴を取得しています。
U
SupabaseのRow Level Security(RLS)は非常に強力なツールですが、その導入には慎重さが求められます。実際、RLSを適切に設定しないと、リリース後に予期せぬデータ漏洩や混在の問題を引き起こす可能性があります。ここでは、特に気をつけたい3つのポイントを紹介します。
RLSを後から有効化すると、テナント間のデータが混ざってしまうリスクがあります。これを避けるためには、最初からRLSを有効にすることが推奨されます。開発初期からセキュリティポリシーを設定し、環境に応じてテストを重ねることが重要です。
anonキーをフロントエンドに露出すると、RLSでブロックしてもOpenAPI経由でテーブル名を列挙される可能性があります。これを回避するためには、バックエンドを介してanonキーを隠蔽し、ネットワーク制限を設けたdirect connectionを使用することが良いでしょう。
Realtime機能をONにしたまま運用すると、Supabaseの無料枠を一瞬で食い尽くすことになります。したがって、必要なときにのみこの機能を有効化するのが賢明です。開発中のステージング環境では、特に注意が必要です。
これらの問題を回避するために、RLSポリシーの複雑化には注意し、SupabaseのテストツールやCLIを利用していることを確認しましょう。Prismaのdirect connectionを利用したり、SQLフックを設定する方法も検討すると良いでしょう。