v3.4.7 時点の仕様
- aws.js external_link により、アップロード時に
ACL: 'public-read'
が付加された状態でアップロードされる
問題点
public-read
はパブリックアクセスを許可するため、S3 の当該URLを知っている物は誰でもインターネット経由でファイルにアクセスできてしまう- https://github.com/weseek/growi/issues/705 external_link
- 後述のバケットポリシーを設定しなければ回避できない
回避策
1. バケットポリシーで明示的にブロックする
前提知識
方法
- 特定の IP アドレスへのアクセスの制限 external_link
- 上記を参考に、GROWI サーバーからの読み取りのみ許可するように設定する
2. AWS 以外のファイルアップロード方法を利用する
FILE_UPLOAD
環境変数で変更できるアップロード先を AWS 以外に設定するmongodb
,local
等はシステム管理者以外アクセスできないリソースなので手軽にアップロードファイルに対するセキュリティを高められる
- 副作用: ただしそれまでアップロード・参照されていたファイルは閲覧できなくなる