【備忘録】AWS S3 + IAM概要 + 構築手順

# S3
**オブジェクトストレージのAWSリソース**

### バケット
オブジェクトの保存場所
### オブジェクト
バケットの中にあるデータ本体
### メタデータ
オブジェクトにまつわるデータの情報

### バケットポリシー・ACL
**バケットポリシー:S3バケットへのアクセス権限設定
ACL**:**バケット・オブジェクト単位でのアクセス権限設定**

### ブロックパブリックアクセス
**バケット・オブジェクト単位で意図せず外部公開出来ないようにする設定**

## S3構築手順
**1.S3バケットの作成
2.IAMロールの作成・アタッチ**

**1-1.S3バケット名・ブロックパブリックアクセス設定を指定する**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3348923/30ee2f54-8b45-437c-8650-5f875e099ea5.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3348923/ad7a2c9f-71aa-49d4-9a01-f1f51727cd2d.png)

**2-1.ポリシーを付与するサービスを選択**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3348923/56dfa57f-9174-44fd-8328-81e9d1babcd7.png)
**2-2.許可したいアクション・適用したいS3バケット・オブジェクトを選択する**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3348923/122f6f4b-a504-4b89-8134-192fda8fc90c.png)
**2-3.ポリシー名を指定して作成する**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3348923/4c292a09-d514-4834-96c3-8b2b506eda9e.png)


**2-4.ロールを使うAWSリソースを選択する**
![image (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3348923/221b6186-fd8e-46d3-b49b-65e0d1080f85.png)



# IAM
**AWSリソースに対する操作を認証認可によってユーザ単位で制御する仕組み**

### IAMユーザ
AWSの利用者・アプリケーションが**AWSリソースの操作を行うため**に使用するもの

**認証**
- ユーザ名 + パスワード
- アクセスキー

### IAMグループ
**IAMユーザをまとめたグループ
グループでユーザに対する権限の一括管理を行える**

### IAMポリシー
JSON形式で書かれた**AWSリソースへの権限設定**
**管理ポリシー:IAMユーザ・IAMグループにアタッチして使う
インラインポリシー:IAMユーザ・IAMグループに埋め込んで使う
明示的な拒否 > 明示的な許可 という順で評価される**

### IAMポリシーの書き方
**Effect:許可→Allow、拒否→Deny
Action:AWS操作を指定
Resource:AWSリソースを指定
Conditon:有効になる条件を指定**

### IAMロール
**AWSリソースに対して**他のAWSリソースへの操作権限を付与する仕組み
例)EC2からS3を使う
EC2にアクセスキーを持たせてS3にアクセスするのに比べて安全性が高い

## S3 + EC2にアタッチしたIAM構築手順

**1.S3バケットの作成
2.IAMロールの作成・アタッチ**

**1-1.S3バケット名・ブロックパブリックアクセス設定を指定して作成する**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3348923/4d4f7a6e-8541-48d6-bfac-8ccc0a32324d.png)

![image 1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3348923/3c329302-061f-4846-82c5-e08a309bd1af.png)

**2-1.ポリシーを付与するサービスを選択**
![image 2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3348923/03f7a717-ee60-4658-8fa1-009d46903fc8.png)

**2-2.許可したいアクション・適用したいS3バケット・オブジェクトを選択する**
![image 3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3348923/1d6d5add-d4f9-4279-a509-635a18357b56.png)

**2-3.ポリシー名を指定して作成する**
![image 4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3348923/ee3f9ffb-4ae3-4566-b9ae-14e5671b247c.png)

**2-4.ロールを使うAWSリソースを選択する**
![image 5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3348923/37825e76-be63-4dd1-a5a5-7b1c1ef6d063.png)

**2-5.作成したIAMポリシーをアタッチする**
![image 6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3348923/77c5c4bc-9352-48dc-93ce-8c6d73907a8c.png)

**2-6.IAMロールの名前を指定して作成する**
![image 7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3348923/48284c88-28f2-4515-9566-546060fa64e8.png)

**2-7.IAMロールをアタッチしたいEC2を選択してアクション→IAMロールを変更をクリックする**
![image 8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3348923/adff5cf4-4056-447b-994c-8b132d895889.png)

**2-8.アタッチしたいIAMロールを選択する**
![image 9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3348923/2751209c-84c0-48a2-970f-6d4a7ef3923c.png)