ぶっちゃけ、Restricting Access to Objects Stored on Amazon S3 に書いてあるそのまんまで、 :s3_permissions オプションを :private に設定して、 has_attached_file :annual_report, :storage => :s3, :s3_credentials => "#{Rails.root}/config/s3.yml", :s3_permissions => :private, :path => "photos/:id/:filename" アクセスを許可する人にだけ、expiring_url にアクセスさせれば良い。 def download redirect_to root_url if permission_denied? redirect_to @department.annual_re