2

ユーザーがサーバーを介さずに直接 s3 にアップロードできるようにします。すべてが完璧に機能します。私の唯一の心配はセキュリティです。

私の JavaScript コードでは、ファイル拡張子をチェックします。しかし、私はJavaScriptコードでユーザーがスクリプトを操作できることを知っています-私の場合はxmlファイルのアップロードを許可します-(クライアント側のアップロード以来)したがって、バケット内のcrossdomain.xmlを置き換えることができず、それに応じて制御できません私のバケツ?

注: バケット所有者のアクセス キーと秘密鍵を使用しています。

アップデート:

この問題を克服するための可能なアプローチはありますか...?

4

1 に答える 1

1

追加のリソースを実行することに反対でない場合は、トークン自動販売機を実行することでこれを実現できます。

要点は次のとおりです。

  • トークン自動販売機 (TVM) は、権限が制限されたユーザーとして実行されます。
  • クライアント コードは引き続き S3 に直接アップロードされますが、TVM に接続して、ユーザーがログインしたときにバケットにアクセスするための一時的なユーザー固有のトークンを取得する必要があります。
  • TVM はAmazon Security Token Serviceを呼び出して、ユーザーが S3 にアクセスするための一時的な認証情報を作成します
  • S3 API は、アップロード/ダウンロードのリクエストを行うときに一時的な認証情報を使用します
  • バケットにポリシーを定義して、各ユーザーがアクセスできるバケットの領域を制限できます

ユーザーごとのアクセスを使用して「ドロップボックス」のようなサービスを作成する簡単な例については、こちらで詳しく説明しています。

于 2013-01-08T14:49:48.887 に答える