You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将S3中的JSON文件加载到Redshift时报无权获取角色凭证如何解决

解决方案

1. 检查default_glue_role的信任策略

这是最容易遗漏的核心配置项,仅给Redshift对应的角色配置sts:AssumeRole权限不足以完成角色代入,需要被调用的default_glue_role本身开放对Redshift服务的信任。
给default_glue_role添加如下信任策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "redshift.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

如果Redshift集群和该IAM角色属于不同AWS账户,还需要额外补充跨账户的信任规则。

2. 确认Redshift集群已绑定对应IAM角色

需要将IAM角色直接关联到Redshift集群才能生效,操作步骤:

  • 进入AWS Redshift控制台,打开对应集群的详情页
  • 切换到属性标签,下拉找到IAM角色配置区域
  • 点击关联IAM角色,将arn:aws:iam::xxxxx:role/default_glue_role添加到集群关联角色列表中,保存后生效

3. 检查COPY命令的角色ARN配置

运行数据加载的COPY命令时,指定的角色ARN需要和集群绑定的角色完全一致,示例命令参考:

COPY 你的目标表名
FROM 's3://你的存储桶路径/JSON文件路径/'
IAM_ROLE 'arn:aws:iam::xxxxx:role/default_glue_role'
FORMAT AS JSON 'auto';

注意不要写错ARN的字符、不要添加多余空格。

4. 确认default_glue_role有S3资源访问权限

default_glue_role本身需要配置目标S3存储桶的读取权限,策略示例:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::你的存储桶名称/*",
                "arn:aws:s3:::你的存储桶名称"
            ]
        }
    ]
}

所有配置修改完成后等待2-3分钟让IAM权限全局生效,再重新执行加载命令即可。

内容的提问来源于stack exchange,提问作者Schattenzeit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 00:48:06