弊社営業から「該当のファイルを、管理画面からのみダウンロードできるようにして欲しい」との要望があったのでs3のバケットポリシー設定メモとして残します
詳しい要件を聞いてみると
- 弊社と契約しているクライアントさんがアクセスする管理画面上からのみファイルをダウンロードを許可して欲しい」
- 弊社と契約しているクライアントさん以外は見てほしくないと思ってはいるけど、ダウンロードした後にクライアントさんが他の企業に見せてもまぁしゃーない
- 上の理由から、最悪ネット上に流出しても会社的にそんなに困らない
という超ゆるゆる要件だったため、リファラー制限だけ入れておきますかという話でまとまった。(リファラーは簡単に偽装出来るのでセキュリティ的にはイマイチ。厳しい要件では絶対に利用しないで下さいね…)
s3 のバケットポリシーサンプル
適宜変更して利用してください
{
"Version": "2012-10-17",
"Id": "referer policy",
"Statement": [
{
"Sid": "Allowed referrers.",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject",
"s3:GetObjectVersion"
],
"Resource": "arn:aws:s3:::[バケット名]/*",
"Condition": {
"StringLike": {
"aws:Referer": [
"https://[許可するリファラ1]/*",
"https://[許可するリファラ2]/*"
]
}
}
}
]
}