初心者向け：ポリシー、ロール、ユーザー作成の手順とログインまでの検証

## はじめに
AWSを利用する上で、セキュリティや権限管理は非常に重要です。

IAMを使えば、AWSリソースへのアクセスをきめ細かく管理することができます。

:::note
この記事では、以下の内容について解説します。
- **IAMポリシー の作成**
- **IAMロール の作成**
- **IAMユーザー の作成**
- **作成したユーザーでログインしてみる**
:::

AWS初心者の方でも理解できるように、基本的な知識から実際の操作手順まで詳しく説明します。

## 知識整理
### IAMポリシーとは？
IAMポリシーは、AWSリソースへのアクセス権限を定義するドキュメントです。ポリシーはJSON形式で記述され、以下の要素を指定します。

:::note warn
- **リソース (Resource):** 
どのリソースにアクセスするか
- **アクション (Action):** 
どの操作を許可するか（例: s3:GetObject）
- **条件 (Condition):** 
アクセス許可に条件を設定する場合
- **エフェクト (Effect):** 
許可するか拒否するか（Allow または Deny）
:::

IAMポリシーをJSONで定義する際のよくあるユースケースについては、以下の記事で詳しく解説しています。

興味のある方はぜひ参考にしてください。

https://qiita.com/free-honda/items/5bb71782c8a84585206a

### IAMロールとは？
IAMロールは、一時的な権限を与えるためのIAMエンティティです。ロールは通常以下の用途で使用されます。

:::note warn
- **AWSサービスがリソースにアクセスする際の権限付与**
- **クロスアカウントアクセス**
- **一時的な認証情報を利用するアプリケーション**
:::

### IAMユーザーとは？
IAMユーザーは、AWSリソースへのアクセス権を持つアカウントです。

ユーザーごとに独自の認証情報（ユーザー名とパスワード、またはアクセスキー）を持ちます。

:::note warn
- **ユーザー名とパスワード**
- **アクセスキー（プログラムやCLIで利用する場合）**
:::

IAMユーザーの管理やアカウントスイッチ時のベストプラクティスについても解説しています。

https://qiita.com/free-honda/items/e306b7d752e74e1b4c04

## 実際にやってみた

### 1. IAMポリシーの作成

AWSマネジメントコンソールにログインし、左メニューから「IAMサービス」→「ポリシー」を選択します。

![スクリーンショット 2024-11-20 20.50.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/50b901c9-e8c8-6583-82dd-27188b8b70e5.png)

「ポリシーを作成」をクリックします。

![スクリーンショット 2024-11-20 20.51.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/6b8e1375-9d02-1d71-20b1-a07147c36a85.png)

「アクセス許可を指定」の画面で、サービスとして「S3」を選択し、すべてのアクションを許可します。

![スクリーンショット 2024-11-20 20.56.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/07f33e58-6e96-80b7-5fbf-a8ad6be5843f.png)

ポリシー名を「S3ReadWritePolicy」として作成します。

![スクリーンショット 2024-11-20 21.11.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/e71817e4-ff49-503e-9363-64a224766f75.png)

### 2. IAMロールの作成とポリシーのアタッチ

左メニューから「ロール」を選択し、「ロールを作成」をクリックします。

![スクリーンショット 2024-11-20 21.13.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/1f453341-6707-4398-20dc-4407cf19d3d5.png)

「信頼されたエンティティタイプ」を選択し、ユースケースとして「S3」を選択します。

![スクリーンショット 2024-11-20 21.14.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/eb79784e-2b28-7af1-286a-f951df531d0b.png)

「許可を追加」画面で、先ほど作成したポリシー（S3ReadWritePolicy）を選択します。

![スクリーンショット 2024-11-20 21.17.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/ee114956-e256-708b-ab34-8d51e22379d4.png)

ロールに名前を付けて保存します（例: S3AccessRole）。

![スクリーンショット 2024-11-20 21.27.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/033be7df-d3d7-294d-2115-4ee8165946d4.png)

信頼ポリシーのJSONは以下の通りです。

```json
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "s3.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

### 3. IAMユーザーの作成
次に、左メニューから「ユーザー」を選択し、「ユーザーを追加」をクリックします。

![スクリーンショット 2024-11-20 21.32.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/0e2dd309-9aa6-7745-8b8c-0e0d312e32c0.png)

ユーザーの詳細設定画面で、ユーザー名に「test-user」を入力し、IAMユーザーを作成します。

![スクリーンショット 2024-11-20 21.33.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/104d0d28-3665-c057-45ba-1cfc6360f7f5.png)

次の画面で、許可の設定項目にて、先ほど作成したカスタムポリシーを選択し、適用します。

![スクリーンショット 2024-11-20 21.36.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/9a1472d4-8c71-a18d-e3f0-7864511ee719.png)

最終確認画面で、設定内容に問題がないことを確認したら、「ユーザーの作成」ボタンをクリックします。

![スクリーンショット 2024-11-20 21.37.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/7cbb9c8a-3eef-8fca-0da4-06c4f2b43606.png)

少し時間がかかることがありますが、ユーザーが正しく作成されたことを確認できます。

![スクリーンショット 2024-11-20 21.41.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/fd1693e1-a2e8-5ed7-c0c8-765dbf5e489b.png)

## 作成したIAMユーザーでのログイン

作成したIAMユーザーの認証情報（ユーザー名とパスワード）を使い、AWSのサインインページにアクセスします。

![スクリーンショット 2024-11-20 21.47.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/8d6603af-37ef-d070-c547-297da9171196.png)

アカウントIDまたはエイリアスを入力し、「IAMユーザー」としてログインします。

![スクリーンショット 2024-11-20 21.47.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/8b30ce00-bd33-9f37-1f14-111fdf4f4566.png)

ログイン後、許可されたリソースやサービスに正常にアクセスできることを確認します。

![スクリーンショット 2024-11-20 21.51.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/8ebb0ad9-ec75-a12a-fcc9-5212745fe211.png)

今回は「S3」のみ許可しているポリシーを適用しているため、S3サービスには問題なくアクセスできました。

![スクリーンショット 2024-11-20 21.55.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/043488f9-ffd2-2469-cc95-bf2904d3e7e2.png)

一方で、「EC2」など他のサービスにアクセスしようとすると、「APIエラー」となり、アクセスが制限されていることが確認できました。

## まとめ

AWSのIAMポリシーを正しく設定することは、個人情報や重要なデータを守る上で非常に重要です。

:::note warn
**AWSを利用する際は、最小権限の原則を心がけ、適切に運用していくことが大切です。**
:::

今回の内容は基本的なものですが、非常に重要な知識です。本記事が誰かの技術的な助けとなれば幸いです！

## 関連記事

https://qiita.com/free-honda/items/e306b7d752e74e1b4c04

https://qiita.com/montama/items/90bb8a3973d101be4690