2012-03-04 57 views
20

我的s3存儲桶中有大量文件,並添加存儲桶策略以使其全部公開。 現在,當我瀏覽根目錄時,它會列出整個目錄(或前1000個項目)。 如何防止目錄瀏覽。如何防止s3存儲桶的目錄瀏覽?

+2

嗨,請考慮在這裏更改接受的答案。 – charneykaye 2017-04-21 13:24:54

回答

5

您可以獨立設置目錄和單個文件上的ACL,不要給目錄上的讀取權限,但允許它用於單個文件。有很多工具可以幫助您,包括bucket explorer或s3狐狸。

+0

謝謝。剛纔意識到我的dragondisk工具也可以做到這一點。 – MotoTribe 2012-03-04 22:21:14

+0

這應該是接受的答案,謝謝。 – user2677034 2018-02-07 16:42:31

44

需要注意的是,將一個index.html文件添加到存儲桶中並沒有什麼用處。瀏覽存儲桶根時,該文件將簡單地與所有其他文件一起列出。

此外,設置存儲桶上的訪問級別以避免「所有人」無法讀取,這意味着您上傳到存儲分區的每個新文件在被瀏覽之前都需要將其權限設置爲「所有人」。如果您定期添加文件,這是不實際的。

最好的解決方案是首先設置存儲桶上的訪問級別來拒絕「每個人」的讀取訪問權限,但隨後創建一個桶策略,允許每個人讀取桶內的內容。這樣,沒有人能夠列出您的存儲桶的內容,但添加的任何新文件都可以被鏈接到該文件的所有人閱讀。

以下是桶策略的外觀。用你的桶名替換'my_bucket',你很好。

{ 
    "Version": "2008-10-17", 
    "Statement": [ 
     { 
     "Sid": "AddPerm", 
     "Effect": "Allow", 
     "Principal": "*", 
     "Action": "s3:GetObject", 
     "Resource": "arn:aws:s3:::my_bucket/*" 
     } 
    ] 
} 
+0

**這是正確的答案。**請特別注意實施桶策略*而不是「Everyone/Read」的廣泛訪問權限。 – charneykaye 2017-04-21 13:23:37

+0

非常好,解決了我的問題,謝謝 – radosch 2017-07-11 12:02:17

+2

我不能在2017年得到這個工作(不知道是否有更新),但在S3管理控制檯下有一個選項,列出「列表對象」,你可以刪除它,但仍然允許閱讀權限以達到同樣的效果 – 2017-07-25 21:22:27

2

據我所知(當第一次發佈這個問題的答案時可能會回來),此策略不再需要。

現在,只需將您的存儲區設置爲公開訪問權限,但關閉「列表對象」權限即可。