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

CloudFront分发访问被拒:按AWS文档配置S3桶策略仍无效

问题描述

我给S3桶配置了如下权限策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowCloudFrontServicePrincipalReadOnly",
            "Effect": "Allow",
            "Principal": {
                 "Service": "cloudfront.amazonaws.com"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::bucket-name-here/*",
            "Condition": {
                "StringEquals": {
                    "AWS:SourceArn": "arn:aws:cloudfront::123456789:distribution/ASDFASDFASDF"
                }
            }
        }
    ]
}

该策略取自AWS官方文档,我已启用CloudFront分发,且SourceArn与分发完全匹配,但所有访问尝试均返回访问被拒。目前仅能通过将桶设为公开并添加如下存在安全风险的策略,才能让CloudFront展示S3桶中的文件:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AddPerm",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::bucket-name-here/*"
        }
    ]
}

请问问题出在哪里?

问题排查与解决方案

1. Origin Access Control(OAC)配置不匹配

如果你的CloudFront分发使用的是新版OAC而非旧版OAI,当前桶策略的配置完全错误:

  • OAC对应的Principal应为"AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Control <OAC-ID>",而非"Service": "cloudfront.amazonaws.com"
  • 条件键需指向OAC的ARN,不是CloudFront分发的ARN

2. S3公共访问设置阻止了权限

检查S3桶的Block Public Access设置:

  • 如果开启了Block all public access,会直接覆盖桶策略中的允许规则,导致CloudFront无法访问
  • 只需关闭会影响CloudFront访问的选项(不需要全部关闭,保持其他公共访问限制即可)

3. CloudFront源配置错误

  • 确认分发的源域名是S3桶的标准域名(如bucket-name-here.s3.amazonaws.com),避免使用自定义域名或区域特定域名导致的权限验证失败
  • 确认源配置中已正确关联OAI/OAC,且勾选了"Restrict Bucket Access"选项

4. ARN拼写或格式错误

仔细核对以下内容:

  • S3桶ARN中的桶名是否与实际完全一致(注意大小写、特殊字符)
  • CloudFront分发ARN中的账号ID、分发ID是否准确,没有多字符、少字符或大小写错误

5. 存在拒绝权限覆盖

检查是否有其他权限规则阻止了访问:

  • 桶策略中是否存在Deny语句,优先级高于Allow规则
  • 关联的IAM角色/用户是否有拒绝S3:GetObject的权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 03:15:27