在医疗保健应用程序中使用s3,私人链接

时间:2015-06-02 17:19:19

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

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

2 个答案:

答案 0 :(得分:1)

Documentation,你应该使用亚马逊的“固定”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

答案 1 :(得分:0)

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

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

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

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

还在文档中注明:您只能在请求中指定一个固定ACL