AWS IAM ユーザでのS3バケット作成
heroku で画像保存するには容量の制限があるため
Amazon S3 に画像などを保存することに
すでにIAMユーザは作成しているので
まずはIAMユーザでログイン
なお、ログインのときには認証にMFAを導入しているため
ipod touch のアプリ
Authenticator
を使用してログイン
![Screenshot from 2016-09-09 22:12:21](https://wp.developapp.net/wp-content/uploads/2016/09/Screenshot-from-2016-09-09-221221-300x187.png)
しかし、パスワードが正しくても
Your password has expired. Contact your administrator to reset the password.
とメッセージがでるため
一度 root でログインしてパスワードを再設定
ログインしたら
Security & Credentials をクリック
![Screenshot from 2016-09-09 22:31:29](https://wp.developapp.net/wp-content/uploads/2016/09/Screenshot-from-2016-09-09-223129-300x151.png)
するとセキュリティの関係で
このまま root で続けるか、IAMユーザで行うか聞かれるので
Continue to Security Credentials をクリック
![Screenshot from 2016-09-09 23:09:24](https://wp.developapp.net/wp-content/uploads/2016/09/Screenshot-from-2016-09-09-230924-300x98.png)
次にダッシュボードから
Users をクリックし、
パスワードを変更したいユーザにチェックをいれます
![Screenshot from 2016-09-09 23:13:57](https://wp.developapp.net/wp-content/uploads/2016/09/Screenshot-from-2016-09-09-231357-300x130.png)
次に
User Actions をクリックし
Manage Password をクリック
![Screenshot from 2016-09-09 23:15:56](https://wp.developapp.net/wp-content/uploads/2016/09/Screenshot-from-2016-09-09-231556-300x183.png)
するとパスワードをどうしたいのかを聞かれるので
Replace existing password with new custom password
にチェックをいれ、新しいパスワードを設定します
Password に新しいパスワードを
Confirm Password には確認のため
もう一回新しいパスワードを入力します
![Screenshot from 2016-09-09 23:18:23](https://wp.developapp.net/wp-content/uploads/2016/09/Screenshot-from-2016-09-09-231823-300x94.png)
入力が終わったら、画面右下の Apply をクリック
これでパスワード変更ができます
![Screenshot from 2016-09-09 23:20:48](https://wp.developapp.net/wp-content/uploads/2016/09/Screenshot-from-2016-09-09-232048-300x153.png)
次にS3を使うためのポリシー割り当て
とはいっても、管理者権限のIAMアカウントで実験するのは問題ありと思うので
新規にIAMユーザを作成
新規IAMユーザ登録するには
Security Credential で User をクリックし
Create New Users をクリックします
![Screenshot from 2016-09-10 07:35:44](https://wp.developapp.net/wp-content/uploads/2016/09/Screenshot-from-2016-09-10-073544-300x236.png)
これでユーザ名を入力する画面になるので、今回は
S3user
としました
あとは
create をクリックすれば、新規IAMユーザが作成されます
![Screenshot from 2016-09-10 07:41:03](https://wp.developapp.net/wp-content/uploads/2016/09/Screenshot-from-2016-09-10-074103-300x170.png)
作成したときに
Show User Security Credentials
をクリックすることで、
AccessKey
Secret Access Key
を表示することができます。
これは後で使うのでメモしておきましょう
確認ができたら、Download Credentials をクリックします
![Screenshot from 2016-09-10 07:42:38](https://wp.developapp.net/wp-content/uploads/2016/09/Screenshot-from-2016-09-10-074238-300x164.png)
これにより、これらの情報をCSV ファイルとしてダウンロードすることができます
必要な値の確認ができたら、close を押してこの画面を閉じます
これでユーザの作成ができたので
今回作成したユーザに S3 にアクセスする権限を与えます
IAMユーザは権限を制限することで安全性を高める仕組みです
これならもしアカウントが流出しても、被害を最小限にすることができます
やり方は、まず作成したユーザをクリックします
![Screenshot from 2016-09-10 09:08:23](https://wp.developapp.net/wp-content/uploads/2016/09/Screenshot-from-2016-09-10-090823-300x152.png)
次に、Permissionsタブにある
Attach Policy をクリック
![Screenshot from 2016-09-10 09:10:38](https://wp.developapp.net/wp-content/uploads/2016/09/Screenshot-from-2016-09-10-091038-300x236.png)
すると権限一覧がでてくるので、今回はS3を全部使える権限の
AmazonS3FullAccess
にチェックを入れ
Attach Policy をクリックします
![Screenshot from 2016-09-10 09:14:54](https://wp.developapp.net/wp-content/uploads/2016/09/Screenshot-from-2016-09-10-091454-300x208.png)
これによりユーザ権限に AmazonS3FullAccess が追加されます
![Screenshot from 2016-09-10 09:17:41](https://wp.developapp.net/wp-content/uploads/2016/09/Screenshot-from-2016-09-10-091741-300x189.png)
次に作成したIAMユーザにパスワードを設定します
Security Credentials タブをクリックし
Manage Password をクリックします
![Screenshot from 2016-09-11 22:09:22](https://wp.developapp.net/wp-content/uploads/2016/09/Screenshot-from-2016-09-11-220922-300x141.png)
するとパスワード設定画面になります
自動でパスワードを設定してもらいたいのなら
Assign an auto-generated password をチェックしますが、
私の場合は KeepassX でパスワードを生成したいので、
Assign a custom password を選びパスワードを設定しました
設定したら、画面右下の Apply をクリックすれば反映されます
![Screenshot from 2016-09-11 22:13:02](https://wp.developapp.net/wp-content/uploads/2016/09/Screenshot-from-2016-09-11-221302-300x79.png)
これで Password の設定が Yes になります
さらに2段階認証をつけてセキュリティを向上させるために
Manage MFA Device をクリック
![Screenshot from 2016-09-11 22:17:31](https://wp.developapp.net/wp-content/uploads/2016/09/Screenshot-from-2016-09-11-221731-300x145.png)
今回は iphone や Android のアプリを使用するので
A virtual MFA device を選択して
Next Step をクリック
![Screenshot from 2016-09-11 22:19:47](https://wp.developapp.net/wp-content/uploads/2016/09/Screenshot-from-2016-09-11-221947-300x142.png)
すると解説がでます
すでにアプリをインストールしているので、これは
Next Step をクリック
![Screenshot from 2016-09-11 22:25:09](https://wp.developapp.net/wp-content/uploads/2016/09/Screenshot-from-2016-09-11-222509-300x111.png)
すると画面にQRコードが表示されるので
これをアプリで読み取り
Authentication Code 1
Authentication Code 2
に値を入力し
Activate Virtual MFA をクリックします
![Screenshot from 2016-09-11 22:26:52](https://wp.developapp.net/wp-content/uploads/2016/09/Screenshot-from-2016-09-11-222652-300x265.png)
なお、
Authentication Code 1
で表示された値を入力し
Authentication Code 2
へ次に表示された値をいれるようになります
詳しくは
多要素認証(MFA)仮想デバイスの有効化
を参考にしましょう
成功すると
ダイアログがでるので
Finish をクリックします
![Screenshot from 2016-09-12 00:02:53](https://wp.developapp.net/wp-content/uploads/2016/09/Screenshot-from-2016-09-12-000253-300x193.png)
ここまでできたら、URLを確認し、作成した S3user でログインします
ログインURLの確認は
dashbord をクリックすると表示されます
![Screenshot from 2016-09-12 00:16:51](https://wp.developapp.net/wp-content/uploads/2016/09/Screenshot-from-2016-09-12-001651-300x122.png)
AWSコンソールにログインしたら
S3をクリックします
![Screenshot from 2016-09-12 00:22:28](https://wp.developapp.net/wp-content/uploads/2016/09/Screenshot-from-2016-09-12-002228-300x204.png)
まずはバケットを作成しないと使えないので
Create Bucket をクリック
![Screenshot from 2016-09-12 00:25:19](https://wp.developapp.net/wp-content/uploads/2016/09/Screenshot-from-2016-09-12-002519-300x229.png)
Bucket Name には 任意の名前なので
今回は s3-user-bucket
Region: は Tokyo を選びます
そして Create をクリックすると作成されます
![Screenshot from 2016-09-18 10:53:22](https://wp.developapp.net/wp-content/uploads/2016/09/Screenshot-from-2016-09-18-105322-300x140.png)
これでバケットが作成されます
![Screenshot from 2016-09-18 10:54:51](https://wp.developapp.net/wp-content/uploads/2016/09/Screenshot-from-2016-09-18-105451-300x183.png)
次にファイルのアップロードを行います
作成されたバケット名をクリックすると現状が表示されます
現状では何もないので、upload をクリックし、ファイルをアップロードします
![Screenshot from 2016-09-18 11:02:28](https://wp.developapp.net/wp-content/uploads/2016/09/Screenshot-from-2016-09-18-110228-300x183.png)
次にファイルをアップロードするので Add File をクリック
![Screenshot from 2016-09-18 11:06:02](https://wp.developapp.net/wp-content/uploads/2016/09/Screenshot-from-2016-09-18-110602-300x154.png)
あとは好きなファイルをアップロードします
これで選んだファイル名が表示されるので
Start Upload をクリック
![Screenshot from 2016-09-18 11:07:59](https://wp.developapp.net/wp-content/uploads/2016/09/Screenshot-from-2016-09-18-110759-300x154.png)
これで S3 にファイルがアップロードされます
![Screenshot from 2016-09-18 11:10:56](https://wp.developapp.net/wp-content/uploads/2016/09/Screenshot-from-2016-09-18-111056-300x182.png)