タグ

RLSに関するmkusakaのブックマーク (5)

  • RLSを実戦投入するための設計判断

    全体像: リクエストから RLS ポリシー評価まで Acsim では、1つの HTTP リクエストが RLS で保護されたデータにアクセスするまでに、次の流れを辿ります。 �7 �� テナントコンテキスト(所属テナントやロールなどの情報)は「Middleware → Hono Context → UseCase → PostgreSQL」の順に流れます。Middleware がテナントコンテキストを取得・検証して Hono Context に格納し、UseCase がそれを取り出して PostgreSQL のトランザクション内でセッション変数に注入し、RLS ポリシーが評価します。 ここからは、この構成に至る過程で直面した設計判断を3つ掘り下げます。 設計判断 1: テナントコンテキストをどう取得するか RLS にテナントコンテキストを渡すには、リクエストからテナントコンテキストを取得して

    RLSを実戦投入するための設計判断
    mkusaka
    mkusaka 2026/03/04
    HTTPリクエストからRLS評価まで、Acsimの設計判断(DBルックアップでテナントコンテキスト取得、認可はアプリ層、SET ROLE運用)を解説します。
  • 個人開発:Next.js はじめてのセキュリティ対策覚書 - izanami

    Next.js や BaaSを使うときのセキュリティ対策の覚書。RLS、DOMPurify、クリックジャッキングやXSS対策、クロスオリジン、CSPの設定など。 個人開発向け。認証系のアプリケーション開発時における現時点での BaaS やウェブアプリケーション(Next.js など)のセキュリティ対策の覚書。チェックリストなので深くは掘り下げない。更新、追加、修正予定あり。 データセキュリティ RLS の有効化とポリシー設定 例えば、Supabase を使う場合、RLS を有効にしてポリシーを適切に作成。各ユーザーがアクセスできるデータを厳密に制御する。 RLS(Row-Level Security)はデータベースのテーブルでユーザーごとに異なるアクセス制限を設定する仕組み。例えば、自分の投稿だけが見えるようにするなど、柔軟な制御が可能。 ポリシーとは、各ユーザーがどのデータにアクセスでき

    個人開発:Next.js はじめてのセキュリティ対策覚書 - izanami
    mkusaka
    mkusaka 2025/07/29
    Next.js×BaaSの初学者向けセキュリティ覚書:RLSやDOMPurify、CSP、use server、HttpOnly、X-Frame-Optionsを整理。
  • Row Level Security導入のためにやったこと

    はじめに 業務委託としてお手伝いをしている渡部です。 Stena Expenseは、1つのソフトウェアを様々なお客様がご利用される、いわゆるマルチテナント型のSaaSです。 マルチテナント型のSaaSでは、テナントごとにアプリケーションやデータベースをどのように分離するか、もしくは分離しないかが焦点になりますが、先日Stena Expenseではデータベースの分離方法の1つであるRow Level Security(以下、RLS)を導入したため、導入背景や作業時に実施したことを紹介します。 アーキテクチャの分離レベルとRLS導入の背景 マルチテナントのアーキテクチャを検討するにあたり、複数の分離レベルが存在します。 アプリケーションとデータベースをテナント間で共有し、テナントごとに分離しない アプリケーションとデータベースのテーブルをテナント間で共有し、テナントごとにテーブルの行レベルで分

    Row Level Security導入のためにやったこと
    mkusaka
    mkusaka 2025/02/19
    PostgreSQLのRLSを導入し、tenant_idカラム追加・NOBYPASSRLSロール作成・CIで未設定チェックを実装した事例を詳細解説
  • Production Checklist | Supabase Docs

    Production Checklist After developing your project and deciding it's production ready, you should run through this checklist to ensure that your project: Is secure Won't falter under the expected load Remains available whilst in production Security# Ensure you have enabled row level security (RLS) on all tables from the Database > Tables section of the Supabase Dashboard. Tables that do not have R

    Production Checklist | Supabase Docs
    mkusaka
    mkusaka 2025/01/23
    Supabaseの本番公開前チェックリスト。RLS/SSL/Network RestrictionsやSMTP、PITR、認証レート上限を確認し安定運用へ。
  • マルチテナントSaaSのテナント分離をRow-Level Securityに移行した - Sansan Tech Blog

    こんにちは、クラウド請求書受領サービス「Bill One」の開発に携わっているソフトウェアエンジニアの加藤です。Bill OneはB2BのマルチテナントSaaSであり、データベースとして Cloud SQL 上のPostgreSQLを利用しています。従来はマルチテナントのデータを分離するために、テナントごとにPostgreSQLのスキーマを分けていましたが、2020年12月にRow-Level Securty(行レベルセキュリティ。以降RLSと表記)による分離に移行しました。 稿では、移行の背景とRLS組み込みにあたって考慮したポイントをご紹介します。 マルチテナントSaaSのテナント分離 マルチテナントSaaSにおけるテナント分離方法はいくつか知られており、大きく次の3つに分けられます。 アプリケーションの実行環境ごと完全に分離する データベースのみをインスタンスやスキーマで分離する

    マルチテナントSaaSのテナント分離をRow-Level Securityに移行した - Sansan Tech Blog
    mkusaka
    mkusaka 2025/01/21
    Bill Oneのマルチテナント分離をPostgreSQLスキーマ分割からRLSへ移行し、ENABLE/CREATE POLICYでcurrent_setting('app.tenant_id')制御
  • 1