IAM(AWS Identity and Access Management)とは
リソースへの「認証」と「認可」を設定することができるアクセス権限を管理するためのサービス
IAMの基本構成
IAMユーザー
AWSリソースにアクセスするためのアカウント
IAMグループ
複数のIAMユーザーをまとめて、一括で同じ権限を付与するための仕組み
IAMロール
一時的な権限を付与できるアクセス権限のセット
使用例
- EC2インスタンスにIAMロールを付与し、S3へのアクセス権限を与えます
- AWS Lambdaに特定のDynamoDBテーブルを操作する権限を付与します
- 一時的に管理者権限を与えるためのIAMロールを作成します
IAMポリシー
IAMユーザー、IAMグループ、IAMロールに対して権限を定義するルール
機能
ユーザーアカウントの管理
AWSリソースにアクセスするためのユーザーを作成、管理する機能
ユーザー認証
IAMユーザーがAWSリソースにアクセスするための認証機能
- パスワード認証
- 多要素認証(MFA)
アクセス制御
どのリソースに対して、どのユーザーやグループがアクセスできるかを決定する機能
- IAMポリシーを使って、アクセス権限を詳細に制御できます
- 最小権限の原則に基づき、ユーザーやグループに対して必要な権限のみを付与することが推奨されます
プロビジョニング
新しいユーザーやリソースへのアクセス権を自動的に割り当てる機能
- 自動化ツールやスクリプトを使って、IAMユーザーの作成やアクセス権限の設定を迅速に行うことができます
IDフェデレーション
AWS外部のユーザー認証システム(Active Directory、SAML 2.0、Cognitoなど)と統合し、AWSへのアクセスを提供する機能
- 外部システムで管理されているユーザー情報を使用して、AWSリソースにアクセスできるようになります
レポート作成
IAMユーザーやリソースに対するアクセスの監査や分析を行うためのレポートを生成する機能
- IAMアクセス分析レポートを使用して、IAMユーザーのアクセス権限が適切であるか、過剰な権限が付与されていないかを確認することができます
- AWS CloudTrailを使用して、ユーザーがAWSリソースにアクセスした履歴を記録し、アクセスログを監視できます
まとめ
IAMは、AWSリソースへのアクセス権限を管理し、認証と認可を設定するサービスです。ユーザー、グループ、ロール、ポリシーを活用して、アクセス制御、セキュリティ強化、リソースの効率的な管理を実現します