2017-07-31 31 views
0

有一個我想要訪問的特定存儲桶(不是來自我的帳戶)。桶的作者有一個github站點here,他們使數據可訪問。問題是當我嘗試aws s3 ls我得到以下錯誤:在我的帳戶之外訪問存儲區

aws s3 \ 
--region eu-west-1 \ 
ls s3://ngi-igenomes/igenomes/Homo_sapiens/Ensembl/GRCh37/Annotation/Genes/ 

A client error (AccessDenied) occurred when calling the ListObjects operation: Access Denied

這有些奇怪,因爲桶中有一個Requester Pays政策,這意味着訪問僅限於認證的請求,和我有一個用戶使用訪問密鑰,祕密訪問密鑰和我的賬戶/ s3存儲桶/ etc ...與我嘗試訪問的存儲桶位於同一區域(歐洲西部)。

所以,我在尋求幫助,因爲我不明白爲什麼我沒有訪問權限。 在此先感謝您的幫助!

+0

ü可能不會有ListObjects權限;這是一個不同的權限比GetObject的 – Deepak

+0

我複習IAM政策,實際上我有以下幾點:{ 「聲明」: { 「效果」:「允許」, 「行動」:「S3:*」, 「資源」:「*」 } ] },我認爲它包含ListObjects屬性,但如果我錯了,請糾正我的錯誤:) – mrDanSoro

+0

在您的IAM用戶上擁有ListObjects權限是不夠的(考慮它的後果足以列出所有AWS賬戶中的所有存儲桶)。目標存儲桶還必須具有允許您針對存儲桶調用ListObjects的策略。 – jarmod

回答

0

你的錯誤說:A client error (AccessDenied) occurred when calling the ListObjects operation: Access Denied

這意味着你沒有被獲准列出桶(或至少鬥內的路徑)。

由於存儲桶位於不同的AWS賬戶,因此可以通過Amazon S3存儲桶策略向您授予這些權限。只有存儲桶的所有者可以配置存儲桶策略(或者更確切地說,該帳戶內具有編輯存儲桶策略所需權限的任何用戶)。

(如果是在同一賬號,這將有可能也使用IAM用戶策略授予訪問權限。)

另外,桶業主可以創建一個IAM角色那具有必要的權限,他們可以將信任關係配置爲正常的IAM用戶。你會承擔角色,然後訪問存儲桶。但是,這將打敗申請人支付能力,因爲他們將被收取這樣的訪問費用。

0

這種情況發生時的天氣桶有請求支付政策,不包括請求在您的要求明確支付頭