Amazon S3查看私人文件

Ale*_*lex 11 amazon-s3 amazon-web-services

我使用Amazon S3将文件上传到不同的文件夹.所有文件夹和文件都是公开的,任何人都可以看到.我创建了一个私人文件夹,我想放置私有图像,这样我才能看到它们.我已经创建了一个存储桶策略规则,拒绝访问该文件夹.但是我怎么能看到文件呢?是否有像这样的特殊链接https://s3.amazonaws.com/bucket/private_folder/file.jpg?secret_key=123,这将让我和知道该密钥的人看到这些文件?

有没有办法上传可以通过使用secret_key,url或类似的东西看到的私人文件?

Joh*_*ein 12

默认情况下,Amazon S3中的所有对象都是私有的.然后,通过以下方式之一添加权限,可以使对象"公开":

  • 对象访问控制列表(ACL):直接在对象上设置权限
  • 斗政策:涉及到桶中,可以定义与子目录,键名(文件名)规则,时间的日,IP地址等
  • IAM策略:与特定用户或组相关

只要这些方法中的一个授予访问权限,该人就能够访问该对象.也可以分配Deny覆盖允许权限的权限.

当通过未经认证的URL(例如s3.amazonaws.com/bucket-name/object-key)访问对象时,上述规则确定访问.但是,如果您对服务进行身份验证,则可以访问"私有"文件,例如使用您的用户凭据或使用预签名URL调用S3 API.

要查看其工作原理,请单击Amazon S3管理控制台中的专用文件,然后从"操作"菜单中选择" 打开 ".该对象将被打开.这是通过向浏览器提供预签名URL来完成的,该URL包括加密大小的URL和有效期.该URL将仅用于获取私有文件,直到定义的时间.

因此,要回答您的问题,您仍然可以通过以下方式访问私人文件:

  • 控制台中的"打开"命令
  • Web浏览器中的预签名URL
  • 经过身份验证的API调用

请注意,您不要定义DENY规则,甚至覆盖您访问文件的能力.简单地允许您想要公开的目录更容易.

请参阅:查询字符串请求验证替代