AWS IAM ユーザでのS3バケット作成
heroku で画像保存するには容量の制限があるため
Amazon S3 に画像などを保存することに
すでにIAMユーザは作成しているので
まずはIAMユーザでログイン
なお、ログインのときには認証にMFAを導入しているため
ipod touch のアプリ
Authenticator
を使用してログイン

しかし、パスワードが正しくても
Your password has expired. Contact your administrator to reset the password.
とメッセージがでるため
一度 root でログインしてパスワードを再設定
ログインしたら
Security & Credentials をクリック

するとセキュリティの関係で
このまま root で続けるか、IAMユーザで行うか聞かれるので
Continue to Security Credentials をクリック

次にダッシュボードから
Users をクリックし、
パスワードを変更したいユーザにチェックをいれます

次に
User Actions をクリックし
Manage Password をクリック

するとパスワードをどうしたいのかを聞かれるので
Replace existing password with new custom password
にチェックをいれ、新しいパスワードを設定します
Password に新しいパスワードを
Confirm Password には確認のため
もう一回新しいパスワードを入力します

入力が終わったら、画面右下の Apply をクリック
これでパスワード変更ができます

次にS3を使うためのポリシー割り当て
とはいっても、管理者権限のIAMアカウントで実験するのは問題ありと思うので
新規にIAMユーザを作成
新規IAMユーザ登録するには
Security Credential で User をクリックし
Create New Users をクリックします

これでユーザ名を入力する画面になるので、今回は
S3user
としました
あとは
create をクリックすれば、新規IAMユーザが作成されます

作成したときに
Show User Security Credentials
をクリックすることで、
AccessKey
Secret Access Key
を表示することができます。
これは後で使うのでメモしておきましょう
確認ができたら、Download Credentials をクリックします

これにより、これらの情報をCSV ファイルとしてダウンロードすることができます
必要な値の確認ができたら、close を押してこの画面を閉じます
これでユーザの作成ができたので
今回作成したユーザに S3 にアクセスする権限を与えます
IAMユーザは権限を制限することで安全性を高める仕組みです
これならもしアカウントが流出しても、被害を最小限にすることができます
やり方は、まず作成したユーザをクリックします

次に、Permissionsタブにある
Attach Policy をクリック

すると権限一覧がでてくるので、今回はS3を全部使える権限の
AmazonS3FullAccess
にチェックを入れ
Attach Policy をクリックします

これによりユーザ権限に AmazonS3FullAccess が追加されます

次に作成したIAMユーザにパスワードを設定します
Security Credentials タブをクリックし
Manage Password をクリックします

するとパスワード設定画面になります
自動でパスワードを設定してもらいたいのなら
Assign an auto-generated password をチェックしますが、
私の場合は KeepassX でパスワードを生成したいので、
Assign a custom password を選びパスワードを設定しました
設定したら、画面右下の Apply をクリックすれば反映されます

これで Password の設定が Yes になります
さらに2段階認証をつけてセキュリティを向上させるために
Manage MFA Device をクリック

今回は iphone や Android のアプリを使用するので
A virtual MFA device を選択して
Next Step をクリック

すると解説がでます
すでにアプリをインストールしているので、これは
Next Step をクリック

すると画面にQRコードが表示されるので
これをアプリで読み取り
Authentication Code 1
Authentication Code 2
に値を入力し
Activate Virtual MFA をクリックします

なお、
Authentication Code 1
で表示された値を入力し
Authentication Code 2
へ次に表示された値をいれるようになります
詳しくは
多要素認証(MFA)仮想デバイスの有効化
を参考にしましょう
成功すると
ダイアログがでるので
Finish をクリックします

ここまでできたら、URLを確認し、作成した S3user でログインします
ログインURLの確認は
dashbord をクリックすると表示されます

AWSコンソールにログインしたら
S3をクリックします

まずはバケットを作成しないと使えないので
Create Bucket をクリック

Bucket Name には 任意の名前なので
今回は s3-user-bucket
Region: は Tokyo を選びます
そして Create をクリックすると作成されます

これでバケットが作成されます

次にファイルのアップロードを行います
作成されたバケット名をクリックすると現状が表示されます
現状では何もないので、upload をクリックし、ファイルをアップロードします

次にファイルをアップロードするので Add File をクリック

あとは好きなファイルをアップロードします
これで選んだファイル名が表示されるので
Start Upload をクリック

これで S3 にファイルがアップロードされます
