2016-09-01 32 views
0

我試圖從一個框中的Redshift集羣卸載數據到另一個框中的S3桶。 我設法發送文件。 但是,作爲存儲桶擁有者的 不是我要發送的文件的所有者 - 他無法訪問它。 由於這是從Redshift直接卸載,我不認爲我不能指定條件以允許存儲桶擁有者擁有正確的權限。從Redshift卸載到一個框的S3桶

是否有可能實現(無需使用同一帳戶從Redshift卸載) 如果是這樣 - 如何?

謝謝!

+1

在這種情況下什麼是「盒子」? –

+0

AWS服務器。我正試圖卸載到另一個帳戶。 – user2518751

回答

2

(嘗試#2 ...)

好吧,看來你的情況是:

  • 你正在做的從亞馬遜紅移的UNLOAD成屬於不同的AWS賬戶的Amazon S3的桶
  • 不同的AWS賬戶內的用戶希望訪問的文件,但表示,他們無法做到

沒有一個「網絡的概念le owner「在Amazon S3中。相反,有:

  • 與每個對象在亞馬遜S3相關權限
  • 適用於特定的桶
  • 可以應用到用戶,組IAM策略和角色
水桶政策

只要這些權限中的至少一個授予訪問權限,並且他們中的任何一個都不會明確拒絕訪問權限,則用戶將能夠訪問這些文件。

如果用戶報告無法查看文件,請確保已通過上述方法之一授予ListBucketGetObject權限。

+0

謝謝你的幫助,約翰! – user2518751

+0

@ user2518751你能解決這個問題嗎?我在同一條船上。在我的情況下,我是存儲桶所有者,他無法訪問由我不屬於我的Redshift羣集寫入我的存儲桶的對象。我嘗試設置正確的桶策略,但沒有奏效。你是怎麼做到的? –

+0

@ user2518751,如果您需要幫助,請隨時創建一個新問題。 –

0

這聽起來像你的情況是:

  • 您已經使用了UNLOAD命令從亞馬遜紅移數據導出到您擁有
  • 您希望授予的對文件的訪問亞馬遜S3鬥屬於一個不同的AWS帳戶

權限訪問亞馬遜S3對象AWS用戶可以以幾種方式被授予:

  • 在對象本身,通過在文件(S)手動設置權限
  • 在IAM(身份識別和訪問管理),由政策安裝到授予權限訪問桶特定用戶 - 但這隻適用於同一AWS賬戶的用戶
  • 通過定義一個存儲桶策略,該存儲桶策略允許所有人(公衆)或特定AWS用戶(包括不同賬戶中的用戶)訪問存儲桶內容 - 用戶需要通過提供憑據來訪問內容,例如使用AWS Command-Line Interface (CLI)aws s3 cp命令。

Bucket Policy選項似乎是最適合您的情況。要啓用它,創建授權訪問一個特定的目錄,你會把這些文件,例如鬥策略:

{ 
    "Id": "Policy", 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "Sid1", 
      "Action": [ 
       "s3:ListBucket" 
      ], 
      "Effect": "Allow", 
      "Resource": "arn:aws:s3:::MY-BUCKET", 
      "Principal": { 
       "AWS": [ 
        "arn:aws:iam::123456789012:user/username" 
       ] 
      } 
     }, 
     { 
      "Sid": "Sid2", 
      "Action": [ 
       "s3:GetObject" 
      ], 
      "Effect": "Allow", 
      "Resource": "arn:aws:s3:::MY-BUCKET/PATH/*", 
      "Principal": { 
       "AWS": [ 
        "arn:aws:iam::123456789012:user/username" 
       ] 
      } 
     } 
    ] 
} 

ARN在政策指的是人的賬戶ID和用戶名你正在授予訪問權限。然後,他們可以使用AWS CLI列出存儲桶的內容並下載內容。

+0

對不起,更精確。我不會將數據上傳到我的存儲區,而是將數據直接上傳到我不屬於自己的存儲區的另一個帳戶。我知道如何處理你所建議的場景。問題是,我不會將我的存儲桶用作羣集中的Redshift與另一個帳戶中的S3之間的臨時站點。這就是我奮鬥的原因。 – user2518751

相關問題