AWS S3中的预签名URL有多安全?

Sri*_*mal 9 security url amazon-s3

我打算将用户重定向到存储在S3中的敏感资源的预签名URL.这些是在检查用户权限后产生的,并且具有激进的超时(30秒).但我担心的是,我的客户端计算机上的某些恶意软件是否可能捕获该URL并仍然在URL的过期时间内下载该文件.或者我只是太偏执了?

如果之前已经回答过,请指出我的方向.感谢您的帮助.

set*_*hwm 5

Anyone who obtains the URL before expiry can use it to access the data. S3 supports bucket policies that limit the IP addresses that are allowed access to data:

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

但是,在这种情况下,您担心客户端计算机上的恶意软件。所以那无济于事。您是否考虑过加密数据,以便只有客户端进程才能解密?

您仍然容易受到不安全/粗心的客户端以某种方式泄漏数据的影响。


Sri*_*mal 3

我发现了这个 - 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)
Run Code Online (Sandbox Code Playgroud)

因此,我们创建的策略可以具有客户端下载的原始 IP 地址或/并且可以是设置为我的应用程序域的 aws:Referer 字段。我认为这至少对您的资源造成了一定程度的阻碍。我明白了,IP 地址或引用者很容易被欺骗。但总比没有任何保护好。