S3 の静的 Web ホスティングへアクセス出来る IP アドレスを制限する

S3 を静的 Web ホスティングしつつ、アドレス制限を行う場合は Bucket Policy を使って実装することが可能です。

例えば以下のバケットに対して複数の許可アドレスを設定したいとします。

項目名
Bucket 名 BUCKET.EXAMPLE
Action 全て(*)
許可アドレス 1 192.0.2.100/32
許可アドレス 2 192.0.2.200/32
許可アドレス 3 172.16.0.0/12

この場合の Bucket Policy は以下のようになります。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
{
  "Version": "2012-10-17",
  "Id": "Policy*************",
  "Statement": [
    {
      "Sid": "Stmt*************",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": "arn:aws:s3:::BUCKET.EXAMPLE/*",
      "Condition": {
        "IpAddress": {
          "aws:SourceIp": ["192.0.2.100", "192.0.2.200", "172.16.0.0/12"]
        }
      }
    }
  ]
}