Supabase は安全ですか? Supabase アプリを安全にする方法
Supabase は設計上安全です。ただし、行レベルセキュリティを有効化し、正しく設定した場合に限ります。露出のほとんどは、このステップを飛ばすことから生じます。
Supabase はよく作られた安全なプラットフォームです。ほぼすべての Supabase データ漏洩は、たった 1 つのミスにたどり着きます。行レベルセキュリティ(RLS)が無効、または緩すぎる書き方になっていて、公開 anon キーでテーブル全体を読み取れてしまうことです。anon キーは公開されることが前提です。安全性は RLS から来るのであって、キーを隠すことから来るのではありません。
Supabase は安全で、しっかり設計されたプラットフォームです。anon(公開)キーはフロントエンドに露出することを前提に設計されています。ほぼすべての Supabase データ漏洩は、たった 1 つのミスに帰着します。行レベルセキュリティ(RLS)が無効、または緩すぎる書き方になっていて、anon キーを持つ人なら誰でもテーブル全体を読み取れてしまうことです。あなたを守るのは RLS ポリシーであって、anon キーを秘密にすることではありません。ローンチ前に 1 つだけやるなら、ユーザーデータを保持するすべてのテーブルで RLS が有効になり、正しくスコープされていることを確認してください。
Supabase セキュリティ早わかり
- プラットフォーム種別
- オープンソースのバックエンド(Postgres、認証、ストレージ)
- 最もよくあるリスク
- RLS が無効、または「すべて許可」に設定
- anon キーは秘密ですか?
- いいえ。設計上公開され、RLS で制御します
- service-role キー
- 絶対にブラウザに到達させてはいけません。RLS を回避します
- チェック方法
- 無料 Supabase RLS チェッカーを実行
Supabase で最もよくあるセキュリティリスク
あるテーブルで RLS が無効
RLS が有効になっていないテーブルは、anon キーを持つ人なら誰でも完全に読み取り(多くの場合書き込みも)できます。その anon キーはフロントエンドと一緒に配布されます。
緩すぎるポリシー
「すべて許可」や「true」といったポリシーは、技術的には RLS を有効にしながら、データを完全に開いたままにします。RLS が「オン」であることは、RLS が「正しい」ことと同じではありません。
service-role キーがクライアントに
service-role キーは RLS を完全に回避します。これがブラウザや公開リポジトリに到達すると、データベース全体が露出します。
Supabase アプリを安全にする方法
60 秒で Supabase アプリをチェック
デプロイ済みの URL を貼り付けて無料のローンチ準備スキャンを実行し、ローンチ前に人間のレビュー付き・保険付きのクリアランスを取得しましょう。
Supabase セキュリティに関するよくある質問
- Supabase の anon キーを露出させても安全ですか?
- はい。anon キーは公開される設計で、フロントエンドと一緒に配布されます。あなたを守るのは行レベルセキュリティ・ポリシーであって、anon キーを秘密にすることではありません。ただし、service-role キーは決して露出させてはいけません。
- Supabase のテーブルが公開状態かどうか、どう確認すればよいですか?
- 無料の Supabase RLS チェッカーをお使いください。プロジェクト URL と anon キーを貼り付けると、認証なしでデータを返すテーブルを報告します。
- Supabase は HIPAA に準拠していますか?
- Supabase は有料プランで HIPAA 準拠のティアと署名済み BAA を提供していますが、コンプライアンスは共同責任です。RLS、アクセス制御、ロギングを正しく設定するのはあなた自身の責任です。プラットフォームが HIPAA に対応できることと、あなたの具体的なアプリが準拠していることは別です。