AWS IAM実験記。aws-cloud-tech課題

私はIAMがわかっていない。
I am not friendly with IAM.
ということで実験しよう。

くろかわさんのIAM講座でなんとなくイメージはできてるぞよ。

# 1. IAMユーザの巻
- 1.1 ユーザAを作成し、S3のAll権限付与
- 1.2 ユーザBを作成し、S3の読み込み権限付与
- 1.3 ユーザAでログインしてS3バケット作成&アップロード
- 1.4 ユーザBでログインしてS3バケット作成できないこと&アップロードできないことを確認


### 1.1 ユーザAを作成し、S3のAll権限付与
まずはとりあえず ユーザAを作成してみよう。
tech-testA で作成。
![スクリーンショット 2021-11-17 12.55.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/3833e8a0-de70-e19f-6494-52109dd5b0e2.png)


次、付与する権限はAmazonS3FullAccessでGOGO
![スクリーンショット 2021-11-17 12.56.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/f35c9faf-6b42-65e1-dc4a-61b0f70ddeb5.png)



タグは　とりあえずユーザ名と同じのにを設定。
![スクリーンショット 2021-11-17 12.56.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/09e9d913-2c47-a0d1-71d4-3c14f9dc7027.png)




確認画面

![スクリーンショット 2021-11-17 12.58.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/46c4e664-debb-6242-0e77-e9760e4ac52b.png)


できあがり

![スクリーンショット 2021-11-17 12.59.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/2e0498db-66c1-8e87-9b1b-0ffcc57b3af6.png)


### 1.2 ユーザBを作成し、S3の読み込み権限付与
作り方はAと同じなので、記載は省略。

でけた結果。　AmazonS3ReadOnlyAccessのポリシーをアタッチ。
![スクリーンショット 2021-11-17 17.09.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/9a2efc83-fa70-ce24-1ca7-2de85e55523b.png)

### 1.3 ユーザAでログインしてS3バケット作成&アップロード
ではーー、ユーザAでログインしてみるっす。AはS3のフルアクセス。
![スクリーンショット 2021-11-17 17.19.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/0195bd2f-7097-530e-bbc7-c62c56c5d435.png)

ちなみに、VPCを覗いてみると
![スクリーンショット 2021-11-17 17.20.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/239042f3-6bcf-854a-c19b-bde08e0ea1e2.png)

再試行しますか？とでて、S3の権限しか与えてないからだね。それにしても、なんかメッセージ荒いなw

では、次S3バケット作成
![スクリーンショット 2021-11-17 17.21.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/67458560-4095-8c44-0205-b678c3d257bd.png)

無事に作れましたOKOK
![スクリーンショット 2021-11-17 17.22.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/252a431b-7e0c-2682-bf0c-b0c37846ee51.png)

ファイルアップロードするべ。昨日の晩飯。もっかいたべたい。
![IMG_20211116_194715.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/0c0cf2d5-6a85-8061-db9f-f6ec0012ec32.jpeg)

アップロード成功。いいねいいね
![スクリーンショット 2021-11-17 17.22.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/a3344229-ca51-c034-2006-252256995607.png)


### 1-4. ユーザBでログインしてS3バケット作成できないこと&アップロードできないことを確認
ユーザB（S3のreadonly権限のみ付与）でログインして、S3バケット作成じゃ。
![スクリーンショット 2021-11-17 17.41.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/bf9da951-4333-c816-0bf0-d6f83c9e4d6f.png)

作成ボタンを押すと、、Access Denied ！で失敗！　いい感じ！
![スクリーンショット 2021-11-17 17.42.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/9e7881e7-0184-c078-7586-c221e5112e2f.png)

先ほどユーザAで作ったS3バケットとアップロードしたファイルにアクセスはできる
![スクリーンショット 2021-11-17 17.44.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/429a0329-f5f5-f79e-2513-116a7f24b4da.png)

じゃこのバケットに、ユーザBでアップロードしてみよう。
![スクリーンショット 2021-11-17 17.46.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/156287f8-3335-3508-5a83-17399268327f.png)

アップロードボタンを押すと、、、、
ド派手にエラー！いい感じ！
![スクリーンショット 2021-11-17 17.46.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/16d9e744-04d8-cb3c-32f2-ae0cf9b36476.png)

