Amazon Redshift创建外部表报错:IAM角色未关联集群
问题核心
报错明确指出redshift-IAM2角色未关联到你的Redshift集群,这是独立于角色权限策略的配置步骤——即使角色的权限策略正确,若未附加到集群,Redshift无法使用该角色访问外部资源。
解决步骤
- 登录AWS控制台,进入Redshift服务界面。
- 在集群列表中选中目标集群,切换到属性标签页。
- 滚动到集群权限区域,点击添加IAM角色按钮。
- 在弹出的列表中选择
arn:aws:iam::831926602512:role/redshift-IAM2,完成添加。 - 等待集群状态更新为「可用」后,重新执行创建外部表的SQL语句。
额外验证项
确保角色的以下配置正确:
- 信任策略允许Redshift服务扮演该角色:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
- 权限策略包含S3桶访问权限:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:GetObject", "s3:ListBucket"], "Resource": [ "arn:aws:s3:::store-bucket01", "arn:aws:s3:::store-bucket01/*" ] } ] }
- 权限策略包含Glue Data Catalog访问权限(因为外部架构基于Data Catalog):
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["glue:*"], "Resource": [ "arn:aws:glue:us-east-1:831926602512:catalog", "arn:aws:glue:us-east-1:831926602512:database/dev", "arn:aws:glue:us-east-1:831926602512:table/dev/*" ] } ] }
内容的提问来源于stack exchange,提问作者Racheal Babatunde
相关产品推荐
相关产品推荐

