私はこれを見つけました - 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簡単になりすますことができます。しかし、それはまったく何の保護もないよりも優れています。
もちろん、それは本当に助けにならないでしょう。とにかく答えてくれてありがとう。 –
バケットポリシーは機能しませんが、一時aclをURLに含めることができる方法は何ですか? thx- –
いいえ。とにかくリクエストをプロキシして、本質的にワンタイムURLを販売できますか? – sethwm