---


## 2. IAMグループの巻
2-1.グループ1を作成し、S3のAll権限を付与
2-2.グループ2を作成し、S3の読み込み権限を付与
2-3.ユーザC,ユーザDを作成し、グループ1に配属
2-4.ユーザE,ユーザFを作成し、グループ2に配属
2-5. ユーザC,ユーザDがS3に書き込めることを確認
2-6. ユーザE、ユーザFがS3に書き込めないことを確認する。

### 2-1. グループ1を作成し、S3のAll権限を付与
ユーザグループのメニューを開いて、グループ1をつくる。 
「個のユーザグループ」？　どういう訳や。
![スクリーンショット 2021-11-17 18.01.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/2f255102-0a38-80d4-306f-5a1219d96eee.png)

![スクリーンショット 2021-11-17 18.01.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/669a1861-ca13-72d1-3dcc-ae123686ec74.png)

ポリシーはS3フルアクセス
![スクリーンショット 2021-11-17 18.01.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/7ed02f09-05ab-b3f3-05d8-307cae671695.png)

作成完了。
![スクリーンショット 2021-11-17 18.02.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/34bfa7db-c534-262f-7ad2-fa1399910fe6.png)

#### 2-2.グループ2を作成し、S3の読み込み権限を付与
お次は同様にグループ2を作成。S3の読み込み権限飲み付与。
![スクリーンショット 2021-11-17 18.03.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/a0df15bd-ef0d-c9bf-bc19-35f391f9e8cf.png)


### 2-3.ユーザC,ユーザDを作成し、グループ1に配属させる
ではーユーザCを作成じゃ。
![スクリーンショット 2021-11-17 18.11.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/c06290b5-4a15-5cbd-6d9c-7a690ad54d45.png)

ここで、アクセス許可の設定でさっき作った、グループ1に追加！
![スクリーンショット 2021-11-17 18.12.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/58083b2e-f6c0-9d79-a0ec-c1f994ab7a02.png)



ユーザDも同様にして、完了後。こんな感じ。
![スクリーンショット 2021-11-17 18.18.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/a934793c-0ece-1bf6-e9f4-dd30b585ecdf.png)


### 2-4.ユーザE,ユーザFを作成し、グループ2に配属
2-3と同じななので詳細は省略。
結果こんな感じ。 
![スクリーンショット 2021-11-17 18.22.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/06d24369-794f-0922-9ebd-b041ee6304c2.png)


### 2-5. ユーザC,ユーザDがS3に書き込めることを確認
まずはユーザCでS3バケット作成
![スクリーンショット 2021-11-17 18.29.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/5c891997-e4e9-0715-26cc-f00eb8c944e3.png)

![スクリーンショット 2021-11-17 18.29.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/969c9800-3f99-9374-bb31-83018ed2524a.png)
いい感じ。


次はユーザDでS3バケット作成

![スクリーンショット 2021-11-17 18.33.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/c3f614e2-ea8d-6104-f569-dcc212861536.png)
OKOK。ちょっと飽きてきた。

### 2-6. ユーザE、ユーザFがS3に書き込めないことを確認する。
ではーユーザE,ユーザFやってみます。
E作成失敗。OKOK
![スクリーンショット 2021-11-17 18.36.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/2de3ba3a-6f79-5d93-7d33-daa8aafa9f9b.png)

Fも作成失敗。OKOK
![スクリーンショット 2021-11-17 18.39.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/b88b5c0a-cdc9-8b28-cd4c-d97baa039116.png)

ということで、IAMグループの検証終了。

---

## 3. EC2にロールをアタッチ
- 3-1 S3Full権限のロールを作成
- 3-2. EC2Aを作成し、3-1.で作成したロールをアタッチ
- 3-3. EC2AからS3バケットに書き込みできることを確認

### 3-1 S3Full権限のロールを作成
![スクリーンショット 2021-11-17 23.06.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/8f02afe6-13d2-db44-552f-710d0dd81eff.png)

![スクリーンショット 2021-11-17 23.06.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/53b0f607-bac0-bcb9-2968-dfe7f4367b27.png)


![スクリーンショット 2021-11-17 23.07.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/a5f3ddab-5214-c97c-9f93-341ac6d06ee8.png)

