Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
アクセス制御の新時代OpenFGAできめ細かなアクセス制御(FGA)に入門してみた
Search
新屋 司
August 11, 2024
0
320
アクセス制御の新時代OpenFGAできめ細かなアクセス制御(FGA)に入門してみた
「アクセス制御の新時代OpenFGAできめ細かなアクセス制御(FGA)に入門してみた」というタイトルでDevelopersIO 2024 Odysseyに登壇しました
新屋 司
August 11, 2024
Tweet
Share
Featured
See All Featured
Six Lessons from altMBA
skipperchong
26
3.5k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.6k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Bash Introduction
62gerente
608
210k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
330
BBQ
matthewcrist
85
9.3k
Designing the Hi-DPI Web
ddemaree
280
34k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
The World Runs on Bad Software
bkeepers
PRO
65
11k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
43
6.6k
Agile that works and the tools we love
rasmusluckow
327
21k
Fontdeck: Realign not Redesign
paulrobertlloyd
81
5.2k
Transcript
アクセス制御の新時代 OpenFGAできめ細かなアクセ ス制御(FGA)に⼊⾨してみた 2024.7.23 産業⽀援グループゲームソリューション部 新屋 司
Xへの投稿の際は、 ハッシュタグ #cm_odyssey でお願いいたします。 2 お願い
⾃⼰紹介 新屋 司 クラスメソッド株式会社 ゲームソリューション部 福岡(北九州) 業務効率化⽀援(認証‧認可) 3
OpenFGA 4
Googleドライブのような、きめ細 かいアクセス制御を実装できる 認可ソリューション 5
Googleドライブのようなものとは? きめ細かいアクセス制御とは? そもそも認可とは?
前提知識 7
認証/認可 8
認証/認可 • 認証はユーザーが本⼈であることを確認する。 • 認可はリソースにアクセスする権限を確認する。 9
アクセス制御 10
ロールベースアクセス制御 ユーザーには「管理者」や「編集者」などのロールが 割り当てられ 、各ロールには特定の権限が関連付け られる。 11 RBAC
ロールベースアクセス制御 • 強み ◦ シンプル ▪ RBACは、開発者とエンドユーザーの両⽅にとってシンプルで使い慣 れたソリューションを提供する。 • 弱み
◦ 限られた柔軟性 ▪ アクセス制御はロールによってのみ定義されるため、システムがス ケールすることによる、きめ細かいアクセス制御要件が出現すると、 RBACのシステムはすぐに不⼗分になる可能性がある。 12
属性ベースアクセス制御 属性(ユーザー、リソース、アクション、条 件)に基づいたアクセス制御を⾏う。 13 ABAC
S3バケットポリシー 14
属性ベースアクセス制御 • 強み ◦ きめ細かさ ▪ ABACは、属性を使⽤して⾮常にきめ細かなアクセス制御ポリ シーを作成する機能を提供する。 • 弱み
◦ 複雑さ ▪ ABACの実装、管理、保守は⼤きな課題となる可能性があり、 設計が⾮常に複雑で時間がかかるだけでなく、システム更改 のたびに⾒直すなど、継続的なメンテナンスが必要。 15
認可って なんか⼤変そう... 16
ReBAC登場 17
ReBACとは Relationship-Based Access Control リソース間の関係性に焦点を当てたアクセス制御モデ ル 18 ReBAC
関係性?
関係ベースアクセス制御 20 Root Folder File Folder Folder File File File
? ? ? ? ? 太郎
関係ベースアクセス制御 21 Root Folder File Folder Folder File File File
? parent parent parent parent 太郎
関係ベースアクセス制御 22 Root Folder File Folder Folder File File File
owner parent parent parent parent 太郎
関係ベースアクセス制御 23 Root Folder File Folder Folder File File File
owner parent parent parent parent editor viewer 太郎 健太郎 花⼦
関係ベースアクセス制御 24 Group Folder Folder editor member member 太郎 健太郎
花⼦ editor viewer
RBACやABACで同じことが出来ないの?
ロールベースアクセス制御 26 Folder Folder editor special_viewer owner edit 太郎 健太郎
花⼦ view edit
属性ベースアクセス制御 27 Folder Folder owner.太郎 editor.太郎 viewer.太郎 editor.健太郎 viewer.健太郎 太郎
健太郎 花⼦ owner.太郎 editor.太郎 viewer.太郎 editor.健太郎 viewer.健太郎 viewer.花⼦ if (user.name == folder.owner) … if (user.name == folder.editor) … if (user.name == folder.viewer) …
関係ベースアクセス制御 • 強み ◦ 複雑な階層の処理 ▪ ReBACは階層とネストされた関係を表すように設計されている。 ▪ ReBACを使⽤すると、チームやグループを使⽤してリソースごとに個 別に
権限を定義するのではなく、⼀括して権限を定義できる。 • 弱み ◦ パフォーマンス ▪ 複雑な関係を処理するために多くの計算リソースを必要とするため、 ⼤規模なシステムではパフォーマンスが低下する可能性がある。 28
RBAC/ABAC/ReBACはなんとなく分かったけど OpenFGAとの関係は?
OpenFGA ReBACは、RBACやABACの機能を含む柔軟なアクセス制御 モデルであり、OpenFGAはこれ(ReBAC)を利⽤して⾼度 なアクセス制御シナリオをサポートします。 30 https://openfga.dev/
実践編 31
認可モデル 32
認可モデル 33
認可モデル 34 対象 主体 関係
関係タプル 35
関係タプル 36
認可モデルの例 37
Direct Access 38
Roles and Permissions 39
User Groups 40
Parent-Child Objects 41
実装編 42
さいごに 43
OpenFGAの使いどころ • Google Driveのような階層構造を持つドキュメント管理アプリ ◦ フォルダーとファイルの階層構造に対して、柔軟なアクセス制御 が可能。 • Githubのような組織(グループ)を持つアプリ ◦
リポジトリや組織の管理権限を動的に設定できる。 • X(旧Twitter)やYouTubeのようなシェア機能を持つアプリ ◦ 特定の投稿や動画に対して、⼀時的なアクセス権を付与すること が可能。 44
None