AWS IAM
AWS リソースへのアクセスを安全に制御するための認証・認可サービスで、ユーザー、グループ、ロール、ポリシーによるきめ細かなアクセス管理を提供する
概要
AWS Identity and Access Management (IAM) は、AWS リソースへのアクセスを安全に管理するためのサービスです。IAM ユーザー、グループ、ロールを作成し、JSON 形式のポリシーでアクセス権限を定義することで、「誰が」「どのリソースに」「どのような操作を」実行できるかをきめ細かく制御できます。IAM は追加料金なしで利用でき、すべての AWS アカウントに標準で組み込まれています。多要素認証 (MFA) の強制、パスワードポリシーの設定、アクセスキーのローテーションなどのセキュリティ機能を備えています。IAM ロールを使えば、EC2 インスタンスや Lambda 関数に一時的な認証情報を付与でき、長期的なアクセスキーの管理が不要になります。IAM Access Analyzer は外部からアクセス可能なリソースを自動検出し、意図しないアクセス許可を特定します。
IAM ポリシーの設計原則
IAM ポリシーの設計では最小権限の原則が最も重要です。必要最小限の権限のみを付与し、不要な権限は一切与えません。ポリシーには Identity-based ポリシー (ユーザー、グループ、ロールにアタッチ) と Resource-based ポリシー (S3 バケットポリシー、SQS キューポリシーなど) の 2 種類があります。AWS 管理ポリシーは AWS が事前定義した汎用的なポリシーで、迅速な権限設定に便利ですが、必要以上の権限を含む場合があります。カスタマー管理ポリシーを作成して、業務に必要な最小限の権限のみを定義することが推奨されます。Condition 要素を使えば、送信元 IP アドレス、MFA 認証の有無、リクエスト時刻などの条件に基づいてアクセスを制限できます。IAM Access Advisor で各ユーザーやロールが実際に使用しているサービスを確認し、未使用の権限を削除することも重要です。
Azure RBAC との比較
Azure で IAM に対応するサービスは Azure Role-Based Access Control (RBAC) と Microsoft Entra ID (旧 Azure Active Directory) です。IAM はポリシーベースのアクセス制御で、JSON 形式のポリシードキュメントで Action、Resource、Effect、Condition を細かく定義します。Azure RBAC はロール定義をスコープ (管理グループ、サブスクリプション、リソースグループ、リソース) に割り当てる方式で、継承モデルにより上位スコープの権限が下位に伝播します。IAM にはこのようなスコープの階層的な継承はなく、各ポリシーで明示的にリソースを指定します。IAM ロールの一時的な認証情報 (STS) は最大 12 時間有効で、Azure のマネージド ID に相当する機能を提供します。IAM は無料で利用できるのに対し、Microsoft Entra ID の高度な機能 (条件付きアクセス、PIM など) は Premium ライセンスが必要です。