簡體   English   中英

從另一個帳戶S3存儲桶復制到Redshift

[英]Copy to Redshift from another accounts S3 bucket

是否可以從一個AWS賬戶S3存儲桶復制到另一個AWS賬戶Redshift集群? 我試圖這樣做的方法是使用SQL Workbench登錄我的AWS賬戶(Account1)並使用IAM用戶(Account2)將文件復制到這樣:

copy my_table (town,name,number)
from 's3://other-s3-account-bucket/fileToCopy.tsv'
credentials 'aws_access_key_id=<other_accounts_aws_access_key_id>;aws_secret_access_key=<other_accounts_aws_secret_access_key>'
delimiter '\t';

我知道其他帳戶的用戶在仔細檢查后具有s3權限。 我是否有共享IAM用戶或設置不同的權限才能執行此操作?

您需要從其他帳戶的S3存儲桶中“提取”數據。

  1. AWS賬戶A有一個名為source-bucket-account-a的S3存儲source-bucket-account-a
  2. AWS賬戶B有一個名為TargetCluster的Redshift TargetCluster
  3. 在存儲桶source-bucket-account-a ,添加允許AWS賬戶B讀取文件的存儲桶策略。

示例政策:

{
   "Version": "2012-10-17",
   "Statement": [
      {
         "Sid": "DelegateS3Access",
         "Effect": "Allow",
         "Principal": {
            "AWS": "arn:aws:iam::<account-b-number>:root"
         },
         "Action": [
            "s3:Get*",
            "s3:List*"
         ],
         "Resource": [
            "arn:aws:s3:::source-bucket-account-a",
            "arn:aws:s3:::source-bucket-account-a/*"
         ]
      }
   ]
}

它非常類似於以下內容: http//docs.aws.amazon.com/AmazonS3/latest/dev/example-walkthroughs-managing-access-example2.html

或以下內容: http//docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_policy-examples.html

  1. 存儲桶策略到位后,您可以使用AWS賬戶B的憑據運行copy命令,因為它擁有Redshift集群。 copy命令中,您可以通過名稱source-bucket-account-a指定存儲source-bucket-account-a

存儲桶策略已授予對AWS賬戶B的讀取權限,因此可以將數據“拉”到Redshift中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM