
IAM(Identity and Access Management)とは、AWSリソースへのアクセスを管理・制御するためのサービスです。AWSを安全に利用するうえで、「誰が・どのリソースに・どこまで操作できるか」を管理するIAMの理解は欠かせません。
この記事では、IAMの中でもアクセス制御の基本単位となる「IAMエンティティ」に焦点を当て、ユーザー・グループ・ロールの役割と使い分けを解説します。
この記事で学べること:
- IAMエンティティ(ユーザー・グループ・ロール)の定義と役割
- IAMユーザーの作成方法と管理のポイント
- アクセスキーの安全な取り扱い方
IAMエンティティの基本を押さえておくことで、AWSのアクセス制御の仕組みが体系的に理解でき、権限設定の場面で根拠を持って判断できるようになります。
IAMエンティティとは
IAMエンティティとは、AWSリソースへのアクセスを制御するために使われるIAM上の識別単位のことです。代表的なエンティティとして、ユーザー・グループ・ロールの3つがあります。
IAMユーザーとは
IAMユーザーとは、AWSリソースにアクセスする個人やサービスを表すエンティティです。ユーザーごとにコンソールへのログイン認証情報やAPIのアクセスキーを持つことができ、これによって個別のアクセス制御が可能になります。
IAMグループとは
IAMグループとは、複数のIAMユーザーをまとめて管理するためのエンティティです。グループ自体には認証情報はなく、アクセスポリシーをグループに割り当てることで、所属する全ユーザーに同じ権限を一括適用できます。
ユーザーごとに個別でポリシーを設定する手間が省けるため、ユーザー数が増えるほど管理の効率化につながります。
IAMロールとは
IAMロールとは、AWSリソースに一時的なアクセス権限を付与するためのエンティティです。ユーザーやグループとは異なり、永続的な認証情報を持たない点が特徴です。
たとえば、EC2インスタンスがS3バケットにデータを保存する場合や、別のAWSアカウントのリソースにアクセスする場合など、特定のタスクに必要な期間だけ権限を付与できます。認証情報が残らないため、セキュリティリスクを抑えやすい仕組みです。
ロールとポリシーについて詳しくは以下の記事で解説しています。
https://envader.plus/article/247
IAMユーザーの作成方法
IAMユーザーの作成方法は、GUIでの手動操作からコードによる自動化まで、用途に応じて複数の手段が用意されています。
| 方法 | 特徴 |
|---|---|
| AWSマネジメントコンソール | ブラウザ上でGUI操作。初心者でも直感的に作成できる |
| CLI | コマンドラインで操作。スクリプト化による一括作成や自動化に向いている |
| SDK | プログラムからAPIを呼び出して作成。アプリケーションとの統合に適している |
| IaC(Terraform / CloudFormationなど) | コードでインフラを定義。一貫性のある管理と再現性の高い構築が可能 |
AWSマネジメントコンソール
AWSマネジメントコンソールは、ブラウザ上でAWSリソースを管理できるGUIツールです。画面の指示に沿って入力するだけでIAMユーザーを作成できるため、初めての方にはこの方法がおすすめです。

