Edited at

AWS S3でStatic website hostingする際のReferer制御


実現すること

AWS S3でバケットをStatic website hostingする際に


  • index.htmlのみ公開

  • それ以外のリソースはRefererでアクセス制御

します


やりかた

S3のバケットの

アクセス制限/バケットポリシー

にて以下を記載します

{

"Version": "2012-10-17",
"Statement": [
{
"Sid": "Allow all to index.html",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::${S3_BUCKET_NAME}/index.html"
},
{
"Sid": "Allow all from own domain",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::${S3_BUCKET_NAME}/*",
"Condition": {
"StringLike": {
"aws:Referer": "https://${S3_BUCKET_NAME}.s3-ap-northeast-1.amazonaws.com/*"
}
}
}
]
}