Amazon S3 を使用して、ウェブサイトの画像を保存しています。他の Web サイトが私の画像をホットリンクするのを阻止するバケット ポリシーがあります。
これを機能させるには、S3 でファイルのアクセス許可を「プライベート」に設定し、バケット ポリシーで自分の Web サイトのみにアクセスできるようにします。
これは問題なく動作しますが、ファイルが「プライベート」であるため、ブラウザーで画像を直接表示することはできません。これは許可したいことです。
ポリシーはこちら
{
"Version": "2008-10-17",
"Id": "preventHotLinking",
"Statement": [
{
"Sid": "1",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::mybucket/*",
"Condition": {
"StringLike": {
"aws:Referer": [
"http://mydomain.com/*",
"http://www.mydomain.com/*"
]
}
}
}
]
}
要約すると、次のようになります。
- ファイル自体は非公開に設定されています
- 上記のポリシーは、ドメイン「mydomain.com」のページに画像を表示することを許可しますが、「someoneelsesdomain.com」では許可しません
ただし、これは直接アクセスもブロックするため、http://jbtestyt.s3.amazonaws.com/archie.jpgをブラウザーに貼り付けても画像は表示されません (非公開であるため)。
しかし、直接アクセスできるように画像を表示したいと思います。
おそらく解決策は、ファイルを公開してから、私がリストしたもの以外のすべてのリファラーを拒否することですか? しかし、私は確信が持てず、そのようなものを見つけることができませんでした.
よろしくお願いします。