S3にstaticなHTMLをおいて、それを特定のIPからのみ見えるようにする方法。
いつも迷ってしまうので備忘録で書いておく。
Access Control List
は変更する必要なし。( List objects
の everyone も -
のまま)
バケットの中のファイルもPrivateな設定のままでOK。
{
"Version": "2012-10-17",
"Id": "Policy1551163444222",
"Statement": [
{
"Sid": "Stmt1551163442413",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::[Bucket Name]/*",
"Condition": {
"NotIpAddress": {
"aws:SourceIp": "[IP]"
}
}
},
{
"Sid": "Stmt1551164678580",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::[Bucket Name]/*",
"Condition": {
"IpAddress": {
"aws:SourceIp": "[IP]"
}
}
}
]
}
いつも思ったように動かなくてもがくのは Resource
部分の最後に /*
をつけ忘れて、ファイル見れないじゃん…ってなる。