CLI (Command Line Interface)
AWS CLIは、コマンドラインからAWSリソースを操作するためのツールです。スクリプトとして保存すれば繰り返し実行でき、大量のユーザーをまとめて作成する場面で特に効果を発揮します。
SDK
AWS SDKは、プログラムからAWSのAPIを呼び出すためのライブラリです。Python、JavaScript、Javaなど複数の言語に対応しており、アプリケーションやシステムの中にユーザー作成処理を組み込む際に使用されます。
IaC(Infrastracture as Code)
IaCとは、インフラの構成をコードで定義・管理する手法です。TerraformやCloudFormationなどのツールを使うことで、設定の一貫性と保守性が向上します。
以下は、Terraformを使ったIAMユーザー作成のサンプルコードです。sample-iam-userというユーザーを/system/パスに作成し、Purpose(目的)タグを付与しています。
resource "aws_iam_user" "sample_user" {
name = "sample-iam-user"
path = "/system/"
tags = {
"Purpose" = "Sample IAM User Creation using Terraform"
}
}
IAMユーザーの管理方法
IAMユーザーの管理では、認証情報であるアクセスキーの取り扱いが特に重要です。適切に管理しないと、意図しない第三者にAWSリソースを操作されるリスクがあります。
アクセスキーの取り扱い
アクセスキーとは、IAMユーザーがプログラムからAWSサービスにアクセスする際に使用する認証情報です。アクセスキーID(Access Key ID)とシークレットキー(Secret Access Key)のペアで構成されます。 このキーペアを持っている人は、そのIAMユーザーとしてAWSリソースを操作できるため、パスワードと同等かそれ以上に慎重な管理が必要です。
安全な管理・保管方法
アクセスキーの漏洩を防ぐために、以下の4つの基本ルールを押さえておきましょう。
-
ソースコードや公開リポジトリへのキー記載禁止
コードに直接埋め込むと、GitHubなどに公開した際に漏洩するリスクがあります。環境変数やシークレット管理サービスの利用が推奨されます。
-
定期的なキーのローテーション
古いキーを無効化し、新しいキーを発行することで、万が一の漏洩時の影響を最小限に抑えられます。
-
未使用キーの削除
不要なキーが残っていると、それ自体が攻撃の入口になり得ます。必要最低限のキーだけを保持するようにします。
-
キー共有範囲の最小化
アクセスキーの情報は、業務上必要な担当者のみに限定して共有します。
これらを日常的に意識しておくだけで、セキュリティリスクは大幅に軽減できます。過度に心配する必要はありませんが、「キーはパスワードと同じもの」という意識を持っておくことが大切です。
IAMグループとアクセス制御
IAMのアクセス制御では、ポリシーをユーザー個別ではなくグループにアタッチし、ユーザーを該当するグループに所属させる方法が推奨されています。これにより、一貫したアクセス権限の管理とセキュリティの向上が実現できます。

グループの作成手順
IAMグループは、AWSマネジメントコンソールから以下の手順で作成できます。
- AWSマネジメントコンソールにログインし、IAMダッシュボードを開く
- 左側のナビゲーションペインから「ユーザーグループ」を選択し、「グループを作成」をクリックする
- グループ名を入力し、必要に応じてポリシーのアタッチとユーザーの追加を行う
グループへのポリシー設定
IAMグループへのポリシー設定とは、グループに所属するすべてのユーザーに対して、同一のアクセス権限を一括で適用する操作のことです。
グループの詳細ページから「許可」タブを開き、「許可を追加」→「ポリシーをアタッチ」を選択します。適用したいポリシーを選んでアタッチすると、そのグループに所属するユーザー全員に権限が反映されます。
Terraformでのグループ管理例
以下は、TerraformでIAMユーザーとグループを作成し、ユーザーをグループに追加するサンプルコードです。
# IAMユーザーを作成
resource "aws_iam_user" "sample_user" {
name = "sample-iam-user"
}
# IAMグループを作成
resource "aws_iam_group" "sample_group" {
name = "sample-iam-group"
}
# IAMグループにユーザーを追加
resource "aws_iam_group_membership" "sample_membership" {
name = "sample-membership"
# IAMユーザーの名前
users = [
aws_iam_user.sample_user.name
]
# IAMグループの名前
group = aws_iam_group.sample_group.name
}
このコードでは、IAMユーザーsample-iam-userとIAMグループsample-iam-groupを作成し、aws_iam_group_membershipリソースでユーザーをグループに追加しています。
まとめ
この記事では、AWS IAMの基本概念であるIAMエンティティ(ユーザー・グループ・ロール)の役割と使い分けを解説しました。
学んだ内容:
この記事の要点は以下の通りです。
- IAMはAWSリソースへのアクセスを管理・制御するサービス
- IAMエンティティの基本はユーザー・グループ・ロールの3つ
- IAMユーザーは個人やサービスごとのアクセス制御に使用
- IAMグループはポリシーの一括適用による効率的な権限管理
- IAMロールは永続的な認証情報を持たない一時的なアクセス権限の付与
- アクセスキーはパスワードと同等の認証情報であり、ローテーションや最小共有が基本
IAMエンティティの基本を押さえたことで、AWSの権限設定を「なぜそう設定するのか」という根拠を持って理解できるようになっているはずです。次のステップとして、ロールとポリシーの詳細や実際の運用パターンに進むと、アクセス制御の全体像がさらに明確になります。
参考資料
以下のリンクは、この記事で解説した手順や概念に関連する参考資料です。より詳しく学びたい方は、ぜひご覧ください。
【番外編】USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話

