S3でホスティングしてるページに特定のIPからのみアクセスできるようにする。

S3でホスティングしてるページに特定のIPからのみアクセスできるようにする。

最終形がこちら

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::s3バケット名/*",
            "Condition": {
                "NotIpAddress": {
                    "aws:SourceIp": "許可したいIPアドレス"
                }
            }
        },
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::s3バケット名/*"
        }
    ]
}

調べてて困ったこと

        {
            "Sid": "PublicReadGetObject",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::s3バケット名/*",
            "Condition": {
                "NotIpAddress": {
                    "aws:SourceIp": "許可したいIPアドレス"
                }
            }
        },

この部分の記述はよく見るんですけど、これは否定の記述であって許可する記述が抜けてしまうと誰もアクセスできない状態に制限をかけてるだけなので一生みれず...

        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::s3バケット名/*"
        }

下のこちらを追記することでちゃんと制限をかけることができました😇