IAMロール過剰権限『クラウド(AWS / Azure / GCP)の話②』
API は普通に呼べる。
エラーも出ない。
運用も楽。
──その代わり、事故が起きたら被害は最大化する。
原因は IAMロールに権限を与えすぎていること。
クラウド初学者が「とりあえず動かすため」にやりがちな、静かで危険な設計ミスだ。
冒頭の一言要約
IAM は“許可の集合”。
広く与えた分だけ、壊せる範囲も広がる。
症状(あるある)
AdministratorAccess が普通に付いている
EC2 から全サービス操作可能
使っていない権限が大量にある
どの権限が必要か誰も説明できない
インシデント時に影響範囲が読めない
ロールを使い回している
原因と仕組み(なぜ起きるか)
ポリシー設計が面倒でフル権限を付与
権限不足エラー → 全許可で回避
マネージドポリシーを深く見ていない
最小権限(Least Privilege)を知らない
検証用ロールを本番に流用
権限の棚卸しをしていない
IAMロールは
「できることの上限」を決める仕組み。
過剰権限は、
侵入・誤操作・バグの被害を一気に広げる。
図:IAM過剰権限の影響
[アプリ / EC2]
│
├─ 本来必要:S3 read
│
└─ 実際付与:*
↓
削除・作成・権限変更まで可能
切り分け(最短コース)
IAMロールの付与ポリシー確認
AWS / Azure / GCP 管理画面
Administrator系権限の有無確認
実際に使っている操作の洗い出し
API
サービス
CloudTrail / Activity Log の確認
使われていない権限がないか
ロールの利用範囲確認
どのリソースから使われているか
今すぐ効く対処(テンプレ)
◆ まずやるべきこと
フル権限ポリシーを外す
必要なサービスだけに絞る
Read / Write を分離する
◆ 最小権限の考え方(例)
S3 読み込みだけ必要
→ s3:GetObject のみログ出力だけ必要
→ logs:PutLogEvents のみ
※ 「動いたからOK」は設計ミス。
恒久対策/再発防止チェックリスト
Administrator権限を原則禁止
最小権限ポリシーを設計
マネージドポリシーを精査
検証用と本番用ロールを分離
利用実績ベースで権限を削減
定期的に権限棚卸し
ロール用途をドキュメント化
「とりあえず付与」を禁止
落とし穴(やりがちミス)
エラーが出たら権限を足す
使ってない権限を放置
1ロールを全用途で使う
マネージド=安全と思う
権限削減を怖がる
まとめ(行動指針)
IAMロールは、
「便利さ」と「被害範囲」を交換している。
必要な操作を洗う → 最小限で許可 → 定期的に削る。
この3点を回すだけで、
クラウド事故の“爆発力”は確実に下げられる。
