使用AWS S3与CloudFront播放视频时遭遇403 Forbidden问题求助
CloudFront + S3 视频播放403 Access Denied问题排查
问题概述
目标是将视频存储在Amazon S3存储桶,通过CloudFront作为CDN实现缓存,最终限制视频仅在指定域名播放,但加载视频时持续返回403错误:
- 浏览器控制台提示:
Failed to load resource: the server responded with a status of 403 () - 返回的错误XML:
return (<Error> <Code>AccessDenied</Code> <Message>Access Denied</Message> <RequestId>9PW32M02SZR567DF</RequestId> <HostId>ukPRxDlFq9TYiJcHLnnAhryAewPoAd/ijm/GxHvdB774cMwK4PdQ0yr1CQqa1msCV+CkYj+nkL0=</HostId> </Error> )
已尝试的操作
- 通过OAI和密钥配置CloudFront分发,禁用WAF排除干扰
- 直接用浏览器加载视频,仅出现播放器框架但无法加载内容
- 创建公钥、密钥组并正确关联目标S3存储桶
- 配置Origin Access,分别尝试签名和不签名请求模式
- 设置Legacy Identities选项
- 禁用S3加密和存储桶密钥
- 开启S3所有公开访问阻止设置
- 复制CloudFront权限配置到S3存储桶
- 将S3设为公开后,S3原生URL可正常访问,但CloudFront URL仍返回403
当前配置信息
S3存储桶策略(最新版本)
{ "Version": "2008-10-17", "Id": "PolicyForCloudFrontPrivateContent", "Statement": [ { "Sid": "AllowCloudFrontServicePrincipal", "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::tpwc-co-uk--media/*", "Condition": { "StringEquals": { "AWS:SourceArn": "arn:aws:cloudfront::240479180938:distribution/E17GLPD7918NNC" } } }, { "Sid": "Statement1", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::tpwc-co-uk--media/*" } ] }
S3服务器端加密设置
Server-side encryption with Amazon S3 managed keys (SSE-S3)
CloudFront信息
- 分发访问URL:
https://d2tzr0xka0eqcu.cloudfront.net - 已提供配置截图:Distribution的General、Settings、Origin Settings,以及Bucket的Permissions、Management、Encryption模块,未截图部分无额外配置
内容的提问来源于stack exchange,提问作者Eoin
相关产品推荐
相关产品推荐

