コンテンツを S3 に残すことでコンテンツを保護し、S3 のバケット ポリシーを編集して、ユーザーがサーバーからリンクをクリックした場合にのみコンテンツへのアクセスを許可することができます。たとえば、コンテンツ管理システム (何らかの形式の認証を実装していると思われます) が www.example.com にある場合、S3 でバケットの [プロパティ] に移動し、[アクセス許可] エリアで [バケット ポリシーの追加] をクリックします。 "。
たとえば、次のコードを使用して、特定の HTTP リファラーへのアクセスを制限できます。
{
"Version":"2008-10-17",
"Id":"http referer policy example",
"Statement":[
{
"Sid":"Allow get requests originated from www.example.com and example.com",
"Effect":"Allow",
"Principal":"*",
"Action":"s3:GetObject",
"Resource":"arn:aws:s3:::examplebucket/*",
"Condition":{
"StringLike":{
"aws:Referer":[
"http://www.example.com/*",
"http://example.com/*"
]
}
}
}
]
}
注: この例はS3 ドキュメントからのものです
私はこのアプローチをうまく使いました。誰かがページ ソースを表示して S3 バケット ソースに直接アクセスしようとしても、「アクセスが拒否されました」というメッセージが表示されます。www.example.com に対して認証され、その認証されたブラウザ セッション内からコンテンツを表示またはダウンロードするためのリンクをクリックした場合にのみ、ファイルにアクセスできます。