完成
![スクリーンショット 2021-11-17 23.07.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/613f14f5-2ce2-3206-3ada-85488aa630b6.png)


### 3-2. EC2Aを作成し、3-1.で作成したロールをアタッチ
EC2作成。インスタンスの詳細設定画面でIAMロールを3-1で作ったS3Full権限のロールをアタッチ。
![スクリーンショット 2021-11-17 23.17.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/17ddd58a-faeb-9a0a-edf6-846fef9486c4.png)

一応タグで名前、 tech-test-ec2-1と命名。
![スクリーンショット 2021-11-17 23.18.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/b6ecaa60-6806-b1b8-ea6b-2332fafa8872.png)

### 3-3. EC2AからS3バケットに書き込みできることを確認

インスタンスに接続する。
![スクリーンショット 2021-11-17 23.21.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/810e4a1a-56e9-7bb2-45b5-d647f1c3dc07.png)

![スクリーンショット 2021-11-17 23.22.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/75a06b9b-6f55-5241-cc32-f5be7906a6fe.png)

terminalこれでいけるのか？　　いってみよー
![スクリーンショット 2021-11-17 23.23.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/bc3e75ce-d0b5-e19c-0a1b-0c9285500cff.png)
いけた。すげーaws。
とりあえず aws s3 ls 
![スクリーンショット 2021-11-17 23.24.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/031642db-8bda-9c52-7d53-b191a1a3ada9.png)
おおーーみれてる！！

適当なファイルを作成して、tech-test-a-bucketにアップロードしみてる。
![スクリーンショット 2021-11-17 23.26.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/99bd88e5-e51e-1d00-642a-fa4bb7005ebf.png)

![スクリーンショット 2021-11-17 23.29.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/ddc94d31-11a7-5aa5-9b5d-b388412b7217.png)

いけったっぽい。ほんまか？
![スクリーンショット 2021-11-17 23.30.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/af1c43be-81c8-01c7-f38c-c78ea8cbced7.png)
いけてるー！！

削除してみよ。
![スクリーンショット 2021-11-17 23.32.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/df4ef5a8-8a17-4b78-5518-61e9442a99dc.png)

![スクリーンショット 2021-11-17 23.32.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/7cba3bc4-d606-74f7-79f4-bf622f8a8a91.png)

おおおお！！！



## S3のバケットポリシー　（リソースベースポリシーの一種。たぶん）の巻
-　1.1 ユーザAで作成したバケットに、ユーザC(S3のFull権限を持っている)の全ての操作をDenyするバケットポリシーを作成
-　1.2 ユーザCで1.1で作成したバケットにアクセスする。

### 1.1 ユーザAで新規バケットを作成し、ユーザC(S3のFull権限を持っている)の全ての操作をDenyするバケットポリシーを作成
ユーザAでログインして、test-tech-a-backetを確認。
![スクリーンショット 2021-11-18 21.16.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/9b561343-82aa-aba4-08b6-ab4add2cec43.png)

ここに、バケットポリシーを適用する（ポリシージェネレータで作った結果をはってます）

test-tech-a-backetに対し、tech-testCの全てのs3操作権限を剥奪する。
![スクリーンショット 2021-11-18 21.15.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/0f651868-c4c8-b04d-1ec5-f2507a4c0ef1.png)


-　1.2 ユーザCで1.1で作成したバケットにアクセスする。

アクセスがエラーになっている。
![スクリーンショット 2021-11-18 21.12.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/3fd68efa-a3e3-37ce-2665-ed8eddb54de5.png)

さらにバケットにはいってみると、無事、エラーでおこられてます。。
![スクリーンショット 2021-11-18 21.13.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/75b6e05d-e5e6-140a-14fb-ba53891895f9.png)

他のタブでも　ちゃんと怒れてるぅぅ！
![スクリーンショット 2021-11-18 21.13.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/697a4606-ee7e-74ac-555e-f46b788f14f7.png)
![スクリーンショット 2021-11-18 21.13.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82730/76ca859c-052c-48b0-aa35-6d7af149ca62.png)


ということで、ざっと簡単なIAMの実験記録でした。
楽しくなってきたAWS!


---
この記事はAWS初学者を導く体系的な動画学習サービス
「AWS CloudTech」の課題カリキュラムで作成しました。
https://aws-cloud-tech.com