【问题标题】:Using s3 in a healthcare application, private links在医疗保健应用程序中使用 s3,私有链接
【发布时间】:2018-03-20 03:02:16
【问题描述】:

我们开发了一个基于 Rails 的医疗保健应用程序。配置我们的 s3 实现以便只有经过身份验证的用户才能访问图像的最佳方法是什么?

【问题讨论】:

    标签: ruby-on-rails security amazon-s3 privacy


    【解决方案1】:

    Documentation,您应该使用Amazon 的“罐装”ACL 之一

    亚马逊接受以下预设 ACL:

    :private
    :public_read
    :public_read_write
    :authenticated_read
    :bucket_owner_read
    :bucket_owner_full_control
    

    您可以在创建存储桶时指定 ACL 或稍后更新存储桶。

    # at create time, defaults to :private when not specified
    bucket = s3.buckets.create('name', :acl => :public_read)
    
    # replacing an existing bucket ACL
    bucket.acl = :private
    

    【讨论】:

      【解决方案2】:

      想要发布此问题的更新答案,因为自 2015 年以来 S3 API 发生了(轻微)变化。这是 S3 文档的updated ACL section 的链接。此外,上面的答案反映了 Ruby SDK 的使用,并不是每个人都使用它。

      标准 ACL 是 S3 支持的预定义授权,具有特定的被授权者和权限。罐头 ACL 可以通过 SDK 发送,如上面的答案所示,或者在 HTTP 请求中使用 x-amz-acl 请求标头用于新资源,或使用请求标头或正文用于现有资源。

      标准 ACL 如下。除非另有说明,否则存储桶所有者除了列出的其他权限外,还拥有FULL_CONTROL

      • private:没有其他用户被授予访问权限(默认)
      • public-read:AllUsers 组获得READ 访问权限
      • public-read-write:AllUsers 组获得READWRITE 访问权限(不推荐)
      • aws-exec-read:Amazon EC2 获得 READ 访问 GET 一个 Amazon 系统映像(包)
      • authenticated-read:AuthenticatedUsers 组获得READ 访问权限
      • bucket-owner-read:bucket 所有者获得READ 访问权限。创建存储桶时忽略
      • bucket-owner-full-control:对象和存储桶所有者都在对象上获得FULL_CONTROL。创建存储桶时忽略
      • log-delivery-write:LogDelivery 组获得WRITEREAD_ACP 权限

      文档中也提到:您只能在请求中指定一个罐装 ACL

      【讨论】:

        猜你喜欢
        • 2016-08-05
        • 1970-01-01
        • 2012-02-16
        • 2021-08-01
        • 1970-01-01
        • 2010-10-18
        • 1970-01-01
        • 1970-01-01
        • 2011-03-30
        相关资源
        最近更新 更多