#静的ページ配信の開発期間中
AWSでS3使って静的ページ配信すると簡単にwebサイトが作れちゃいますが、
開発期間中はダイジェスト認証とかベーシック認証で秘匿したい、とかあるかもしれません。
あとコンテンツ配信でCloudfrontつかって、とか。
でもCloudfrontでS3コンテンツ公開で秘匿ってできなかったりします。
確かに期限付きURLとか署名付きとかでできるといえばできますが、
imgとかjsとかの要素についても同様に署名付きURLで提供する必要があったり。
※知らないだけだったら、誰か教えてください。
#開発期間中のTIPS
Cloudfrontはサクッと設定できてしまうので、ここでは言及しませんが
公開前後や、コンテンツ変更タイミングはエラーページのTTLは短めがいいと思います。
特に技術検証中とか、これではまったりします。
「エラーページ、キャッシュしないでしょー」とか考えて、私はどはまりしました。
で、話を戻すと
開発期間中はS3で静的ページ配信で限定公開、
リリースのタイミングでCloudfront配信というのが妥当でしょうか。
でも静的WEBホスティングは、認証とかできないので、
IP制限で対応しました。
"Statement": [
{
"Sid": "Stmt<UNIQUE_ID>",
"Effect": "Deny",
"Principal": {
"AWS": "*"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::<BUCKET_NAME/*",
"Condition": {
"NotIpAddress": {
"aws:SourceIp": [
"<IP/CIDR1>",
"<IP/CIDR2>",
"..."
]
}
}
},
{
"Sid": "Stmt<UNIQUE_ID>",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::<BUCKET_NAME>/*",
"Condition": {
"IpAddress": {
"aws:SourceIp": [
"<IP/CIDR1>",
"<IP/CIDR2>",
"..."
]
}
}
}
]