プログラミング塾に半年通えば、一人前になれると思っているあなた。それ、勘違いですよ。「なぜ間違いなの?」「正しい勉強法とは何なの?」ITを学び始める全ての人に知って欲しい。そう思って書きました。是非読んでみてください。
「フリーランスエンジニア」
近年やっと世間に浸透した言葉だ。ひと昔まえ、終身雇用は当たり前で、大企業に就職することは一種のステータスだった。しかし、そんな時代も終わり「優秀な人材は転職する」ことが当たり前の時代となる。フリーランスエンジニアに高価値が付く現在、ネットを見ると「未経験でも年収400万以上」などと書いてある。これに釣られて、多くの人がフリーランスになろうとITの世界に入ってきている。私もその中の1人だ。数年前、USBも知らない状態からITの世界に没入し、そこから約2年間、毎日勉学を行なった。他人の何十倍も努力した。そして、企業研修やIT塾で数多くの受講生の指導経験も得た。そこで私は、伸びるエンジニアとそうでないエンジニアをたくさん見てきた。そして、稼げるエンジニア、稼げないエンジニアを見てきた。
「成功する人とそうでない人の違いは何か?」
私が出した答えは、「量産型エンジニアか否か」である。今のエンジニア市場には、量産型エンジニアが溢れている!!ここでの量産型エンジニアの定義は以下の通りである。
比較的簡単に学習可能なWebフレームワーク(WordPress, Rails)やPython等の知識はあるが、ITの基本概念を理解していないため、単調な作業しかこなすことができないエンジニアのこと。
多くの人がフリーランスエンジニアを目指す時代に中途半端な知識や技術力でこの世界に飛び込むと返って過酷な労働条件で働くことになる。そこで、エンジニアを目指すあなたがどう学習していくべきかを私の経験を交えて書こうと思った。続きはこちらから、、、、
エンベーダー編集部
エンベーダーは、ITスクールRareTECHのインフラ学習教材として誕生しました。 「遊びながらインフラエンジニアへ」をコンセプトに、インフラへの学習ハードルを下げるツールとして運営されています。

関連記事

2024.10.19
【Terraformハンズオン】Terraformでモジュールを作成してみよう
この記事では、Terraformのモジュールに焦点を当て、記事前半で基本を解説し、後半でEC2、VPCモジュールを作成するハンズオンを行います。
- AWS
- Terraform
- ハンズオン
2026.01.20
可用性とは?稼働率と具体例でわかるサーバー可用性を図解で解説
可用性は、「システムが安定的に稼働し続けられる能力」のことを指します。この記事では、サーバーにおける可用性を実際の事例を交えて図解で解説しています。
- AWS
- インフラエンジニア

2024.09.28
Trivyで実現するTerraformのセキュリティ強化 IaC脆弱性スキャンの方法
インフラのコード化による効率化が進みましたが、一方でコードに潜むセキュリティリスクも拡大しています。これらのリスクを管理するためには、適切なセキュリティスキャンを導入し、脆弱性を早期に発見することが重要です。
- サイバーセキュリティ
- インフラエンジニア
- Terraform

2024.05.29
AWSの監視戦略 主要サービスのメトリクスとアラート設定を理解する
AWSクラウド環境を最大限に活用するためには、リソースの監視とアラート設定が不可欠です。
- AWS



