[AWS]アクセス権限を管理する方法

**2020年2月15日現在の内容です。**

構成イメージ
<img width="1109" alt="スクリーンショット 2020-02-15 12.56.20.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/b2b5bb3f-5212-02b9-45e5-553d828796f2.png">


## 用語説明
### IAM(Identity and Access Management)
AWSサービスを利用するユーザー権限を管理するサービス

概要

- AWSサービスをセキュアに操作するために、認証・認可の仕組みを提供する
- 各AWSサービスに対して別々のアクセス権限をユーザー毎に付与できる
- IAMの利用は無料

---

- ポリシー
    - アクセス許可の定義
- ユーザー
    - 個々のアカウントのユーザー
- グループ
    - IAMユーザーの集合(複数のユーザーにアクセス許可を付与する作業を簡素化できる)
- ロール
    - 一時的にアクセスを許可したアカウントを発行(EC2やLambdaなどのAWSリソースに権限を付与するために使用)

## IAMのベストプラクティス
- 個々人にIAMユーザーを作成する
- ユーザーはグループに所属させてグループに権限を割り当てる
- 権限は最小限にする
- EC2インスタンスから実行するアプリケーションはロールを使用する
- 定期的に不要な認証情報を削除する

## IAMポリシーの作成
AWSコンソールからIAMを検索し、クリック
<img width="1680" alt="スクリーンショット 2020-02-13 19.32.50.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/1c705f5f-8333-1e76-98a9-8835bc34abce.png">

サイドバーからポリシーをクリック
<img width="1680" alt="スクリーンショット 2020-02-13 19.37.50.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/0370ce35-2cc1-d412-25ac-feb9768d6ecc.png">

「ポリシーの作成」をクリック
<img width="1680" alt="スクリーンショット 2020-02-13 19.38.59.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/954bc005-1fa7-d54a-6952-5c49fc004ad8.png">

以下の通り設定
<img width="1680" alt="スクリーンショット 2020-02-13 19.41.29.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/a31b691f-8fef-b719-7453-92de373a5ec1.png">

「さらにアクセス許可を追加する」をクリック
同様に以下の通り設定し、「ポリシーの確認」をクリック
<img width="1680" alt="スクリーンショット 2020-02-13 19.43.48.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/594c3846-397a-9926-6895-3b7671ca671a.png">

名前、説明に任意名を入力
設定内容を確認し、「ポリシーの作成」をクリック
<img width="1680" alt="スクリーンショット 2020-02-13 19.46.26.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/5e10353c-5e3e-4b15-adb3-c853354a2282.png">

ポリシーが作成されていることを確認
<img width="1680" alt="スクリーンショット 2020-02-13 19.49.32.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/910af09b-7c97-aef9-c638-d5d8b2f460ba.png">

同様に、「ポリシーの作成」をクリック
以下の通り設定し、「ポリシーの確認」をクリック
<img width="1680" alt="スクリーンショット 2020-02-13 19.51.43.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/b20d20f5-92ba-dbab-8475-a7224bf43e04.png">

名前、説明に任意名を入力
設定内容を確認し、「ポリシーの作成」をクリック
<img width="1680" alt="スクリーンショット 2020-02-13 19.54.24.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/67e75ba9-fa92-8847-0d35-57f62aa2b380.png">

ポリシーが作成されていることを確認
<img width="1680" alt="スクリーンショット 2020-02-13 19.55.35.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/51d2a71c-b1ee-0f79-78d7-db29ddd61975.png">

## IAMグループの作成
サイドバーからグループをクリック
<img width="1680" alt="スクリーンショット 2020-02-13 19.58.53.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/b5343c95-cc3d-05e8-215f-c1b93256e0d5.png">

「新しいグループの作成」をクリック
<img width="1680" alt="スクリーンショット 2020-02-13 19.59.56.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/fbef27e5-6514-9fb9-35a3-9bc8b0c08210.png">

