Nirvanix から Amazon S3 に移行しています。
必要なのは、S3 ストレージのNirvanix スタイルの子アカウントをシミュレートすることです。
(簡単に言えば、これらは、定義済みの制限を持つ分離されたストレージと、サブユーザーごとに個別の認証を提供し、引き続き同じマスター アカウントによって管理されます)。
ユーザー数が 100 人を超えるため、ユーザーごとのバケットは機能しません (まだ 100 人に制限されていますよね?)。
ストレージは、デスクトップ アプリケーションから直接使用されます (たとえば、当社のサーバー経由ではありませんが、役立つ場合は中央サーバーがあります)。
すべての料金を支払う単一の S3 請求先アカウントが必要ですが、顧客オブジェクトは互いに安全にセグメント化される必要があります。
Nirvanix はこれをそのまま提供しています (http://developer.nirvanix.com/sitefiles/1000/API.html#_TocCreatingChildAccounts) - これは本質的に、私が S3 で複製しようとしているものです。
オブジェクトの「接頭辞」表記 (例: 「USER1/object1」、「USER2/something_else」) などを使用して、サブユーザーごとにオブジェクトをセグメント化する方法を理解しています。
私がうまくいかないこと:
1)各顧客が自分のファイルにのみアクセスできるようにするには、どうすればアクセス許可を設定できますか?
「アプリ」に S3 ストレージへのアクセスを許可した場合、それは明らかに、アプリのすべてのユーザーが誰のファイルにもアクセスできることを意味します。
豊富な ACL を設定できるようですが、理解できないのは、「誰」に対して権限を設定できるかということです。AWS ユーザーだけですか? これを行う唯一の方法は、顧客がそれぞれ AWS アカウントを持っているということですか?
その場合、代理でアカウントを作成できますか? たとえば、API 呼び出しを介してですか?
私たちが絶対に許可できないのは、すべてのユーザーが AWS のウェブサイトを通じてアカウントを作成することです (ヤバイ!)。
2)各顧客のクォータを管理する最善の方法について何かアイデアはありますか?
私が知る限り、これはデスクトップ アプリケーションから制限する必要があるため、これは私にとって懸念事項です。S3はより多くのデータを許可し続けるため、これは明らかに悪用の機が熟しています.
おそらく、毎日実行するスクリプトを実行して、ストレージ制限の「乱用」をチェックするスクリプトを実行することで生活できると思いますが、もっと良い方法があるかどうか疑問に思っただけです。
皆さんありがとう!
ジョン