AikidoのSecurity Masterclassシリーズの一環として、Mackenzie Jacksonは、Bill Harmer氏(Supabase CISO)とEtienne Stalmans氏(Supabaseセキュリティエンジニア)と対談し、Supabaseがセキュリティを後付けではなく設計の一部としてどのようにアプローチしているかを探りました。
行レベルセキュリティ(RLS)からAI支援コーディングのリスクまで、議論は迅速に構築し、安全を維持するために必要なことに焦点を当てました。
セキュリティはデータから始まります。
Supabaseの哲学は、データそのものから始まります。
「私たちは開発者の視点からSupabaseを構築しました。すべてはデータから始まります。すべてを一箇所で制御できるのに、なぜ二次的なレイヤーを構築する必要があるのでしょうか。」 - Bill Harmer, CISO Supabase
セキュリティロジックをサービス全体に分散させる代わりに、Supabaseはデータを格納する場所に近づけます。制御が近いほど、問題が発生する可能性は低くなります。
ファーストプリンシプルに基づく構築
エティエンヌにとって、このアプローチは開発者がソフトウェア構築について考える方法を変えます。
「セキュリティをデータに近づけると、根本原理から考えるようになります。それが理解できれば、開発を加速させ、それが安全であると確信し続けることができます。」 - Etienne Stalmans, Security Engineer Supabase
データ所有権とアクセスをアプリケーション設計の一部とすることで、チームは階層型パーミッションシステムに伴う推測作業を排除できます。
匿名または認証済み
Supabaseはアクセス制御をシンプルに保ちます。ユーザーは匿名か認証済みのいずれかであり、その中間はありません。
「データに対するすべての更新は、誰が、何を、いつ、なぜ行ったかを含め、ログに記録されなければなりません。匿名ユーザーは限られたアクセス権を得ます。認証されたユーザーは、必要なものだけを正確に取得し、それ以上は取得しません。」 - Bill Harmer, Supabase CISO
エティエンヌはセッション中に、ライブのレシピ共有アプリを使用してこれを実演しました。
公開レシピは誰でも閲覧可能でした。非公開レシピは、その所有者または特定の共有ユーザーのみが閲覧可能でした。
行レベルセキュリティに裏打ちされた数行のSQLで、モデル全体が処理されました。
行レベルセキュリティは必須です。
RLSは、誰がどのデータ行を参照または変更できるかを定義します。これはPostgresの最も強力な機能の1つであり、見落とされがちな機能の1つでもあります。
「必要なのはそれだけです。チェックが一つ欠けているだけで、すべてが露呈します。」 - Supabase セキュリティエンジニア Etienne Stalmans氏
エティエンヌは、AIが生成したポリシーが1つの条件をスキップしたために、誤ってテーブル内のすべてのレコードを返してしまった例を共有しました。
修正はクエリに対する単一の修正であり、主要なセキュリティギャップを閉じた1行でした。
ビルは簡潔にまとめました:
「セキュリティはデータにできるだけ近い場所にあるべきだと考えています。近ければ近いほど、エラーの余地が少なくなります。」 - Bill Harmer, CISO Supabase
pgTAPでポリシーをテストする
アプリがリリースされた後もセキュリティは止まりません。Etienneは、SupabaseがpgTAPを使用してデータベースポリシーを継続的にテストする方法を示しました。
「安全だと信じているものが実際に安全であることを証明できます。これらのテストは正直さを保ちます。」 - Etienne Stalmans, Security Engineer Supabase
各テストは最も重要な点をチェックします。
- 公開ユーザーは公開データのみを閲覧できます。
- 認証されたユーザーは自分のもののみを参照できます
- ポリシーは常に期待される制限を強制します。
この継続的な保証により、小さなミスがデータ漏洩に発展しないようにします。
スケーラブルなセキュリティ
Supabaseは、何百万ものユーザーと大規模なワークロードに対してRLSを問題なく実行します。
「どこでも、大規模な環境でも実行しています。問題もなく、言い訳もありません。」 - Etienne Stalmans, Security Engineer Supabase
データベースレベルでセキュリティを強制することで、Supabaseはアプリケーションがどれほど複雑になってもロジックの一貫性を保ちます。
「とにかく動かせ」という危険な指示
ビルは、AIを使用してコードを生成するすべての人への警告をもってセッションを締めくくりました。
「動作するからといって、それが本番環境に対応しているとは限りません。」 - Supabase CISO Bill Harmer氏
「AIに何かを機能させるように指示すると、あなたを保護するはずのセキュリティチェックを削除してしまう可能性があります。」 - Bill Harmer, CISO Supabase
AIモデルは意図を理解しません。設定された目標を達成するためには、RLSを無効にしたり、認証ロジックを削除したりすることも厭いません。
危険なのはAIを使うことではなく、ガイダンスなしでAIを使うことです。
「モデルは悪意があるわけではありません。その役割を果たしているだけです。しかし、モデルは意図を知りません。それは担当者の役割です。」 - Supabase CISO Bill Harmer氏
デフォルトでセキュアな構築
セキュリティはブロッカーではありません。それは、出荷するものを再確認することなく、より迅速に作業を進める方法です。
Supabaseは、セキュリティがデータ層に存在することで、後付けではなく構築方法の一部となることを証明しています。

