プライベート ポッドキャスト フィードを作成しようとしています。私のサービスの各ユーザーはアカウントを取得し、支払う金額に応じて、異なるコンテンツを受け取ります。一部のコンテンツは機密情報であるため、セキュリティはかなり重要です。同封された音声ファイルのいずれかがインターネット上を巡回した場合、それは私たちのビジネスにとって壊滅的なものになる可能性があります.
私は現在サービスのプロトタイプを作成しており、MP3 は S3 に保存されており、保護されていません。それらを確保する時が来ました。私の調査によると、実際には、アクセスの有効期限を設定して S3 上のファイルを保護できることがわかりました。しかし、私には多くのユーザーがいるため、「グローバル」キーでリクエストに署名し、有効期限を設定することはおそらく良い考えではありません。
- アクセスを取り消す必要がある場合は、全員に対して行う必要があります
- 彼らのポッドキャッチャーがいつファイルを要求するか正確にはわからないので、いつ有効期限を設定すればよいかわかりません。場合によっては、ポッドキャッチャーがフィード XML をダウンロードしますが、後で MP3 ファイルを取得するだけなので、クライアントが URL を取得する前に URL が期限切れになる可能性があります (私は iTunes について考えていますが、他にもある可能性があります)。
私の見方では、2 つのオプションがあり、どちらかが実行可能かどうかはわかりません。
編集別の可能性のある方法は、自分のセキュリティを役割を果たし、ユーザーが準備ができている場合は、短い有効期限で S3 上の MP3 にリダイレクトすることだと思います。これは最も賢明なようです。
- すべてのユーザーに対して Amazon でユーザー アカウントを作成し、それらをデータベース内の Amazon トークンにリンクできます。全員の MP3 URL はシークレット トークンで署名されており、有効期限はかなり後になります。トークンをデータベースに保存するという考えは好きではありません。また、Amazon ACL がこのシナリオ用に設計されているかどうかもわかりません。また、URL を知っていればファイルを共有できることも意味します。
- サーバーを介してすべてのリクエストをプロキシできます。これは、Amazon アカウントが 1 つしかなく、独自のセキュリティ システムを使用できることを意味します。しかし、サーバー経由ですべての MP3 ダウンロードをプロキシするのは、遅く、無駄が多く、費用がかかるように思えます。
これを行うための最良の方法に関するアイデア。
PS私はS3と結婚していません。他の解決策が考えられます。また、私は Ruby を使用して Heroku を使用しています。