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

使用根账号通过AWS Athena查询S3日志桶遇403权限拒绝

解决Athena查询S3日志桶的403权限拒绝问题

排查步骤与修复方案

1. 修复桶策略中的ARN格式错误

你提供的第二个桶策略里,arn:aws:s3:::mybucketlogs 末尾存在多余空格,这会导致ARN匹配失败,权限规则无法生效。修改后的正确桶策略如下:

{
    "Version": "2012-10-17",
    "Id": "S3-Console-Auto-Gen-Policy-XXXXXXXXXXXXXX",
    "Statement": [
        {
            "Sid": "S3PolicyStmt-DO-NOT-MODIFY-XXXXXXXXXXXXXXX",
            "Effect": "Allow",
            "Principal": {
                "Service": "logging.s3.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::mybucketlogs/*"
        },
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "athena.amazonaws.com"
            },
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::mybucketlogs/*",
                "arn:aws:s3:::mybucketlogs"
            ]
        },
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::XXXXXXXXXXX:root"
            },
            "Action": "*",
            "Resource": [
                "arn:aws:s3:::mybucketlogs/*",
                "arn:aws:s3:::mybucketlogs"
            ]
        }
    ]
}

注:给Athena的权限无需开放*,仅需s3:GetObject(读取日志对象)和s3:ListBucket(遍历桶内路径)即可,符合最小权限原则。

2. 检查Athena查询结果存储位置的权限

Athena执行查询时需要将结果写入指定的S3存储桶(在Athena控制台Settings中配置),即使你有权限访问日志桶,若结果桶无写入权限也可能触发权限错误:

  • 确认结果桶的权限设置,确保当前根账号或Athena服务角色有权限执行s3:PutObject操作。
  • 若未配置结果存储位置,先完成配置(建议使用独立的S3桶存放查询结果)。

3. 验证AWS组织SCP(服务控制策略)限制

如果你的账号属于AWS组织,检查是否有SCP限制了根账号或Athena服务对S3的访问权限:

  • 登录AWS Organizations控制台,查看应用于该账号的SCP,确保存在允许s3:GetObject、s3:ListBucket操作的规则。

4. 刷新Athena表分区(可选)

虽然报错是权限问题,但分区投影可能未正确识别现有分区,执行以下语句刷新分区:

MSCK REPAIR TABLE s3_access_logs_db.mybucket_logs;

5. 检查S3存储桶的块公共访问设置

确认日志桶的Block public access设置中,未开启会影响内部服务访问的规则:

  • 登录S3控制台,进入mybucketlogs桶的Permissions页面,查看Block public access (bucket settings),确保未勾选Block all public access(若勾选,需确认是否允许内部服务通过桶策略访问)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 11:01:10