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等はシステム管理者以外アクセスできないリソースなので手軽にアップロードファイルに対するセキュリティを高められる
- 副作用: ただしそれまでアップロード・参照されていたファイルは閲覧できなくなる