AWS S3を使った際にIAMでユーザーロールを設定したので、その時のメモです。
AWS IAMとは何か?
AWS IAMの目的は管理者がユーザーIDとそのAWSリソースへのアクセスレベルを管理することを支援することです。AWSユーザーには、個別のセキュリティ資格情報を作成して割り当てることができて、AWSにアクセスする際の権限が与えられたり、いつでもユーザーを削除することができます。
それでは早速S3にアクセス可能なIAMユーザーを作成してみましょう。AWSの公式サイトでログインして下さい。そしてIAMと検索します。
IAMを追加するためのダッシュボードへと移動しました。次に、左側の「ユーザー」メニューから「ユーザーの追加」をクリックします。
追加するユーザー名を入力して、プログラムによるアクセスにチェックをします。ユーザー名は必ずロールの分かりやすい名前にして下さい。そして青いボタンのアクセス権限をクリック。
既存のポリシーを直接アタッチをクリックします。その後、ポリシーフィルターからaws s3を入力。そしてAmazonS3FullAccessをチェックします。チェックができましたら、青いボタンの確認をクリックします。
確認の画面に移動しました、ユーザー名とAWS アクセスの種類、管理ポリシーを確認後、ユーザーの作成をクリックしてください。
ユーザーの作成が成功しました。ここで重要なのはアクセスキーIDとシークレットアクセスキーです。こちらは後でAWS cliで認証するときに使用します。なので、必ずメモを取っておいてください。
AWS cliのインストール
AWSコマンドラインインターフェースを利用して、cli上からReactアプリをデプロイすることができます。まずはAWS cliをローカルにインストールしていきます。その際にpythonの開発環境が必要になります。
今回自分が使っているpythonのバージョンは3.6.1です。
$ python --version Python 3.6.1
awsをインストールするためのパッケージファイルをダウンロード
$curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"
ダウンロードしたファイルを解凍
$ unzip awscli-bundle.zip
解凍したファイルを実行
$sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws
awsバージョンの確認
$ aws --version aws-cli/1.16.11 Python/3.6.1 Darwin/17.7.0 botocore/1.12.1
クイックコンフィギュレーション
一般的な使用のために、aws configureコマンドはAWS CLIインストールを設定する最も速い方法です。先ほどユーザーを作成したときのアクセスキーとシークレットキーを使います。
$ aws configure AWS Access Key ID: AWS Secret Access Key Default region name: ap-northeast-1 Default outpu format:json
リージョンの確認はこちらのドキュメントからできます。今回はap-northeast-1の東京リージョンを選択します。
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/using-regions-availability-zones.html
CLIからバケットを作成してみる
コマンドラインからs3のバケットを作成してみます。コマンドの概要は下記のAWSドキュメントを参照してください。
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/using-s3-commands.htmldocs.aws.amazon.com
$ aws s3 mb s3://bucket-name-test22 make_bucket: bucket-name-tes22
aws s3 lsをすると、cliからバケットが作成されたことがみることができます。
$ aws s3 ls 2018-09-11 12:25:17 buncket-name-test22