はじめに
AWSを利用する上で、セキュリティや権限管理は非常に重要です。
IAMを使えば、AWSリソースへのアクセスをきめ細かく管理することができます。
この記事では、以下の内容について解説します。
- IAMポリシー の作成
- IAMロール の作成
- IAMユーザー の作成
- 作成したユーザーでログインしてみる
AWS初心者の方でも理解できるように、基本的な知識から実際の操作手順まで詳しく説明します。
知識整理
IAMポリシーとは?
IAMポリシーは、AWSリソースへのアクセス権限を定義するドキュメントです。ポリシーはJSON形式で記述され、以下の要素を指定します。
-
リソース (Resource):
どのリソースにアクセスするか -
アクション (Action):
どの操作を許可するか(例: s3:GetObject) -
条件 (Condition):
アクセス許可に条件を設定する場合 -
エフェクト (Effect):
許可するか拒否するか(Allow または Deny)
IAMポリシーをJSONで定義する際のよくあるユースケースについては、以下の記事で詳しく解説しています。
興味のある方はぜひ参考にしてください。
IAMロールとは?
IAMロールは、一時的な権限を与えるためのIAMエンティティです。ロールは通常以下の用途で使用されます。
- AWSサービスがリソースにアクセスする際の権限付与
- クロスアカウントアクセス
- 一時的な認証情報を利用するアプリケーション
IAMユーザーとは?
IAMユーザーは、AWSリソースへのアクセス権を持つアカウントです。
ユーザーごとに独自の認証情報(ユーザー名とパスワード、またはアクセスキー)を持ちます。
- ユーザー名とパスワード
- アクセスキー(プログラムやCLIで利用する場合)
IAMユーザーの管理やアカウントスイッチ時のベストプラクティスについても解説しています。
実際にやってみた
1. IAMポリシーの作成
AWSマネジメントコンソールにログインし、左メニューから「IAMサービス」→「ポリシー」を選択します。
「ポリシーを作成」をクリックします。
「アクセス許可を指定」の画面で、サービスとして「S3」を選択し、すべてのアクションを許可します。
ポリシー名を「S3ReadWritePolicy」として作成します。
2. IAMロールの作成とポリシーのアタッチ
左メニューから「ロール」を選択し、「ロールを作成」をクリックします。
「信頼されたエンティティタイプ」を選択し、ユースケースとして「S3」を選択します。
「許可を追加」画面で、先ほど作成したポリシー(S3ReadWritePolicy)を選択します。
ロールに名前を付けて保存します(例: S3AccessRole)。
信頼ポリシーのJSONは以下の通りです。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "s3.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
3. IAMユーザーの作成
次に、左メニューから「ユーザー」を選択し、「ユーザーを追加」をクリックします。
ユーザーの詳細設定画面で、ユーザー名に「test-user」を入力し、IAMユーザーを作成します。
次の画面で、許可の設定項目にて、先ほど作成したカスタムポリシーを選択し、適用します。
最終確認画面で、設定内容に問題がないことを確認したら、「ユーザーの作成」ボタンをクリックします。
少し時間がかかることがありますが、ユーザーが正しく作成されたことを確認できます。
作成したIAMユーザーでのログイン
作成したIAMユーザーの認証情報(ユーザー名とパスワード)を使い、AWSのサインインページにアクセスします。
アカウントIDまたはエイリアスを入力し、「IAMユーザー」としてログインします。
ログイン後、許可されたリソースやサービスに正常にアクセスできることを確認します。
今回は「S3」のみ許可しているポリシーを適用しているため、S3サービスには問題なくアクセスできました。
一方で、「EC2」など他のサービスにアクセスしようとすると、「APIエラー」となり、アクセスが制限されていることが確認できました。
まとめ
AWSのIAMポリシーを正しく設定することは、個人情報や重要なデータを守る上で非常に重要です。
AWSを利用する際は、最小権限の原則を心がけ、適切に運用していくことが大切です。
今回の内容は基本的なものですが、非常に重要な知識です。本記事が誰かの技術的な助けとなれば幸いです!
関連記事