コンテンツにスキップ

AWS Identity and Access Management (AWS IAM)

1. サービス概要

AWS Identity and Access Management (IAM) は、AWS リソースへのアクセスを安全に制御するためのサービスである。
ユーザーは、IAM ユーザー、IAM グループ、IAM ロールなどの ID を作成し、それぞれに AWS リソースへのアクセス権限を付与できる。
IAM は、AWS 環境におけるセキュリティの基本であり、最小権限の原則に基づいて、アクセス制御を行うことを推奨する。

主なユースケースとして、

  • AWS アカウントへのアクセス制御
  • EC2 インスタンスへのアクセス制御
  • API Gateway へのアクセス制御
  • Lambda 関数へのアクセス制御
  • クロスアカウントアクセス

などが挙げられます。
AWS IAM は、これらのユースケースに対応するための様々な機能と、AWS の他のサービスとの統合を提供する。

2. 主な特徴と機能

2.1 IAM ユーザー

IAM ユーザーは、AWS へのアクセスに使用する個人またはアプリケーション用の ID である。
IAM ユーザーには、パスワード、アクセスキーなどの認証情報を設定できる。

2.2 IAM グループ

IAM グループは、複数の IAM ユーザーをまとめて管理するためのグループである。
グループにポリシーを適用することで、複数のユーザーに同じ権限を簡単に付与できる。

2.3 IAM ロール

IAM ロールは、AWS リソースに一時的なアクセス権限を付与するための ID である。
EC2 インスタンス、Lambda 関数などの AWS リソースに IAM ロールを割り当てることで、リソースが他の AWS リソースに安全にアクセスできるようになります。

2.4 IAM ポリシー

IAM ポリシーは、AWS リソースへのアクセス権限を定義するドキュメントである。
IAM ポリシーは、IAM ユーザー、IAM グループ、IAM ロールにアタッチできる。
ポリシーは、JSON 形式で記述され、許可または拒否するアクション、リソース、条件などを指定できる。

2.5 多要素認証 (MFA)

IAM ユーザーに対して、多要素認証(MFA)を有効にできる。
これにより、パスワードだけでなく、追加の認証要素を要求することで、セキュリティを強化できる。

2.6 認証情報の管理

IAM は、アクセスキー、パスワード、MFA デバイスなどの認証情報を管理するための機能を提供する。
ユーザーは、これらの認証情報を安全に管理し、AWS リソースへのアクセスを制御できる。

2.7 統合性と拡張性

AWS IAM は、AWS の他のサービス(EC2、S3、RDS、Lambda など)と密接に統合されており、AWS 環境全体のリソースへのアクセス制御を一元的に管理できる。
また、API を利用して、IAM の管理を自動化することもできる。

3. アーキテクチャおよび技術要素

  1. ユーザーは、AWS マネジメントコンソールまたは API を通じて、IAM ユーザー、IAM グループ、IAM ロールなどの ID を作成。
  2. IAM ポリシーを作成し、AWS リソースへのアクセス権限を定義。
  3. IAM ポリシーを、IAM ユーザー、IAM グループ、IAM ロールにアタッチ。
  4. AWS リソースへのアクセスリクエストは、IAM によって認証、認可。
  5. リクエストされたリソースへのアクセスが許可されると、アクセス可能。

AWS IAM は、AWS のグローバルインフラストラクチャの一部であり、高い可用性とスケーラビリティを提供する。
認証、認可などのアクセス制御は AWS が行うため、ユーザーはインフラの管理を行う必要はありません。

4. セキュリティと認証・認可

AWS IAM は、AWS 環境のセキュリティを確保するための基盤となるサービスです:

  • 最小権限の原則: 必要最小限の権限のみをユーザーやリソースに付与。
  • 多要素認証 (MFA): パスワード認証に加えて、MFA を要求してセキュリティを強化。
  • パスワードポリシー: 強力なパスワードを強制するためのパスワードポリシーを設定。
  • アクセスキーのローテーション: 定期的にアクセスキーをローテーションして、セキュリティリスクを低減。
  • IAM ポリシーの管理: IAM ポリシーを適切に管理し、アクセス権限を制御。

これらのセキュリティ対策により、AWS 環境への不正アクセスを防止し、機密情報を保護できる。

