我真的在努力学习如何使用COPY命令从Amazon S3存储桶到Redshift进行数据传输 .
到目前为止,我创建了一个IAM用户并分配了“AmazonS3ReadOnlyAccess”策略 . 但是当我调用COPY命令时,总会返回Access Denied Error .
从's3://s3.ap-northeast-2.amazonaws.com/mybucket/myobject'凭证'复制my_table'aws_access_key_id = <...>; aws_secret_access_key = <...>'REGION'ap-northeast-2 'delimiter'|';
错误:
Amazon无效操作:S3ServiceException:拒绝访问,状态403,错误AccessDenied,Rid EB18FDE35E1E0CAB,ExtRid,CanRetry 1详细信息:------------------------- ----------------------错误:S3ServiceException:访问被拒绝,状态403,错误AccessDenied,Rid EB18FDE35E1E0CAB,ExtRid,CanRetry 1代码:8001 context:列出存储桶= s3.ap-northeast-2.amazonaws.com prefix = mybucket / myobject query:1311463 location:s3_utility.cpp:542 process:padbmaster [pid = 4527] ---------------- -------------------------------;
有人能给我一些线索或建议吗?
非常感谢!
2 回答
从S3路径中删除 endpoints
s3.ap-northeast-2.amazonaws.com
:(请参阅文档中的examples . )虽然
Access Denied
错误肯定会产生误导,但返回的消息会提示一些错误:不过,我们期待看到
bucket=mybucket
和prefix=myobject
.您的redshift群集角色无权访问S3存储桶 . 确保您用于redshift的角色可以访问存储桶,并且存储桶没有阻止访问的策略