Search on the blog

2016年2月20日土曜日

S3のファイルを一般公開する

 AWSのS3のファイルを一般公開する方法について説明します。
  • S3でWeb Hostingを行う
  • S3でファイル共有を行う
の2つの場合に分けて説明します。

S3でWeb Hosting

まずは静的なHTMLを公開して、S3でWeb Hostingする場合を考えます。
手順は以下のとおりです。
  1. S3のバケットを作成
  2. インデックスドキュメントの作成/アップロード
  3. 静的ウェブホスティングの設定
  4. アクセス許可
  5. ブラウザで確認
1. S3のバケットを作成
AWS Management Consoleでバケットを作成します。
S3のバケット名はそのままURLになるため、他のユーザのバケット名とかぶらないようなユニークな名前をつける必要があります。名前がかぶると登録エラーになります。

今回の例ではバケット名は、
sample.s3.kenjih.com
とします。

2. インデックスドキュメントの作成/アップロード
Webページのインデックスドキュメントを作成します。
以下のようなファイルを作って、index.htmlという名前で作成したバケットにアップロードします。

<html>
  <head>
    <title>S3 Hosting Sample</title>
  </head>
  <body>
    Hello, S3 Hosting!
  </body>
</html>

3. 静的ウェブホスティングの設定
AWS Management ConsoleのS3のプロパティ-静的ウェブサイトホスティングで
「ウェブサイトのホスティングを有効にする」を選択します。
インデックスドキュメントには、index.htmlと入力します。


4. アクセス許可
次にS3のオブジェクトのアクセス許可設定を行います。
この設定を行っていないと、ブラウザからリソースを参照したときに403エラーになります。

AWS Management ConsoleのS3のプロパティ-アクセス許可-バケットポリシーの追加を選択し、以下のポリシー言語を入力し保存します。


{
 "Version": "2012-10-17",
 "Statement": [
  {
   "Sid": "AddPerm",
   "Effect": "Allow",
   "Principal": "*",
   "Action": [
    "s3:GetObject"
   ],
   "Resource": [
    "arn:aws:s3:::sample.s3.kenjih.com/*"
   ]
  }
 ]
}

上の設定で、任意のユーザがバケットのオブジェクトを参照できるようになります。
より詳細な設定方法については以下のページを参照してください。

https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/example-bucket-policies.html

ここで注意しないといけないのは、Versionの日付です。
この日付はポリシーを作成した日付ではなく、ポリシー言語のVersionを指定する日付です。

ポリシーを作成した日付を入力すると
Document is invalid: Invalid Version 2016-02-20 - undefined
のようなエラーになるので、注意してください。

5. ブラウザで確認
ブラウザで確認すると、以下のように表示されます。
リソースのURLはAWS Management ConsoleのS3のプロパティ-静的ウェブサイトホスティング-エンドポイントで確認できます。

S3でファイルを共有

次に、Web Hostingではなく単にファイルを共有する場合を考えます。
手順は以下のとおりです。

  1. バケットの作成
  2. ファイルのアップロード
  3. ファイルの公開
  4. 確認
1. バケットの作成

AWS Management Consoleでバケットを作成します。
S3のバケット名はそのままURLになるため、他のユーザのバケット名とかぶらないようなユニークな名前をつける必要があります。名前がかぶると登録エラーになります。

今回の例ではバケット名は、
share.s3.kenjih.com
とします。

2. ファイルのアップロード
公開したいファイルを作成したバケットにアップロードします。
今回の例ではhoge.zipというファイルをアップロードします。

3. ファイルの公開
公開したいファイルを右クリックし、「公開する」を選択します。

4. 確認
公開したファイルを選択し、アクション-プロパティ-リンクを参照すると、ファイルのリンクが表示されます。
このリンクをブラウザに入力し、ファイルをダウンロードできることを確認します。

0 件のコメント:

コメントを投稿