🐈
S3へのアクセスを特定のFQDNに限定する
概要
S3へのアクセスをパブリックにしており、このままだとどこからでもアクセスできてしまうので特定のFQDNに限定する方法について調べました。
そこで、バケットポリシーで制御する方法があったので備忘録として残します。
バケットポリシーを設定する
例えばexample.comというサイトからのアクセスに限定したい場合は、バケットポリシーにHTTP Refererへのアクセス制限を追加すれば良いです。
{
"Version":"2012-10-17",
"Id":"http referer sample",
"Statement":[
{
"Sid":"Allow all requests originating from example.com.",
"Effect":"Allow",
"Principal":"*",
"Action":"s3:*",
"Resource":"arn:aws:s3:::sample-bucket/*",
"Condition":{
"StringLike":{"aws:Referer":["http://example.com/*"]}
}
}
]
}
ConditionにFQDNを指定するだけでこれ以外のアクセスは拒否するようになります。
注意事項
公式にも載っていますが、不当なユーザーはカスタムブラウザなどを使用することでRefererを偽装できるので扱いには注意が必要です。
参考
Discussion