任意のグループ名を入力し、「次のステップ」をクリック
<img width="1680" alt="スクリーンショット 2020-02-13 20.05.33.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/c334a915-0342-59d7-bb75-aeb29cb6a712.png">

作成したDeveloperPolicyを選択し、「次のステップ」をクリック
<img width="1680" alt="スクリーンショット 2020-02-13 20.07.35.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/1b124e0e-2c42-0906-14e0-14877082d3a5.png">

設定内容を確認し、「グループの作成」をクリック
<img width="1680" alt="スクリーンショット 2020-02-13 20.09.08.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/15e10953-b723-9f76-0c92-b7224966f751.png">

グループが作成されていることを確認
<img width="1680" alt="スクリーンショット 2020-02-13 20.11.47.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/6f12495a-d7ae-1a48-4646-d164504925aa.png">

同様に、「新しいグループの作成」をクリック
<img width="1680" alt="スクリーンショット 2020-02-13 20.12.40.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/35131b54-9daf-dae2-43f7-0af76930fc70.png">

任意のグループ名を入力し、「次のステップ」をクリック
<img width="1680" alt="スクリーンショット 2020-02-13 20.17.12.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/fbf44da7-d1e4-1e8c-5bf2-f628809364f9.png">

作成したDirectorPolicyを選択し、「次のステップ」をクリック
<img width="1680" alt="スクリーンショット 2020-02-13 20.18.32.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/d51c6f1b-b389-9984-f077-f387be9eedca.png">

設定内容を確認し、「グループの作成」をクリック
<img width="1680" alt="スクリーンショット 2020-02-13 20.19.41.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/4d414a77-3427-885e-ce5a-4c98d4e0d0c9.png">

グループが作成されていることを確認
<img width="1680" alt="スクリーンショット 2020-02-13 20.21.54.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/b9a6560b-5632-b77b-9bc1-0a0cf49f22bc.png">

## IAMユーザーの作成
サイドバーからユーザーをクリック
<img width="1680" alt="スクリーンショット 2020-02-15 10.19.08.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/78893810-a7f1-738f-f97a-cf0e3c225de0.png">

「ユーザーを追加」をクリック
<img width="1680" alt="スクリーンショット 2020-02-15 10.19.59.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/ef1bc075-3cdd-2500-cc64-1a67266ee57a.png">

以下の通り設定し、「次のステップ」をクリック
ユーザー名：任意名
アクセスの種類：「AWS マネジメントコンソールへのアクセス」
<img width="1680" alt="スクリーンショット 2020-02-15 10.23.06.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/6b318731-c59f-8fe2-7d21-98e6fe67c0c0.png">

ユーザーをグループに追加　→　作成したDeveloperグループをチェックし、「次のステップ」をクリック
<img width="1680" alt="スクリーンショット 2020-02-15 10.26.14.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/7dcd4a40-2d57-014b-c762-640cd05eec4f.png">

タグは設定せず、「次のステップ」をクリック
<img width="1680" alt="スクリーンショット 2020-02-15 10.30.39.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/c01f530f-af87-c832-0ba5-fe51e8f54972.png">

設定内容を確認し、「ユーザーの作成」をクリック
<img width="1680" alt="スクリーンショット 2020-02-15 10.32.03.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/6cb9a351-94ee-f1fb-4074-5d7c68f34979.png">

Eメールの送信及びCSVのダウンロードを行っておく
<img width="1680" alt="スクリーンショット 2020-02-15 10.33.10.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/26e5573e-647f-c10c-4a97-c5513ca072cf.png">

ユーザーが作成されていることを確認
<img width="1680" alt="スクリーンショット 2020-02-15 10.36.43.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/0e16597b-2293-26d4-bb3b-2becad3a88b9.png">

同様に、「ユーザーを追加」をクリック
<img width="1680" alt="スクリーンショット 2020-02-15 10.38.32.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/86f68aff-a32e-4d08-93c7-92db7b37e534.png">

