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
20250326_管理ツールの権限管理で改善したこと
Search
Tatsuya Sasaki
March 26, 2025
Technology
1
1.1k
20250326_管理ツールの権限管理で改善したこと
https://mixi.connpass.com/event/348533/
で発表した資料です。 #cre_meetup
Tatsuya Sasaki
March 26, 2025
Tweet
Share
More Decks by Tatsuya Sasaki
See All by Tatsuya Sasaki
20180912_小さな成功体験を積み重ねてチームで負債に立ち向かう_medbeer.pdf
sasata299
3
12k
Classi - Real Tech Night
sasata299
1
4.4k
20151129_Mroongaをとある教育サービスで導入してみた話
sasata299
0
4.9k
20150625_SpeeeTeckParty
sasata299
9
8.9k
前回のMF Geeks Nightに参加してから実践したこと
sasata299
0
990
20141125_エンジニアドリブンな改善の進め方
sasata299
0
2.2k
20140926_VagrantとDockerと普段思ってること
sasata299
2
5.3k
20140219_4社合同技術勉強会
sasata299
2
4.2k
AngularJSを使ったらこんなことが出来るよ
sasata299
40
71k
Other Decks in Technology
See All in Technology
OCI Database Management サービス詳細
oracle4engineer
PRO
1
7.4k
Cosmos World Foundation Model Platform for Physical AI
takmin
0
950
ブロックテーマ、WordPress でウェブサイトをつくるということ / 2026.02.07 Gifu WordPress Meetup
torounit
0
190
クレジットカード決済基盤を支えるSRE - 厳格な監査とSRE運用の両立 (SRE Kaigi 2026)
capytan
6
2.8k
Codex 5.3 と Opus 4.6 にコーポレートサイトを作らせてみた / Codex 5.3 vs Opus 4.6
ama_ch
0
190
AWS Network Firewall Proxyを触ってみた
nagisa53
1
240
15 years with Rails and DDD (AI Edition)
andrzejkrzywda
0
200
OpenShiftでllm-dを動かそう!
jpishikawa
0
130
Kiro IDEのドキュメントを全部読んだので地味だけどちょっと嬉しい機能を紹介する
khmoryz
0
210
AIエージェントを開発しよう!-AgentCore活用の勘所-
yukiogawa
0
180
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
3k
2026年、サーバーレスの現在地 -「制約と戦う技術」から「当たり前の実行基盤」へ- /serverless2026
slsops
2
260
Featured
See All Featured
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Scaling GitHub
holman
464
140k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
270
How to Think Like a Performance Engineer
csswizardry
28
2.4k
It's Worth the Effort
3n
188
29k
Un-Boring Meetings
codingconduct
0
200
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.2k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
130
How Software Deployment tools have changed in the past 20 years
geshan
0
32k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.8k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.6k
Optimising Largest Contentful Paint
csswizardry
37
3.6k
Transcript
管理ツールの 権限管理で改善したこと 株式会社MIXI みてねプラットフォーム部 CREグループ 佐々木
達也
©MIXI 自己紹介 - ささたつ / @sasata299 - 男子3兄弟の父 - 騒がしい毎日・・
- みてねのCREとして頑張っています
家族アルバム みてねはスマホで撮った子どもの写真や動画を家族と共有 し、コミュニケーションして楽しむ家族アルバムサービスです。
©MIXI みてねのミッション 世界中の家族のこころのインフラをつくる
©MIXI みてねのCRE - 一般的なCREよりもスコープが広い - もともと CXE (Customer eXperience
Engineering) チームだった - カスタマーサポート向け、マーケティング向け、それ以外 - ユーザの信頼性向上に繋がることをやっていく! CS向け マーケ向け それ以外
©MIXI みてねのCRE - 一般的なCREよりもスコープが広い - もともと CXE (Customer eXperience
Engineering) チームだった - カスタマーサポート向け、マーケティング向け、それ以外 - ユーザの信頼性向上に繋がることをやっていく! ここの話をします! CS向け マーケ向け それ以外
©MIXI 前提)みてねの管理ツール - Ruby - ActiveAdmin + 自作のコントローラ -
複雑な処理を ActiveAdmin でやるの大変なので.. - CanCanCan で権限管理 - モデル単位で権限を指定する - 個人ではなく Role に対して権限を付与する 権限設定のイメージ
©MIXI セキュリティ面での漠然とした不安 - 管理ツールでは様々な情報を扱っている - 機能改修や権限追加は、各チームが進めている - 日々、機能や権限が増えていく
チームA チームB チームC 管理ツール
©MIXI 「何が課題なのか?」を具体化する - セキュリティチームとあるべき姿を検討 - 特に守るべき重要な情報は何か? - 権限は、必要な人に、必要なものだけにしたい
- 後から追跡可能に、など - 現状とのギャップ(=解決すべき課題)が見えてきた
©MIXI 解決すべき課題 - 必要以上の権限付与 - 重要情報への適切なアクセス - みてねでは、アップロードされた写真や動画
最小権限の原則 アクセスされる 情報の最小化 ✖
©MIXI 課題① 必要以上の権限付与 - 権限の棚卸し + 不要な権限の剥奪 - 権限付与に気付ける仕組み
- パスごとのアクセス制御の見える化
©MIXI 課題① 必要以上の権限付与 - 権限の棚卸し + 不要な権限の剥奪 - 直近1ヶ月のアクセス数を洗い出して、アクセスの少ない機能から段階的に棚卸しを依頼
- 業務に支障が出ないよう徐々に権限を絞っていった - 権限付与に気付ける仕組み - パスごとのアクセス制御の見える化
©MIXI 課題① 必要以上の権限付与 - 権限の棚卸し + 不要な権限の剥奪 - 権限付与に気付ける仕組み
- GitHubのコードオーナーを指定 - PR時に開発マネージャーに通知が飛ぶようにした - パスごとのアクセス制御の見える化
©MIXI 課題① 必要以上の権限付与 - 権限の棚卸し + 不要な権限の剥奪 - 権限付与に気付ける仕組み
- パスごとのアクセス制御の見える化 - 権限を追加/削除したときに、どのパスがアクセス可/不可になったのか?がわかりにくい - 実際に確認できると安心なのでは? - 各 Role で実際にアクセスして、そのときの status code をチェックするテストを作った - テストが今後も追加されるように管理ツールに機能追加されたらPRでコメントを残す
©MIXI この部分を見れば、どの Role がア クセスできるのか一目瞭然 (生きたドキュメントにもなる )
©MIXI このテストで気付いたこと - 誰も権限の無いパス - 権限管理が効いていないパス - ActiveAdmin で
member_action や collection_action を使って RESTful ではないカスタムメソッドを 定義することもできるが、権限チェックされない(!) - 公式にも書かれている けど明示的に authorize! を呼ぶ必要がある - 権限の不整合状態 - 読み取り権限がないのに書き込み権限だけ持っていた、など
©MIXI - リクエストしたユーザの情報だけが一時的に閲覧可能な仕組み - リクエストはDBに残るので後から検証可能 - アクセスする必要のない情報には(うっかり)アクセスできないようにする 参考:
内部不正の理由の約6割は故意が認められない“うっかり” 課題② 重要情報への適切なアクセス 閲覧制御 事前のリクエストあり 事前のリクエストなし ❌ ⭕
©MIXI まとめ - 権限を必要なものに絞り、アクセスされる情報を最小化した - 継続的な見直しや改善は必要 - 不要な権限を検知する仕組み -
重要情報が表示される機能が増えた際の対応、など - あるべき姿に向かって、引き続き一歩ずつ改善を進めていく