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

使用Athena查询S3日志桶时遭遇权限拒绝问题求助

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

问题分析

当前S3日志桶的策略仅授权了cloudtrail.amazonaws.com和config.amazonaws.com服务的相关操作,但未允许Athena(或执行Athena查询的IAM实体)访问桶内日志对象及列出桶内容,这是导致Permission denied错误的核心原因。

解决方案

1. 为执行Athena查询的IAM实体添加权限

确保你用来运行Athena查询的IAM用户/角色拥有以下S3权限(通过IAM策略配置):

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::<our bucket name>",
                "arn:aws:s3:::<our bucket name>/<prefix>/AWSLogs/*"
            ]
        }
    ]
}

2. 更新S3桶策略,添加Athena访问权限

在现有桶策略中新增以下Statement,授权指定IAM实体访问日志桶:

{
    "Sid": "AllowAthenaAccessToCloudTrailLogs",
    "Effect": "Allow",
    "Principal": {
        "AWS": "arn:aws:iam::<日志账号ID>:role/<你的Athena执行角色ARN>"
    },
    "Action": [
        "s3:ListBucket",
        "s3:GetObject"
    ],
    "Resource": [
        "arn:aws:s3:::<our bucket name>",
        "arn:aws:s3:::<our bucket name>/<prefix>/AWSLogs/*"
    ]
}
  • 若需允许日志账号内所有IAM实体访问,可将Principal改为{"AWS": "arn:aws:iam::<日志账号ID>:root"},但推荐遵循最小权限原则,指定具体的Athena执行角色。
  • 保留原有桶策略中的AllowSSLRequestsOnly规则,确保所有访问均通过HTTPS传输。

3. 验证权限配置

更新完IAM策略和桶策略后,重新运行Athena的“预览表”查询,确认权限错误是否解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 23:03:07