Home » Server » AWSのS3でコンテンツにIP制限をかける方法

Check     このエントリーをはてなブックマークに追加

Amazon Simple Storage Service(S3)に置いているコンテンツにIP制限をかける方法。

S3のBucket(バケット)単位やファイル単位で、Permissionsの「bucket policy」という機能を利用すれば簡単にコントロールが可能だ。

S3のBucketの「Properties」→「Permissions」→「Add bucket policy」を選択すると、テキストエリアだけのWindowが立ち上がるので、そこにルールを記述したJSONを貼りつければよい。

詳しくみていくと、例えば「192.168.1.13」からのIPのみ許可したい場合は下記のようなJSONとなる。

[javascript]
{
“Version”: “2008-10-17″,
“Id”: “Policy11223344″,
“Statement”: [
{
“Sid”: “Stmt11223344″,
“Effect”: “Deny”,
“Principal”: {
“AWS”: “*”
},
“Action”: “s3:*”,
“Resource”: “arn:aws:s3:::/*”,
“Condition”: {
“NotIpAddress”: {
“aws:SourceIp”: “192.168.1.13/32″
}
}
}
]
}
[/javascript]

「bucket-name」の部分は制限を掛けたいBucketの名前に置き換える。その後に続く「/*」の部分を指定したファイルを指定できる。

また、複数IPを指定したい場合は、”NotIpAddress”の要素を配列にしてあげればよい。

[javascript]
“Condition”: {
“NotIpAddress”: {
“aws:SourceIp”:
["192.168.1.13/32","192.168.1.14/32"]
}
}
[/javascript]

これらを応用すれば、特定のIPを制限したりなどの指定も可能でしょう。

下記のPolicy GeneratorでWeb上でJSONファイルを作成することも可能。

AWS Policy Generator

IP制限以外にも、UA,Referer判定などいろんなことができそう。

Using Bucket Policies

Check     このエントリーをはてなブックマークに追加
タグ: ,