PRESSMAN*Tech

HTML5, CSS3からWordPress, AWS, Docker, Node.jsまで。プレスマンのスタッフが綴る技術ブログ。

AWSを使ってみよう!(その18) - WEBサイト(S3)にアクセス制限

以前、
S3を利用して、WEBサイトを公開しました。

<以前の記事>
AWSを使ってみよう!(その1) – アカウント作成からWEBサイトの公開
http://www.pressmantech.com/tech/aws/2149

S3には、
各種のアクセス制限を掛ける方法があります。

バケットポリシーの例
http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/example-bucket-policies.html

今回は、
『特定のIPアドレスへのアクセスの制限』と
『特定のHTTP Referrerへのアクセスの制限』
を試してみたいと思います。

S3 -> バケット選択 -> プロパティ -> アクセス許可
から
『バケットポリシーの編集』
を開きます。

1.特定のIPアドレスへのアクセスの制限

以下のように記します。

{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "PublicReadForGetBucketObjects",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::pmcloud.pm1932.jp/*",
"Condition": {
"IpAddress": {
"aws:SourceIp": [
"*.*.*.*/32",
"*.*.*.*/32"
]
}
}
}
]
}

※会社のIPアドレスが2つあったので、IPアドレスを2つ書いています。

以前の設定内容と変わっている部分は、
『Condition』
になります。(追加)

これで、
社内からしかアクセスが出来ませんね。

特定のIPアドレスへのアクセスの制限
http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-3

2.特定のHTTP Referrerへのアクセスの制限

以下のように記します。

{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "PublicReadForGetBucketObjects",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::pmcloud.pm1932.jp/*",
"Condition": {
"StringLike":{"aws:Referer":["http://www.pressmantech.com/*","http://pressmantech.com/*"]}
}
}
]
}

特定のHTTP Referrerへのアクセスの制限
http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-4

こちらのブログから、アクセスが可能です。
http://pmcloud.pm1932.jp.s3-website-ap-northeast-1.amazonaws.com/

この方法で、
リンクを書いたページに、
基本認証を掛ければ、利用方法も広がるかと思います。
※IPでも良いですね。

 以下にAWSがアピールしているメリットを記します。

 耐久性
 オブジェクトの 99.999999999% の耐久性を実現するように設計されています。
 http://aws.amazon.com/jp/s3/details/#durability

 低コスト
 お支払いは必要な分だけ。最低料金や前払い料金はありません。
 http://aws.amazon.com/jp/s3/pricing/

 可用性
 Amazon S3 は、1 年でオブジェクトの可用性が 99.99% になるように設計されています。

 安全性
 Amazon S3 は、SSL でのデータ転送と、アップロード後のデータの自動暗号化をサポートします。
 http://aws.amazon.com/s3/details#security

 イベント通知の送信
 Amazon S3 は、オブジェクトがアップロードされたときにイベント通知を送信できます。
 https://aws.amazon.com/s3/details/#events

 高性能
 Amazon S3 は、ネットワークのスループットと回復性を最大化するのに役立つマルチパートアップロードをサポートし、
 エンドユーザーに近い AWS リージョンを選択してデータを保存することでネットワークレイテンシーを最小にできます。
 また、Amazon S3 は、レイテンシーが短く、データ転送速度が速く、最低使用料のないエンドユーザー向けの
 コンテンツ配信ウェブサービスである Amazon CloudFront と統合されます。

 統合済み
 Amazon S3 はその他の AWS サービスと統合されているため、Amazon S3 のデータを簡単にアップロード/ダウンロードでき、
 さまざまな AWS サービスを使用するソリューションの構築が容易になります。
 Amazon S3 の統合には、Amazon CloudFront、Amazon Kinesis、Amazon RDS、Amazon Glacier、Amazon EBS、Amazon DynamoDB、
 Amazon Redshift、Amazon Route 53、Amazon EMR、AWS Lambda が含まれます。

 使いやすさ
 Amazon S3 は、ウェブベースの管理コンソール、モバイルアプリケーション、完全な REST API や SDK と合わせて使用でき、
 サードパーティ製のテクノロジーと統合するのも簡単です。

投稿者:abe

abe の紹介

インフラを担当しています。
このエントリーをはてなブックマークに追加

私たちと一緒に働きませんか?

株式会社プレスマンでは、AWSが大好きな方、仕事を通してさらにスキルを磨きたい方を募集しています。まずは募集職種をご覧の上、お気軽にお問い合わせください。あなたとお会いできるのを楽しみにしています。

プレスマンの採用情報を見る →

コメントは受け付けていません。

▲ 先頭へ戻る