IAM (概念)

Identity and Access Management の一般概念で、認証と認可を管理する仕組み

セキュリティ認証

IAM とは

IAM (Identity and Access Management) は、「誰が (認証)」「何に (リソース)」「何をできるか (認可)」を管理する仕組みの総称である。AWS IAM は AWS 固有の実装だが、IAM の概念はクラウド、OS、アプリケーション全般に適用される。

認証 vs 認可

認証 (Authentication) は「あなたは誰?」を確認する仕組みで、ログインや MFA が該当する。認可 (Authorization) は「何をしていい?」を制御する仕組みで、管理者は削除可能、一般ユーザーは閲覧のみといった権限管理が該当する。

認証の方式

方式 説明 用途
パスワード 知識ベース Web ログイン
MFA 複数要素 セキュリティ強化
OAuth 2.0 / OIDC トークンベース SSO、ソーシャルログイン
API キー 静的トークン サーバー間通信
IAM ロール 一時的な認証情報 AWS サービス間
mTLS 証明書ベース マイクロサービス間

認可のモデル

モデル 説明
RBAC (Role-Based) ロールに権限を割り当て 管理者、編集者、閲覧者
ABAC (Attribute-Based) 属性に基づく動的な権限 部署=営業 AND 地域=東京
PBAC (Policy-Based) ポリシーで権限を定義 AWS IAM ポリシー

最小権限の原則

❌ 全権限を付与
{ "Effect": "Allow", "Action": "*", "Resource": "*" }

✅ 必要最小限の権限
{ "Effect": "Allow", "Action": "dynamodb:GetItem", "Resource": "arn:aws:dynamodb:...:table/users" }

Web アプリケーションでの IAM

ユーザー → Cognito (認証) → API Gateway → Lambda
              ↓ JWT トークン
           API Gateway が JWT を検証 (認可)
              ↓ 有効なトークン
           Lambda が実行

ゼロトラストとの関係

従来: ネットワーク境界で信頼 (VPN 内は安全) ゼロトラスト: 全リクエストを検証 (ネットワーク位置に関係なく認証・認可)

現場での応用を知るには関連書籍も役立つ。

関連用語