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:::<bucket-name>/*",
-
"Condition": {
-
"NotIpAddress": {
-
"aws:SourceIp": "192.168.1.13/32"
-
}
-
}
-
}
-
]
-
}
「bucket-name」の部分は制限を掛けたいBucketの名前に置き換える。その後に続く「/*」の部分を指定したファイルを指定できる。
また、複数IPを指定したい場合は、"NotIpAddress"の要素を配列にしてあげればよい。
JAVASCRIPT:
-
"Condition": {
-
"NotIpAddress": {
-
"aws:SourceIp":
-
["192.168.1.13/32","192.168.1.14/32"]
-
}
-
}
これらを応用すれば、特定のIPを制限したりなどの指定も可能でしょう。
下記のPolicy GeneratorでWeb上でJSONファイルを作成することも可能。
IP制限以外にも、UA,Referer判定などいろんなことができそう。
Check Tweet

