$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
20250326_管理ツールの権限管理で改善したこと
Search
Tatsuya Sasaki
March 26, 2025
Technology
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.8k
20150625_SpeeeTeckParty
sasata299
9
8.8k
前回のMF Geeks Nightに参加してから実践したこと
sasata299
0
970
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
AI駆動開発の実践とその未来
eltociear
2
500
"人"が頑張るAI駆動開発
yokomachi
1
540
Building Serverless AI Memory with Mastra × AWS
vvatanabe
0
590
202512_AIoT.pdf
iotcomjpadmin
0
140
投資戦略を量産せよ 2 - マケデコセミナー(2025/12/26)
gamella
0
420
たまに起きる外部サービスの障害に備えたり備えなかったりする話
egmc
0
410
フィッシュボウルのやり方 / How to do a fishbowl
pauli
2
390
MariaDB Connector/C のcaching_sha2_passwordプラグインの仕様について
boro1234
0
1k
2025-12-18_AI駆動開発推進プロジェクト運営について / AIDD-Promotion project management
yayoi_dd
0
160
モダンデータスタックの理想と現実の間で~1.3億人Vポイントデータ基盤の現在地とこれから~
taromatsui_cccmkhd
2
270
Strands AgentsとNova 2 SonicでS2Sを実践してみた
yama3133
1
1.9k
TED_modeki_共創ラボ_20251203.pdf
iotcomjpadmin
0
150
Featured
See All Featured
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
410
Practical Orchestrator
shlominoach
190
11k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
320
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
From π to Pie charts
rasagy
0
91
The Curse of the Amulet
leimatthew05
0
4.8k
Tell your own story through comics
letsgokoyo
0
760
Deep Space Network (abreviated)
tonyrice
0
21
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
170
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
230
Leo the Paperboy
mayatellez
0
1.3k
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 まとめ - 権限を必要なものに絞り、アクセスされる情報を最小化した - 継続的な見直しや改善は必要 - 不要な権限を検知する仕組み -
重要情報が表示される機能が増えた際の対応、など - あるべき姿に向かって、引き続き一歩ずつ改善を進めていく