2016-06-14 107 views
0

我想從一個帳戶遷移S3存儲在這裏的另一個帳戶是我鬥政策遷移S3鬥錯誤

{ 
    "Version": "2008-10-17", 
    "Id": "Policy1335892530063", 
    "Statement": [ 
     { 
      "Sid": "DelegateS3Access", 
      "Effect": "Allow", 
      "Principal": { 
       "AWS": "arn:aws:iam::xxxxxxxx:root" 
      }, 
      "Action": "s3:*", 
      "Resource": [ 
       "arn:aws:s3:::test123", 
       "arn:aws:s3:::test123/*" 
      ] 
     }, 
     { 
      "Sid": "Stmt1335892150622", 
      "Effect": "Allow", 
      "Principal": { 
       "AWS": "arn:aws:iam::xxxxxxx:root" 
      }, 
      "Action": [ 
       "s3:GetBucketAcl", 
       "s3:GetBucketPolicy" 
      ], 
      "Resource": "arn:aws:s3:::test123" 
     }, 
     { 
      "Sid": "Stmt1335892526596", 
      "Effect": "Allow", 
      "Principal": { 
       "AWS": "arn:aws:iam::xxxxxxxxx:root" 
      }, 
      "Action": "s3:PutObject", 
      "Resource": "arn:aws:s3:::test123/*" 
     } 
    ] 
} 

這裏是我的IAM用戶策略

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
    { 
     "Effect": "Allow", 
     "Action": "s3:*", 
     "Resource": ["arn:aws:s3:::*"] 
    } 
    ] 
} 

當我運行命令

aws s3 sync s3://test123 s3://abc-test123 

我收到錯誤

客戶端錯誤(存取遭拒)調用CopyObject操作時發生:拒絕訪問

回答

0

你斗的政策似乎是正確的。 請確認您正在使用root帳戶,就像您的存儲桶政策中指定的一樣。 另外,您可能需要檢查目標存儲桶中是否存在任何拒絕的存儲桶策略。

如果沒有任何幫助,您可以啓用臨時公共訪問您的存儲桶作爲解決方法。是的,這並不安全,但它可能適用於所有情況。

+0

我交叉檢查的根帳戶它設置適當,我也嘗試給予每一個臨時訪問從添加更多權限仍然我得到同樣的問題。在目標存儲桶上沒有設置策略,它是新創建的策略。 –

0

確保您在源存儲桶(要讀取)和目標存儲桶(要寫入)上都提供足夠的權限。

如果您對擁有存儲桶的帳戶使用根證書(通常不推薦),則可能甚至不需要存儲桶策略 - 默認情況下,根帳戶應具有必要的訪問權限。

如果您要爲IAM用戶分配權限,則不要創建存儲桶策略,而是要爲IAM用戶本身分配權限。在這種情況下無需提供委託人。

開始通過檢查您有權列出兩個桶:

  • aws s3 ls s3://test123
  • aws s3 ls s3://abc-test123

然後檢查是否有權限將文件從源到目的地複製:

  • aws s3 cp s3://test123/foo.txt .
  • aws s3 cp foo.txt s3://abc-test123/foo.txt

如果他們的工作,那麼sync命令應該工作了。