Upgrade to Pro — share decks privately, control downloads, hide ads and more …

インフラ側からみた PostgreSQL の Row Level Security (RLS)...

Avatar for nabeo nabeo
July 22, 2026

インフラ側からみた PostgreSQL の Row Level Security (RLS) ~ オーロラ (Aurora) ソースを添えて ~ / Henry Engineer Meetup #8

Henry Engineer Meetup #8
https://henry.connpass.com/event/398315/

Avatar for nabeo

nabeo

July 22, 2026

More Decks by nabeo

Other Decks in Technology

Transcript

  1. Henry Engineer Meetup Vol.8 インフラ側からみた PostgreSQL の Row Level Security

    オーロラソースを添えて 株式会社ヘンリー SRE 渡辺 道和 (nabeo) Copyright © Henry, Inc. All rights reserved.
  2. 自己紹介 • nabeo ◦ ◦ ◦ ◦ 2023年6月にヘンリーに SRE としてジョイン

    元はオンプレのインフラエンジニアだったけど、徐々 にクラウド側にシフトした 好きな AWS サービスは AWS Transit Gateway 最近は Google Cloud から AWS への引越しにかかわ るあれこれをやっている X: @nabeo Blog: https://nabeop.hatenablog.com/ Copyright © Henry, Inc. All rights reserved. 2
  3. 今日のお題: PostgreSQL の Row Level Security • テーブルにポリシーを設定することで、行レベルで権限を分離できる ◦ ◦

    • マルチテナントのデータ分離という文脈でよく使われている Henry でも導入を検討している PostgreSQL 固有の機能 Copyright © Henry, Inc. All rights reserved. 3
  4. RLS を扱う時に意識するべきロールの種類 • RLS の管理者ロール ◦ ◦ • RLS のユーザロール

    ◦ ◦ • BYPASSRLS 属性をもち、RLS ポリシーを無視できる ▪ FORCE ROW LEVEL SECURITY を無視できる schema migration や RLS のポリシー設定をおこなう RLS ポリシーの影響をうける アプリケーションなどはユーザロールを使う テーブルのオーナー ◦ ◦ RLS 向けのロールではない テーブルオーナーは ENABLE ROW LEVEL SECURITY で作成されたポリシーを無視できる Copyright © Henry, Inc. All rights reserved. 5
  5. ところで、Aurora には最初から強そうなロールがあるよね...? • • 初期構築時にデフォルトで作られるロール rds_superuser といういかにもな名前がついている ◦ Cloud SQL

    にも同じように cloudsqlsuperuser がある 以後は rds_superuser ロールや cloudsqlsuperuser ロールを便宜上「マス ターロール」と記述します Copyright © Henry, Inc. All rights reserved. 6
  6. 現実 is 厳しい • 結論: マスターロールは RLS の管理者ロールとして使わないほうが無難 ◦ ◦

    • BYPASSRLS を持たない ▪ というか、SUPERUSER も持っていない マスターロールをテーブルのオーナーロールとして運用している場合はポリシーをバイパス できるが、FORCE ROW LEVEL SECURITY なテーブルはバイパスできない ALTER ROLE で BYPASSRLS を明示的に付与することで管理者ロールとして 振る舞わせることは可能だが、やめておいたほうが無難 ◦ 最小権限の原則を狙うなら個別に作っておくべき Copyright © Henry, Inc. All rights reserved. 8
  7. まとめ • • PostgreSQL で RLS を扱う場合は2つのロールを意識することがある Aurora にはいかにも強そうなロールがあるが実はいうほど強くない ◦

    今回の場合は pg_roles の rolbypassrls カラムの値を確認しておく Copyright © Henry, Inc. All rights reserved. 9
  8. 採用情報や事業や技術について、積極的に発信しています! 採用情報 会社公式ブログ 採用募集ページ note 募集中の採用ポジションや募集要項 がご確認いただけます。 オープンポジションのカジュアル面 談も募集していますので、お気軽に お申し込みください。

    ヘンリーで働く人や医療業界や事業 のことが幅広くしれる公式ブログで す。 CEO の逆瀬川も個人で NOTE を発 信しているのでぜひ! 技術ブログ 理想駆動ラジオ はてなブログ Spotify ヘンリー製品開発チームが運営する 技術ブログです。 プロダクト開発・運営の様子をお届 けするポッドキャストです。 Copyright © Henry, Inc. All rights reserved. 10