代码之家  ›  专栏  ›  技术社区  ›  DJo 1JD

红移卸载中的问题

  •  0
  • DJo 1JD  · 技术社区  · 7 年前

    unload ('select * from tablename')
    to 's3://bucketname/'
    iam_role 'arn:aws:iam::123456789012:role/rolename';
    
    ERROR:  User arn:aws:redshift:eu-west-1:123456789012:dbuser:dbaname/dbusername is not authorized to assume IAM Role arn:aws:iam::123456789012:role/rolename
    DETAIL:
      -----------------------------------------------
      error:  User arn:aws:redshift:eu-west-1:123456789012:dbuser:dbname/dbusername is not authorized to assume IAM Role arn:aws:iam::123456789012:role/rolename
      code:      8001
      context:   IAM Role=arn:aws:iam::123456789012:role/rolename
      query:     0
      location:  xen_aws_credentials_mgr.cpp:238
      process:   padbmaster [pid=3203]
      -----------------------------------------------
    

    我用rolename使用switch role从一个帐户连接到另一个帐户,这个角色在AWS上有完全的访问权限

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "*",
                "Resource": "*"
            }
        ]
    }
    
    2 回复  |  直到 7 年前
        1
  •  0
  •   Nav    7 年前

    当我为Redshift创建一个新角色时,这对我很有用。步骤概述如下

    1. 转到AWS控制台中的IAM管理
    2. 创建角色-并选择Redshift作为服务
    3. 在用例中,选择-Redshift-Customizable
    4. 给出相关角色名称和描述

    使用新创建角色中的IAM角色。

        2
  •  0
  •   DJo 1JD    7 年前

    下面是我解决这个问题的方法。

    1. 附加到红移群集的角色与Unload命令中使用的角色不同。
    2. 附加到Redshift的角色在S3上没有只读权限。

    修复了上述问题,现在可以将数据从redshift卸载到S3。