5. 料金形態

AWS Identity and Access Management (IAM) は、無料で利用できるサービスである。

ただし、IAM と連携する他の AWS サービス(EC2、S3、RDS など)の利用料金は発生する。

6. よくあるアーキテクチャ・設計パターン

AWS IAM は、様々なアクセス制御シナリオで利用できる。
一般的なパターンは以下の通りです:

  • AWS アカウントへのアクセス制御: AWS アカウントへのログイン認証とアクセス権限を IAM ユーザーで制御。
  • EC2 インスタンスへのアクセス制御: EC2 インスタンスに IAM ロールを割り当て、他の AWS リソースへのアクセスを制御。
  • API Gateway へのアクセス制御: API Gateway の API にアクセスするための認証と認可を IAM ポリシーで制御。
  • Lambda 関数へのアクセス制御: Lambda 関数に IAM ロールを割り当て、他の AWS リソースへのアクセスを制御。
  • クロスアカウントアクセス: 複数の AWS アカウント間でリソースにアクセスするための IAM ロールを設定。
  • S3 バケットへのアクセス制御: S3 バケットへのアクセスを IAM ポリシーで制御。

7. 設定・デプロイ手順(ハンズオン例)

  1. AWS マネジメントコンソールから AWS IAM を開き、IAM ユーザーを作成。
  2. IAM グループを作成し、ユーザーをグループに追加。
  3. IAM ロールを作成し、EC2 インスタンスなどの AWS リソースにアタッチ。
  4. IAM ポリシーを作成し、リソースへのアクセス権限を定義。
  5. MFA を有効化し、セキュリティを強化。

8. 試験で問われやすいポイント

8.1 IAM ユーザー

  • 定義: AWS へのアクセスに使用する個人またはアプリケーション用の ID。
  • 特徴: パスワード、アクセスキーなどの認証情報を設定。
  • 試験対策: IAM ユーザーの基本概念、利用方法が問われる。

8.2 IAM グループ

  • 定義: 複数の IAM ユーザーをまとめて管理するためのグループ。
  • 利用: グループにポリシーを適用し、複数のユーザーに同じ権限を付与。
  • 試験対策: IAM グループの役割、利用ケースが問われる。

8.3 IAM ロール

  • 定義: AWS リソースに一時的なアクセス権限を付与するための ID。
  • 利用: EC2 インスタンス、Lambda 関数などに割り当てる。
  • 試験対策: IAM ロールの利用方法、一時的な権限付与が問われる。

8.4 IAM ポリシー

  • 定義: AWS リソースへのアクセス権限を定義するドキュメント。
  • 形式: JSON 形式で記述。
  • 試験対策: IAM ポリシーの記述方法、許可/拒否ルールが問われる。

8.5 多要素認証 (MFA)

  • 機能: パスワードだけでなく、追加の認証要素を要求。
  • 目的: セキュリティを強化、不正アクセスを防止。
  • 試験対策: MFA の重要性、設定方法が問われる。

8.6 料金体系

  • 料金: AWS IAM は無料で利用可能。
  • 関連料金: IAM と連携する AWS サービスの利用料金が発生。
  • 試験対策: 料金に関する正しい知識が問われる。

8.7 類似・関連サービスとの比較

  • AWS Organizations: 複数の AWS アカウントを組織として管理するサービス。IAM はアカウント内のアクセス制御に特化。
  • AWS Single Sign-On (SSO): 複数の AWS アカウントやアプリケーションへのシングルサインオンを提供。IAM は個々のユーザーやリソースのアクセス制御に特化。

8.8 試験で頻出となる具体的な問われ方と答え

  • Q: AWS Identity and Access Management (IAM) は何を提供するサービスですか?
  • A: AWS リソースへのアクセスを安全に制御するためのサービスである。
  • Q: IAM ユーザーとは何ですか?
  • A: AWS へのアクセスに使用する個人またはアプリケーション用の ID である。
  • Q: IAM ロールは何に使用するか?
  • A: AWS リソースに一時的なアクセス権限を付与するために使用する。
  • Q: IAM ポリシーとは何ですか?
  • A: AWS リソースへのアクセス権限を定義するドキュメントである。
  • Q: AWS IAM の料金は?
  • A: 無料で利用できる。