以下の通り設定し、「次のステップ」をクリック
ユーザー名：任意名
アクセスの種類：「AWS マネジメントコンソールへのアクセス」
<img width="1680" alt="スクリーンショット 2020-02-15 10.40.44.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/8f0a5788-6132-1fd7-5a25-adb4af2e2e69.png">

ユーザーをグループに追加　→　作成したDirectorグループをチェックし、「次のステップ」をクリック
<img width="1680" alt="スクリーンショット 2020-02-15 10.42.21.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/e258d5fe-e084-b1f6-57ee-b864a80990fc.png">

タグは設定せず、「次のステップ」をクリック
<img width="1680" alt="スクリーンショット 2020-02-15 10.44.18.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/12c55b34-d476-2382-c24e-85d1d0926cd2.png">

設定内容を確認し、「ユーザーの作成」をクリック
<img width="1680" alt="スクリーンショット 2020-02-15 10.46.08.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/d2818ef5-bd73-d17f-6e41-31a85cdc2ee2.png">

Eメールの送信及びCSVのダウンロードを行っておく
<img width="1680" alt="スクリーンショット 2020-02-15 10.50.21.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/0a839e07-8c06-539f-b4a2-8d21e67b53b0.png">

ユーザーが作成されていることを確認
<img width="1680" alt="スクリーンショット 2020-02-15 10.51.29.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/4e00b413-ff2c-d432-8a8b-d331ae9814ce.png">

## IAMロールの作成
サイドバーからロールをクリック
<img width="1680" alt="スクリーンショット 2020-02-15 11.01.35.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/7316ae6a-90f7-654c-a380-1a0b696df993.png">

「ロールの作成」をクリック
<img width="1680" alt="スクリーンショット 2020-02-15 11.02.33.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/e0ed1856-0ded-e2a0-2344-63c535aac015.png">

AWSサービス　→　EC2をチェックし、「次のステップ」をクリック
<img width="1680" alt="スクリーンショット 2020-02-15 11.03.54.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/6e0e8a3a-9bdc-91d1-83a4-ba70b0f8cf25.png">

AmazonS3FullAccessをチェックし、「次のステップ」をクリック
<img width="1680" alt="スクリーンショット 2020-02-15 11.07.16.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/c421214a-923b-404a-44b2-885304f954aa.png">

タグは設定せず、「次のステップ」をクリック
<img width="1680" alt="スクリーンショット 2020-02-15 11.09.19.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/06547beb-3003-8ed9-4834-1333e6b4e44e.png">

任意のロール名を入力し、「ロールの作成」をクリック
<img width="1680" alt="スクリーンショット 2020-02-15 11.10.50.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/5b5ed92f-d8ee-c584-5f6d-5122d740dfca.png">

ロールが作成されていることを確認
<img width="1680" alt="スクリーンショット 2020-02-15 11.12.51.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/bc900217-a84d-70a7-25d2-2f4732719573.png">

## IAMロールのアタッチ
EC2に移動
インスタンス　→　アクション　→　インスタンスの設定　→　IAMロールの割り当て/置換をクリック
<img width="1680" alt="スクリーンショット 2020-02-15 11.20.19.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/bb580d27-1fba-42ae-accd-787c2ec020f6.png">

作成したロールを選択し、「適用」をクリック
<img width="1680" alt="スクリーンショット 2020-02-15 11.22.59.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/a409bf99-7865-8add-f565-1b9b08ac5511.png">

ロールが適用されていることを確認
<img width="1680" alt="スクリーンショット 2020-02-15 11.25.04.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397642/33616f46-2ab6-fe0e-a69e-cca40fa06952.png">

EC2インスタンスにログイン
`ssh -i test-ssh-key.pem ec2-user@18.179.167.73`

S3にアクセスできることを確認

```
[ec2-user@ip-10-0-10-10 ~]$ aws s3 ls
2020-02-02 08:45:43 test-aws-wp
```

## 参考
[AWS：ゼロから実践するAmazon Web Services。手を動かしながらインフラの基礎を習得](https://www.udemy.com/course/aws-and-infra/)