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ファイルを作成することも可能。
IP制限以外にも、UA,Referer判定などいろんなことができそう。
Check Tweet