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

跨AWS账号用Athena访问S3桶遇权限错误,求策略配置建议

解决跨账号Athena访问S3桶权限问题

当对方账号已配置S3桶策略允许访问,但我方仍无法执行爬取操作时,需检查以下几方面的配置:

1. 我方Athena执行角色的IAM权限策略

确保用于运行Athena查询或爬取操作的IAM角色(或用户)拥有访问目标S3桶的明确权限,添加类似如下的策略语句:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket",
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "arn:aws:s3:::对方账号的桶名",
                "arn:aws:s3:::对方账号的桶名/*"
            ]
        }
    ]
}
  • s3:GetObject 用于读取桶内数据对象
  • s3:ListBucket 用于枚举桶内文件/前缀,这对爬取(如Glue爬虫或Athena的表分区同步)至关重要
  • s3:GetBucketLocation 用于确认桶的区域信息

2. Glue爬虫角色的权限(若使用Glue进行爬取)

如果是通过Glue爬虫来发现跨账号S3桶的Schema,需确保Glue爬虫所关联的IAM角色:

  • 拥有上述S3访问权限
  • 同时拥有Glue相关操作权限,例如:
{
    "Effect": "Allow",
    "Action": [
        "glue:StartCrawler",
        "glue:CreateTable",
        "glue:UpdateTable",
        "glue:GetDatabase"
    ],
    "Resource": "arn:aws:glue:你的区域:你的账号ID:*"
}

3. KMS加密权限(若目标S3桶启用了加密)

如果对方S3桶的对象使用了AWS KMS加密,我方执行角色还需获得对应KMS密钥的解密权限:

{
    "Effect": "Allow",
    "Action": "kms:Decrypt",
    "Resource": "arn:aws:kms:对方桶区域:对方账号ID:key/密钥ID"
}

同时需确保对方的KMS密钥策略已允许我方角色/账号进行解密操作。

4. 检查Athena工作组配置

若使用了自定义Athena工作组,需确认工作组关联的执行角色拥有上述所有必要权限,避免因工作组角色权限不足导致访问失败。

5. 确认权限传递的信任关系

确保我方的IAM角色(Athena/Glue使用的角色)的信任策略允许对应服务扮演该角色,例如Athena角色的信任策略需包含:

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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 17:52:11