当ブログの内容は筆者の経験と知識に基づいていますが、AWSのサービスおよび認定試験は定期的にアップデートされています。もし記事に誤りや古い情報がある場合、お手数ですが「コメント」や「お問い合わせ」からお知らせいただければ幸いです。読者の皆様からの貴重なフィードバックを歓迎しており、正確かつ有益な情報を提供できるよう努めてまいります。
どうぞよろしくお願いいたします。
AWS IAMとは
概要
AWS Identity and Access Management(IAM)は、AWSのセキュリティ管理を担う中核的なサービスで、ユーザーやグループの作成、アクセス許可の管理、リソースへのアクセス制御を行うことができます。
特徴
AWS IAMの主な特徴には以下があります。
- ユーザーとグループの管理
AWSアカウントに対してユーザーを作成し、それらをグループに分類することで、管理を簡素化できます。例えば、開発チームと運用チームに異なるアクセス権を設定できます。 - 詳細なアクセス許可の設定
IAMポリシーを使用して、ユーザーやグループがどのAWSリソースに対してどのような操作を行えるかを細かく設定できます。ポリシーはJSON形式で記述し、許可や拒否のルールを定義します。 - 多要素認証(MFA)
セキュリティを強化するために、ユーザーアカウントに対して多要素認証を設定できます。これにより、パスワードに加えて一時コードによる認証が必要となり、アカウントの保護が強化されます。 - ロールの使用
ロールを使用することで、特定の権限を一時的に付与できます。例えば、あるサービスが他のサービスにアクセスする必要がある場合や、一時的なタスクの実行時に役立ちます。
ユースケース
AWS IAMの代表的なユースケースをいくつか紹介します。
- アクセス制御の集中管理
企業内の全AWSリソースに対するアクセス制御を一元的に管理します。例えば、異なるプロジェクトチームに対して異なるアクセス権を設定し、適切なリソースの使用を保証します。 - セキュアなサービス間通信
IAMロールを使用して、Lambda関数がDynamoDBにアクセスする際の権限を設定するなど、セキュリティを確保しながらサービス間の通信を行います。 - コンプライアンスと監査
IAMポリシーとログを使用して、誰がいつどのリソースにアクセスしたかを監視し、コンプライアンスとセキュリティ要件を満たします。例えば、監査ログを定期的に確認し、不正アクセスを防止します。 - 一時的なアクセス権の付与
外部ベンダーや一時的なタスクの実行者に対して、一時的なアクセス権を付与し、タスク完了後に自動的に権限を剥奪します。
AWS認定試験での頻出ポイント
リソースベースポリシー」と「アイデンティティベースポリシー」の違い
1. ポリシーの概要
IAMポリシーは、AWSリソースへのアクセスを制御するルールセットです。その中で、以下の2つのタイプがあります。
- アイデンティティベースポリシー
ユーザーやロールなどの「アイデンティティ」に直接紐づけて権限を付与するポリシー - リソースベースポリシー
S3バケットやキーバリューストアなどの「リソース」に直接紐づけて権限を設定するポリシー
2. 違いを直感的に理解しよう
アイデンティティベースポリシー
- 誰に権限を与える?
IAMユーザー、IAMグループ、IAMロールなど、「誰が」何をできるかを定義します。 - 例えるなら?
社員証の役割。
社員(IAMユーザー)に「このドア(リソース)は開けていいですよ」という許可証を渡すようなイメージ。 - 主な特徴:
- アタッチできるもの→IAMアイデンティティ(IAMユーザー、IAMグループ、IAMロール)
- 複数のリソースに跨るアクセス制御が可能
- JSON形式で、
Effect
(許可/拒否)、Action
(操作内容)、Resource
(対象リソース)を指定できる
リソースベースポリシー
- どのリソースに権限を与える?
AWSリソース(S3バケットやSNSトピックなど)そのものに「この人が使ってもいいですよ」と直接設定します。 - 例えるなら?
鍵付きドア。
ドア(リソース)自体に「この鍵を持っている人なら通れます」とルールを貼り付けるようなイメージ。 - 主な特徴:
3. サンプルコードでイメージをつかむ
アイデンティティベースポリシー
IAMユーザーにS3バケットを読み書きする権限を与える例
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:GetObject", "s3:PutObject"],
"Resource": "arn:aws:s3:::example-bucket/*"
}
]
}
リソースベースポリシー
S3バケット自体に特定のAWSアカウントからアクセスを許可する例
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789012:root"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::example-bucket/*"
}
]
}
まとめ

AWS IAMは、ユーザーとリソースへのアクセス制御を詳細に管理できる強力なサービスです。
次回の記事では、「AWS IAM Identity Center (AWS Single Sign-On)」について詳しく解説します。
参考
・AWS公式
https://aws.amazon.com/jp/iam/
【AWS認定試験対策 サービス一覧】

AWS認定試験対策 サービス一覧
ソリューションアーキテクト - プロフェッショナルの試験範囲に含まれるサービス一覧です。ソリューションアーキテクト - アソシエイトの試験範囲には「*」を付けています。
【AWS各サービス概要一覧】
【おすすめの参考書】

リンク先からご購入いただき、サイト運営をご支援いただけますと幸いです…
著:佐々木 拓郎, 著:林 晋一郎, 著:金澤 圭, 著:小西 秀和



コメント