2013-06-19 16 views
6

S3に保存されている重要なリソースの予約済みURLにユーザーをリダイレクトする予定です。これらはユーザーの権利を確認した後に生成され、攻撃的なタイムアウト(30秒)があります。しかし、私の心配は、クライアントのマシンに存在するいくつかのマルウェアがURLを取得し、URLの有効期限内にファイルをダウンロードする可能性があるかどうかです。それとも、私はあまりにも過食症であるのですか?AWS S3で予約済みのURLはどのぐらい安全ですか?

これまでに回答されている場合は、その方向で私を指摘してください。あなたの助けに感謝。

答えて

2

私はこれを見つけました - http://docs.aws.amazon.com/AmazonS3/latest/dev/AuthUsingTempFederationTokenRuby.html と試してみました。それは動作するようです。ドキュメントからコードを言い換え -

# Start a session with restricted permissions. 
sts = AWS::STS.new() 
policy = AWS::STS::Policy.new 
policy.allow(
    :actions => ["s3:ListBucket"], 
    :resources => "arn:aws:s3:::#{bucket_name}" 
).condition.add(:like, :referer, "domain.com") 

session = sts.new_federated_session(
    'User1', 
    :policy => policy, 
    :duration => 2*60*60) 

だから我々が作成したポリシーは、クライアントからのダウンロード元のIPアドレスを持っているか、または/およびAWSかもしれできます。私のアプリのドメインにリファラーフィールドを設定します。私はこれがあなたのリソースに少なくとも1つのレベルの障害を提供すると思います。私はそれを知っている、IPアドレスまたはreferer簡単になりすますことができます。しかし、それはまったく何の保護もないよりも優れています。

4

有効期限が切れる前にURLを取得したユーザーは、それを使用してデータにアクセスできます。あなたは、クライアントマシン上のマルウェアを心配している。この場合、しかし

http://docs.aws.amazon.com/AmazonS3/latest/dev/AccessPolicyLanguage_UseCases_s3_a.html

:S3は、データへのアクセスを許可するIPアドレスを制限バケットポリシーをサポートしています。それは役に立たないでしょう。クライアントプロセスだけがそれを解読できるようにデータを暗号化することを検討しましたか?

あなたはまだ何らかの形でデータを漏らしている不安定で不注意なクライアントに脆弱です。

+0

もちろん、それは本当に助けにならないでしょう。とにかく答えてくれてありがとう。 –

+0

バケットポリシーは機能しませんが、一時aclをURLに含めることができる方法は何ですか? thx- –

+0

いいえ。とにかくリクエストをプロキシして、本質的にワンタイムURLを販売できますか? – sethwm

関連する問題