AWS IAM(Identity and Access Management)
IAMはAWSリソースへの認証(誰であるか)と認可(何ができるか)を管理するグローバルサービスです。CP試験で最も頻繁に出題される分野のひとつで、ルートユーザーの保護や最小権限の原則を中心に理解しておきましょう。
概要
IAM(Identity and Access Management)は、AWSアカウントに対して「誰が」「何に対して」「どのような操作を」行えるかを制御するサービスです。IAMは無料で利用でき、グローバルサービス(特定のリージョンに属さない)という特徴があります。
AWSを安全に運用するためには、IAMを正しく設定することが不可欠です。適切なアクセス管理を行うことで、不正アクセスや誤操作によるリスクを大幅に低減できます。
CP試験で押さえるポイント
- ルートユーザーは日常業務には使用しない。必ずMFAを設定し、IAMユーザーを作成して利用する。
- EC2などのAWSサービスにアクセスキーを直接置かず、IAMロールを使って権限を付与する。
- 最小権限の原則:必要最低限の権限だけを付与する。
- IAMはグローバルサービスかつ無料。
- IAMポリシーはJSONで記述し、ユーザー・グループ・ロールにアタッチして権限を定義する。
- MFA(多要素認証)を有効にすることで、アカウントのセキュリティを強化できる。
ルートユーザーの保護
AWSアカウントを作成すると、すべての権限を持つルートユーザーが作成されます。ルートユーザーは非常に強力であるため、以下の点を必ず守ってください。
- MFAを必ず設定する:パスワードだけでなく、仮想デバイスや物理デバイスを使った二段階認証を有効にします。
- 日常業務には使用しない:ルートユーザーはアカウント設定の変更など、ごく一部の操作にのみ使用します。
- アクセスキーを作成しない:ルートユーザーのアクセスキーは特に危険であり、作成を避けます。
- IAMユーザーを作成して日常業務に使用する:必要な権限だけを付与したIAMユーザーやロールを利用します。
IAMの主要コンポーネント
IAMは以下の4つの要素で構成されています。それぞれの役割を正確に理解しましょう。
| コンポーネント | 説明 | 用途例 |
|---|---|---|
| IAMユーザー | AWSへアクセスする個人または特定のアプリケーションを表すエンティティ。パスワードやアクセスキーで認証します。 | 従業員一人ひとりにAWSコンソールへのアクセスを付与する |
| IAMグループ | 複数のIAMユーザーをまとめたもの。グループにポリシーをアタッチすると、そのメンバー全員に権限が適用されます。 | 「開発チーム」グループにEC2操作権限を付与する |
| IAMロール | 特定のエンティティ(AWSサービスや別アカウントなど)が一時的に引き受ける権限セット。アクセスキーは不要。 | EC2インスタンスにS3へのアクセス権を付与する |
| IAMポリシー | 「どのリソースに対してどの操作を許可/拒否するか」をJSON形式で定義したドキュメント。ユーザー・グループ・ロールにアタッチします。 | S3バケットの読み取り専用権限を定義する |
IAMロールの重要性
IAMロールはCP試験で特に頻出のトピックです。EC2などのAWSサービスへのアクセスキー直接配置は危険であり、代わりにIAMロールを使うことがベストプラクティスです。
たとえば、EC2インスタンスのアプリケーションからS3に読み書きしたい場合、アクセスキーをEC2上のコードや設定ファイルに直接書くのではなく、S3アクセス権を持つIAMロールをEC2インスタンスにアタッチします。これにより:
- アクセスキーの漏洩リスクをなくせます。
- 権限の管理・変更がコンソールから一元的に行えます。
- 一時的な認証情報が自動的にローテーションされます。
また、クロスアカウントアクセス(別のAWSアカウントのリソースへのアクセス)にもIAMロールが使われます。
最小権限の原則とMFA
最小権限の原則とは、ユーザーやサービスに「業務に必要な最低限の権限だけ」を付与するセキュリティの基本原則です。過剰な権限を持つユーザーは、誤操作や悪意ある利用のリスクが高まります。
MFA(Multi-Factor Authentication:多要素認証)は、パスワードに加えて別の認証要素(ワンタイムパスワードなど)を要求することで、セキュリティを強化する仕組みです。特にルートユーザーと管理者権限を持つIAMユーザーへのMFA設定は必須と考えてください。
関連サービスとの違い・使い分け
| サービス/概念 | IAMとの関係・違い |
|---|---|
| IAM vs Organizations SCP | IAMポリシーは特定のユーザー・ロールに権限を付与します。OrganizationsのSCPはアカウント全体に上限の権限を設定します(SCPで拒否された操作はIAMで許可しても実行不可)。 |
| アクセスキー vs IAMロール | アクセスキーは長期的な認証情報でリスクが高い。IAMロールは一時的な認証情報を使うため安全。AWSサービス間の連携には原則IAMロールを使用します。 |
| IAM vs Cognito | IAMはAWSアカウント内の操作権限管理。CognitoはWebアプリやモバイルアプリのエンドユーザー向け認証基盤です。 |
確認問題
付録:公式ドキュメント・Black Belt 動画
さらに深く学びたい方は、AWS公式の以下のリソースを参照してください(いずれも外部サイトが開きます)。