Amazon-Web-Services

向我的儲存桶中的所有對象授予對另一個 AWS 賬戶中角色的訪問權限

  • January 28, 2020

因此,我想授予賬戶 A 中存在的角色對賬戶 B 擁有的儲存桶中的項目的 get-object 權限。

我閱讀了 AWS 文件的範例策略並創建了這樣的儲存桶策略:

{
   "Version": "2012-10-17",
   "Id": "foo2",
   "Statement": [
       {
           "Sid": "Stmt199999999999",
           "Effect": "Allow",
           "Principal": {
               "AWS": "arn:aws:iam::123456789:role/asset_download_role"
           },
           "Action": "s3:GetObject",
           "Resource": "arn:aws:s3:::my-bucket-name/*"
       }
   ]
}

對我來說,英文是這樣寫的:“從帳戶 123456789 中為角色asset_download_role 授予對儲存桶 my-bucket-name 中的任何和所有對象的 GetObject 權限”

儲存桶中的測試對象 foo.jpg 沒有設置超出標準“對象所有者訪問權限”的附加 acl 或權限

現在,當我擔任角色並嘗試獲取對象時

aws s3api get-object  --profile download_asset --region eu-west-2 --bucket my-bucket-name --key foo.jpg file.jpg

(或使用 boto3,或使用這些憑據對 url 進行簽名並檢索該 url)

我收到“呼叫 GetObject 操作時發生錯誤 (AccessDenied):訪問被拒絕”

將配置文件更改為儲存桶所有者使用者憑據,我可以下載該文件。

我究竟做錯了什麼?

$$ note that while I have access to both Account A and Account B in this test set up, in real life Account B will belong to a third party to whom I want to provide a working policy that they can use to open up what they require $$

解決方案是,當向第三方帳戶擁有的角色授予權限時,該角色需要添加一個策略來授予對儲存桶的訪問權限 - 權限需要在兩端進行定義和匹配

引用自:https://serverfault.com/questions/993489