S3 の IP 制限

設定方法を忘れること請け合いなのでメモ。

S3 のバケット内の特定の prefix (ディレクトリ)配下だけを IP 制限するポリシーファイルの例。Resourcebucketprefix を実際のものに書き換えて使う。
この場合 /bucket/prefix パス以外の /bucket 配下にはどの IP からでもアクセス可能。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::bucket/*"
        },
        {
            "Sid": "Stmt1453125635757",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::bucket/prefix/*",
            "Condition": {
                "NotIpAddress": {
                    "aws:SourceIp": ["192.168.0.1/24", "127.0.0.1"]
                }
            }
        }
    ]
}

aws:SourceIp は配列で複数指定可能。また CIDR 表記も使える。

Last updated on January 18, 2016