【问题标题】:Amazon S3 Privacy & SecurityAmazon S3 隐私与安全
【发布时间】:2017-04-17 19:40:45
【问题描述】:

我们正在将应用用户上传的文件存储到 Amazon S3。

为了保证这些文件的私密性和安全性,我们:

  1. 让客户端为文件名生成一个 UUID(这样文件的 URL 就很难猜到了)。见:What is the probability of guessing (matching) a Guid?

  2. 转到protect the data by using client-side encryption

这两个措施是否提供了足够的安全性,还是我们也应该使用 Amazon Cognito 来确保获取对象的用户是有权访问它的用户之一?

【问题讨论】:

  • 用户通过客户端的用户界面访问文件,客户端对S3进行API调用。
  • 是的,存储桶对所有人开放,但唯一允许的操作是 s3:GetObjects3:PutObject
  • 如果bucket有putobject权限,会不会损坏其他用户的文件?
  • @mattdipasquale 你不能使用版本控制来防止覆盖
  • @mattdipasquale 太棒了!我需要将我的视频存档保存在某个地方,你会继续为这个存储桶付费吗?

标签: security amazon-s3 privacy


【解决方案1】:

使用晦涩的文件名不是一种好的安全方法。

如果您希望允许用户以安全的方式向/从 Amazon S3 上传/下载数据,您应该使用Pre-Signed URLs

流程是:

  • 用户通过您的网络/移动应用程序进行身份验证
  • 用户与您的应用程序交互并表示他们希望上传/下载文件
  • 您的应用程序会生成一个预签名 URL,其中包括访问 Amazon S3 的授权,并具有存储桶、路径和文件大小等限制
  • 用户使用预签名 URL 上传/下载文件

这样,您的应用程序可以控制安全性,并且不会出现意外变通办法、覆盖、访问等情况。

见:Uploading Objects Using Pre-Signed URLs

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多