Contents
S3の超基本をおさえる
今回は東京リージョンにバケットを作成して、パブリック及びプライベートサブネットにあるEC2からアクセスできるように設定してみます。
S3のバケットを作る
S3のバケットの画面からバケットの作成ボタンを押します。
バケット名はbelpia-s3-bucketとします。
バケット名は世界で一意なので同じものを作成することはできません。
今回は外部に公開しないファイルを保存するバケットを想定するため、パブリックアクセスをブロックにチェックが入った状態にします。
オブジェクトのロックもデフォルトの無効のままにします。
バケットが作成されました。
S3バケットにファイルを保存する
バケットをクリックします。
概要タブでアップロードボタンをクリックします。
ファイルを追加ボタンをクリックします。
アップロードしたいファイルを選択します。
今回は詳細な設定はしないため、アップロードボタンをクリックします。
バケットの中にファイルがアップロードされました。
EC2からS3のバケットにアクセスできるか確認する
パブリックサブネットに設置されたEC2にログインして下記のコマンドを打ちます。
aws s3 ls
しかし現時点ではS3にアクセスすることはできません。
EC2がS3にアクセスするためにIAMロールの割り当てを行う必要があります。
EC2にS3にアクセスを許可するIAMロールを割り当てる
IAMロールを割り当てる対象のEC2を選択します。
アクション⇒インスタンスの設定⇒IAMロるの割り当て/置換をクリックします。
新しいIAMロールを作成するをクリックします。
ロールの作成をクリックします。
EC2を選択して右下に表示される次のステップ:アクセス権限をクリックします。
s3とフィルタの部分に入力します。
AmazonS3FullAccessにチェックを入れます。
次のステップ:タグのボタンをクリックします。
Nameタグはbelpia-ec2-to-s3とします。※何でも良いです。
次のステップ:確認ボタンをクリックします。
ロール名はbelpia-role-ec2-to-s3としてロールの作成ボタンをクリックします。
作成したロールを割り当てます。
候補に出てこない場合は右の矢印ボタンで更新して下さい。
右下の適用ボタンをクリックします。
IAMロールが割り当てられたことを確認します。
再度EC2からS3のバケットにアクセスできるか確認する
aws s3 lsコマンドでバケットが表示されていることを確認します。
プライベートサブネットにあるEC2からS3にアクセスする
プライベートサブネット用のEC2にも先ほどと同様の方法でIAMロールを割り当てます。
プライベートサブネット用のEC2からでもS3にアクセスできました。
プライベートサブネットのルートを編集します。
NATゲートウェイの指定(デフォルトルート)を削除します。
S3にアクセスできなくなることを確認します。
今回のおさらい
バケットを作成してファイルをアップロードする方法、そしてEC2からアクセスするためにIAMロールを割り当てる方法を試しました。
これをベースにバージョニングの設定をしたり、パブリックに公開したりできることを広げていくといいでしょう。