为啥我的视频会被拒绝访问?
Posted
技术标签:
【中文标题】为啥我的视频会被拒绝访问?【英文标题】:Why am I getting AccessDenied with videos?为什么我的视频会被拒绝访问? 【发布时间】:2012-03-12 11:19:47 【问题描述】:使用 AWS S3。我混合了视频和照片文件。所有这些都在它们各自的子目录中。所有文件都设置为私有。当我尝试访问视频文件时收到AccessDenied
。其他文件都很好。
我试过没有用:
"Id": "Policy1331547131417",
"Statement": [
"Sid": "Stmt1331546963174",
"Action": [
"*"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::actual_bucket_name_here/uploads/users/*/videos/*",
"Principal":
"AWS": [
"*"
]
,
"Sid": "Stmt1331547083926",
"Action": [
"*"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::actual_bucket_name_here/uploads/users/*/photos/*",
"Principal":
"AWS": [
"*"
]
,
"Sid": "Stmt1331547130024",
"Action": [
"*"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::actual_bucket_name_here/uploads/users/*/banners/*",
"Principal":
"AWS": [
"*"
]
]
对于视频、照片和横幅,我的存储桶策略是相同的。所有文件的 ACL 权限也相同。那么为什么我无法访问我的视频目录中的文件呢?
【问题讨论】:
您通过哪种方式“访问”您的视频文件,即使用哪个工具(javascript 视频播放器小部件等)? 【参考方案1】:您实际上是如何尝试访问您的视频文件的,即通过哪个工具、服务、API?
使用的访问方法实际上可能也需要s3:ListBucket
操作的权限,例如JavaScript 视频播放器小部件可能会隐式查找相关视频的各种文件格式,以向您的用户呈现相应的选择 - 您需要注意 Operations on Buckets(例如 ListBucket)和 Operations on Objects 之间的区别(例如GetObject),请参阅我对Problems specifying a single bucket in a simple AWS user policy 的回答了解更多详情。
相应地扩展您的视频存储桶政策可能会解决此问题,例如(仅限政策片段):
"Statement": [
"Action": [
"s3:ListBucket"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::actual_bucket_name_here/uploads/users/*/videos",
"Principal":
"AWS": [
"*"
]
]
请注意,此政策片段针对存储桶,其中您的仅针对其中的对象和两个片段都是必需的 - 如上所述,我对Problems specifying a single bucket in a simple AWS user policy 的回答中解释了这种细微差别。
【讨论】:
我正在尝试通过名为 JwPlayer 的网络播放器访问视频。在相同的视频目录(视频文件所在的位置)中,有缩略图。即使是这些缩略图也无法访问。对于大拇指,我使用的是<img>
元素
附言。我将操作更改为"*"
。请参阅我上面的编辑。还是同样的问题。拥有"Action"
"*"
也应该让位于ListBucket
操作,不是吗?
@ChristianFazzini:将操作更改为*
确实包括ListBucket
对于手头的资源确实,但是,您的策略片段地址对象 inside 存储桶,而 ListBucket
是存储桶本身所必需的,如 my other linked answer to a related problem 中更详细说明的那样 - 我已经更新了我的答案,以强调这里现在也是内联的。
【参考方案2】:
除了欧宝欧宝的回答。
以下是对我有用的方法。
"Statement": [
"Action": [
"s3:GetObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::BUCKET_NAME/*",
"Principal":
"AWS": [
"*"
]
]
【讨论】:
Shahrukh 这有帮助。 我很高兴 :) 听到以上是关于为啥我的视频会被拒绝访问?的主要内容,如果未能解决你的问题,请参考以下文章