何がしたいか S3 にアップロードして CloudFront で配信してるファイルのURLをRailsアプリで許可したユーザにしか見れなくしたくなった。 どうするか CloudFront の署名付きURL機能をつかう。 閲覧制限時間を設定できるので、たとえそのURLが漏れたとしても(制限時間が切れてれば)悪意の第三者は閲覧できない。 ユーザが画像を見るときは以下のような手順になる。 ユーザが制限付きの画像URL(https://your-cloud-front-domain/private/image.jpg とする) を含むリソース(https://your-app-domain/index.html とする)をアプリにリクエストする アプリは CloudFront の署名付きURL(https://your-cloud-front-domain/private/image.jpg?認証