2012-03-12 47 views
1

使用AWS S3。我有一個視頻和照片文件的混合。所有這些都在各自的子目錄中。所有文件都設置爲私人。當我嘗試訪問視頻文件時,我收到了AccessDenied。其他文件很好。爲什麼我會用視頻獲取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權限也是相同的。那麼爲什麼我無法從我的視頻目錄訪問文件?

+0

通過哪種方式可以「訪問」您的視頻文件,即使用哪種工具(JavaScript視頻播放器小部件等)? – 2012-03-12 12:07:02

回答

0

您如何真正嘗試訪問您的視頻文件,即通過哪種工具,服務,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的回答中解釋。

+0

我試圖通過一個名爲JwPlayer的網絡播放器訪問視頻。在相同的視頻目錄中(視頻文件所在的位置),有縮略圖。即使這些縮略圖也無法訪問。對於大拇指,我正在使用''元素 – 2012-03-13 07:04:43

+0

PS。我將自己的行爲改爲'「*」'。看到我上面的編輯。仍然是同樣的問題。有''動作「''」*「'應該讓位於'ListBucket'行動以及沒有? – 2012-03-13 07:13:00

+0

@ChristianFazzini:將行爲更改爲'*'確實包含'ListBucket' _對於手頭的資源,實際上,**然而**,您的策略片段將對象放入存儲桶中,並且「存儲桶」本身是必需的,正如[我對其他相關問題的鏈接答案](http://stackoverflow.com/a/9089457)中更詳細地解釋的那樣 - 我已經更新了我的答案,強調現在內聯。 – 2012-03-13 10:39:43

相關問題