S3バケット作成
S3とは
業界をリードするスケーラビリティ、データ可用性、セキュリティ、およびパフォーマンスを提供するオブジェクトストレージサービスです。あらゆる規模や業界のお客様が、Amazon S3 を使用して、データレイク、ウェブサイト、モバイルアプリケーション、バックアップおよび復元、アーカイブ、エンタープライズアプリケーション、IoT デバイス、ビッグデータ分析など、広範なユースケースのデータを容量にかかわらず、保存して保護することができます。Amazon S3 には、特定のビジネス、組織、コンプライアンスの要件を満たすために、データへのアクセスを最適化、整理、設定できる管理機能があります。(公式ドキュメントより)
つまりS3はファイルストレージサービスであり、HTTPベースでファイルをアップロード、ダウンロードすることができるサービスである。バケットと呼ばれるディレクトリ、フォルダのようなものを作成し、その中にファイルをアップロードするなどを行うことができる。
つまりS3はファイルストレージサービスであり、HTTPベースでファイルをアップロード、ダウンロードすることができるサービスである。バケットと呼ばれるディレクトリ、フォルダのようなものを作成し、その中にファイルをアップロードするなどを行うことができる。
S3バケット作成手順
1

S3をメインメニューから選択し、左メニューバーからバケットを選択する。上図の画面となるのでバケットを作成ボタンを押下する。

S3をメインメニューから選択し、左メニューバーからバケットを選択する。上図の画面となるのでバケットを作成ボタンを押下する。
2

次の画面でバケットの設定を行う。
まずはバケット名を設定し、リージョンを選択する。なお、S3を利用するサービスと同じリージョンに存在しないと、このバケットをサービスが利用することが難しくなるため、同リージョンを選択する。

次の画面でバケットの設定を行う。
まずはバケット名を設定し、リージョンを選択する。なお、S3を利用するサービスと同じリージョンに存在しないと、このバケットをサービスが利用することが難しくなるため、同リージョンを選択する。

次にオブジェクト所有者の設定を行う。
ここではアクセスコントロールリスト(ACL)を有効にすることで、オブジェクトをアップロードしたユーザがそのオブジェクトの所有者になる(ACL有効)設定と、ACLを無効にすることですべてのオブジェクトはバケット作成者(現在のアカウント)が所有者になる設定を選ぶことができる。
セキュリティを考慮すると、基本的にはACLは無効にし、ポリシーの設定で一部のバケット、オブジェクトへのアクセス権限をユーザに付与するのが良い。

次にパブリックアクセスの設定を行う。
ここではこのバケットにパブリックアクセスを許可するかの設定ができる。基本的にはパブリックアクセスをブロックしておき、許可されたユーザのみがアクセスできるようにしておくのが良い。
パブリックアクセスを許可する場合でも、細かなブロック設定を行うことができるため、必要最小限の公開設定にしておくとよい。

次にバケットのバージョニングの設定を行う。
バージョニングを有効にすると、意図せずバケットが消えたときなどにデータの復元を行うことができる。ただし、バージョニングを有効にすると、削除データを内部で残しておくため、コストが大きくなる点に注意。そのため、一定期間経った古いバージョンについては完全削除を行うなどの設定をしておくと良い。

次にタグの設定を行う。
多数のバケットが存在しているときなどは、追跡しやすいように任意のタグをつけておくとよい。

次にデフォルトでオブジェクトを暗号化しておくかの設定を行う。
サーバー側での何らかの問題でデータ漏洩した場合でも、暗号化を有効にしておけば比較的安全性が高くなる。

設定を完了した後、バケットを作成ボタンを押下するとバケットが作成される。
コンソール上でのオブジェクトアップロード手順

作成したバケットを押下するとバケットの中身を見ることができる。ファイルをアップロードする場合はアップロードボタンを押下する。

このページにファイルをドラッグするか、ファイルを追加からファイルを選択するとアップロードすることができる。


アップロードに成功すると上図画面のように成功した旨が表示される。
EC2からS3バケットへのアクセスする手順
今回は先ほどアップロードしたtest1.txtをEC2インスタンスにダウンロードする手順となる。
awsのコマンドを利用し、「aws s3 mv s3://salmonbucket/test1.txt .」というコマンドを実行することでコマンドを実行したローカルのカレントディレクトリにtest1.txtをダウンロードすることができる。しかし、EC2インスタンスにS3バケットへのアクセス権限がついていないと認証エラーが発生しアクセスすることができない。
そのため、まずはEC2インスタンスにS3へのアクセス権限(ロール)を付与する。
1

IAMを開き、左メニューバーからロールを選択する。新しくロールを作成するため、ロールを作成ボタンを押下する。
awsのコマンドを利用し、「aws s3 mv s3://salmonbucket/test1.txt .」というコマンドを実行することでコマンドを実行したローカルのカレントディレクトリにtest1.txtをダウンロードすることができる。しかし、EC2インスタンスにS3バケットへのアクセス権限がついていないと認証エラーが発生しアクセスすることができない。
そのため、まずはEC2インスタンスにS3へのアクセス権限(ロール)を付与する。
1

IAMを開き、左メニューバーからロールを選択する。新しくロールを作成するため、ロールを作成ボタンを押下する。
2

何に対してのロールなのかを選択する。今回はEC2インスタンスにロールを付与するため、AWSのサービス、EC2を選択する。

何に対してのロールなのかを選択する。今回はEC2インスタンスにロールを付与するため、AWSのサービス、EC2を選択する。
3

ロールのポリシーを選択する。S3の権限が必要なため、今回はS3のフルアクセス権限を付与する。なお、実際には必要な権限を精査し、ポリシーを吟味すること。

ロールのポリシーを選択する。S3の権限が必要なため、今回はS3のフルアクセス権限を付与する。なお、実際には必要な権限を精査し、ポリシーを吟味すること。
4

ロール名を設定する。以上でロールの作成が完了する。

ロール名を設定する。以上でロールの作成が完了する。
6

IAMロールに先ほど設定したロールを付与する。

IAMロールに先ほど設定したロールを付与する。
7

上記ロールを設定した状態でインスタンスにssh接続し、S3からファイルをダウンロードすると成功することがわかる。

上記ロールを設定した状態でインスタンスにssh接続し、S3からファイルをダウンロードすると成功することがわかる。
添付ファイル
- screenshot.37.png
- screenshot.38.png
- screenshot.39.png
- screenshot.40.png
- screenshot.41.png
- screenshot.42.png
- screenshot.43.png
- screenshot.44.png
- screenshot.45.png
- screenshot.46.png
- screenshot.47.png
- screenshot.48.png
- screenshot.49.png
- screenshot.50.png
- screenshot.51.png
- screenshot.52.png
- screenshot.53.png
- screenshot.54.png
- screenshot.55.png
- screenshot.56.png
- screenshot.57.png
