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
1k
アクセス制御の新時代OpenFGAできめ細かなアクセス制御(FGA)に入門してみた
「アクセス制御の新時代OpenFGAできめ細かなアクセス制御(FGA)に入門してみた」というタイトルでDevelopersIO 2024 Odysseyに登壇しました
新屋 司
August 11, 2024
Tweet
Share
Featured
See All Featured
AI Search: Where Are We & What Can We Do About It?
aleyda
0
6.8k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.4k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
40
Side Projects
sachag
455
43k
Darren the Foodie - Storyboard
khoart
PRO
1
2.1k
Ruling the World: When Life Gets Gamed
codingconduct
0
120
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Six Lessons from altMBA
skipperchong
29
4.1k
The Cult of Friendly URLs
andyhume
79
6.8k
Speed Design
sergeychernyshev
33
1.5k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
270
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