複数のテナント間でデータベースを共有するマルチテナントアーキテクチャ。構築・運用のコストに優れる一方で、アプリケーション側の不具合によって他のテナントのデータが見れてしまう、という重大なインシデントを起こしかねません。
マルチテナントアーキテクチャを採用する際に、どうやってセキュリティと開発者体験を両立すればよいのでしょうか。その一つの解として、行レベルセキュリティ (Row-Level Security : RLS)があります。
本資料ではSpring Boot + PostgreSQLでRLSを用いたマルチテナントアーキテクチャを構築するノウハウとテスト、Tipsについてお話ししています。
JJUG CCC Spring 2024での発表資料です。
https://jjug.doorkeeper.jp/events/172019