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

使用Trino与AWS Glue创建Delta表时遭遇S3访问被拒

问题描述

我通过以下配置将Trino与Delta Lake集成,使用Glue作为元数据存储:

connector.name=delta_lake
hive.metastore=glue
hive.metastore.glue.region=eu-west-3
hive.metastore.glue.aws-access-key=<maskedaccesskey>
hive.metastore.glue.aws-secret-key=<maskedsecretkey>
hive.metastore.glue.catalogid=<maskedcatalogid>

执行创建表语句时返回S3访问拒绝错误:

trino>USE delta_lake."mygluedatabasename";
USE

trino:mygluedatabasename> CREATE TABLE orders (
   ->   order_id bigint,
   ->   order_status varchar,
   ->   totalprice double,
   ->   order_date date
   -> )
   -> WITH (location = 's3a://mys3bucket/deltalake/orders')
   -> ;
Query 20240410_100938_00015_mpd3c failed: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: XKAVYKRE51Z3KG6A; S3 Extended Request ID: yWIVi5SiVjes64QGN1rHzYWV+Q/kSCMpLzTzMdtBtnic+MROgcFWa/6TsRYm7bQI57poBJ3kKCc3bDPIjk4lXB==; Proxy: null)

已确认该AWS密钥对S3桶拥有list-object-versions、get-bucket-location等权限,但仍报错。

排查与解决建议
  • 补全S3写入相关权限:创建Delta表时,Trino需要对目标路径执行写入、删除操作,确保IAM策略包含以下动作:
    {
        "Effect": "Allow",
        "Action": [
            "s3:PutObject",
            "s3:DeleteObject",
            "s3:ListBucket",
            "s3:GetObject",
            "s3:GetBucketLocation",
            "s3:ListObjectVersions"
        ],
        "Resource": [
            "arn:aws:s3:::mys3bucket",
            "arn:aws:s3:::mys3bucket/deltalake/orders/*"
        ]
    }
    
  • 校验区域一致性:确认S3桶的实际区域为eu-west-3,与Glue配置的区域保持一致,避免跨区域访问的权限限制。
  • 检查S3桶策略:排查桶策略是否存在Deny语句拦截该IAM用户的请求,确保桶策略未覆盖IAM权限。
  • 尝试修改S3路径格式:部分Trino环境对s3a://支持存在差异,尝试将路径改为s3://mys3bucket/deltalake/orders后重新测试。
  • 补充Glue元数据权限:创建表时需要同步元数据到Glue,确保IAM用户拥有以下Glue权限:
    {
        "Effect": "Allow",
        "Action": [
            "glue:CreateTable",
            "glue:UpdateTable",
            "glue:GetTable",
            "glue:GetDatabase"
        ],
        "Resource": "arn:aws:glue:eu-west-3:<maskedcatalogid>:database/mygluedatabasename"
    }
    
  • 临时全权限排查:若以上操作无效,可临时给IAM用户附加AmazonS3FullAccess和AWSGlueConsoleFullAccess权限测试,确认是否为权限遗漏,排查完成后再收紧权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 07:35:25