【问题标题】:Copy data from DynamoDB into Redshift across two different AWS accounts?跨两个不同的 AWS 账户将数据从 DynamoDB 复制到 Redshift?
【发布时间】:2018-05-12 11:28:48
【问题描述】:

由于我无法控制的原因,我有以下情况:

  • 一个 AWS 账户下的 DynamoDB 中的表 CustomerPhoneNumber
  • 不同 AWS 账户(相同地理区域;欧盟)下的 Redshift 集群

有没有办法运行COPY 命令将数据从 Dynamo 跨账户移动到 Redshift?

通常,如果他们在相同帐户下,则可以通过IAM角色轻松完成:

copy public.my_table (col1, col2, col3) from 'dynamodb://CustomerPhoneNumber' iam_role 'arn:aws:iam::XXXXXXXXXXX:role/RandomRoleName' readratio 40;

但显然这在我的情况下不起作用。

有什么想法吗?

【问题讨论】:

    标签: amazon-web-services amazon-dynamodb amazon-redshift aws-redshift


    【解决方案1】:

    您可以使用 CREDENTIALS 并指定其他帐户的访问密钥和密钥。将以下内容添加到您的 COPY 语句中:

    credentials 'aws_access_key_id=AKIAXXXXX;aws_secret_access_key=yyyyyy'
    

    您不能在 Redshift 中使用跨账户角色。引用亚马逊文档:

    仅当满足以下条件时,IAM 角色才能与 Amazon Redshift 集群关联 IAM 角色和集群都属于同一个 AWS 账户。

    Authorizing COPY and UNLOAD Operations Using IAM Roles

    【讨论】:

      【解决方案2】:

      约翰以上的回答不再适用;这就是你可以做到的-

      1. 在这种情况下,具有所需资源(如 dynamodb)的 AWS 帐户(信任帐户)需要具有需要访问权限的帐户(受信任的 AWS 帐户)...在其 Dynamo db 只读角色中受信任:arn:aws:iam:::role /
      2. 创建一个执行 sts:AssumeRole 的策略(高于信任帐户的角色作为资源),
      3. 将该策略附加到 redshift-access-role(具有运行复制命令所需的所有权限)。
      4. 运行命令为:

        iam_role 'arn:aws:iam::<trusTEDawsAccountId>:role/redshift_access_role,arn:aws:iam::<trusTINGawsAccountId>:role/<dynamodbreadrole>' 
        readratio 50
        

      详情如下: https://docs.aws.amazon.com/redshift/latest/mgmt/authorizing-redshift-service.html

      【讨论】:

      • 这行得通,可以被接受为正确答案。遵循this 设置跨账户访问指南。
      【解决方案3】:

      显然stackoverflow需要格式化,代码是:

      copy redshift_tbl from 'dynamodb://dynamotbl'
      iam_role 'arn:aws:iam::<TRUSTEDacAWSid>:role/redshift_access_role,arn:aws:iam::<trusTINGacAWSid>:role/<dynamodb-role-in-trustingac>' 
      readratio 50
      

      *注意:角色中的逗号之间没有空格

      【讨论】:

      • 请编辑您的原始答案,而不是发布另一个更正的答案。我已经为您编辑了您的原始答案。我建议你删除这个。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-18
      • 2012-07-29
      • 1970-01-01
      • 1970-01-01
      • 2014-01-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多