如何解决AWS Amplify中的Access Denied错误
解决AWS Amplify拖放部署后的AccessDenied错误
以下是针对该问题的具体排查和解决步骤:
检查ZIP包文件结构
确保你的index.html入口文件直接放在ZIP包的根目录,而非嵌套在子文件夹中。比如解压ZIP后,根目录应直接看到index.html、CSS、JS等文件,不能是my-app/index.html这种嵌套结构。验证Amplify部署根路径
进入Amplify控制台你的应用页面,依次点击部署设置→构建设置,确认"部署的根目录"配置正确:- 静态文件直接在根目录时,留空或填
. - 若文件嵌套在子文件夹(比如
dist),则填写对应子文件夹名称
- 静态文件直接在根目录时,留空或填
检查S3存储桶权限
Amplify依赖S3托管静态资源,进入AWS S3控制台找到对应存储桶(命名格式通常为amplify-<app-id>-<env>-<region>-deployment):- 切换到权限→桶策略
- 确认存在允许公开读取的策略,示例如下(替换
<your-bucket-name>为实际桶名):{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::<your-bucket-name>/*" } ] } - 若缺失则手动添加该策略
配置重写和重定向规则
进入Amplify控制台→应用设置→重写和重定向:- 单页应用(SPA)需添加默认重写规则:
- 源地址:
</^[^.]+$|\.(?!(css|gif|ico|jpg|js|png|txt|svg|woff|ttf|map|json)$)([^.]+$)/> - 目标地址:
/index.html - 类型:
200 (Rewrite)
- 源地址:
- 多页应用需确保各页面路径能被正确解析,无规则缺失
- 单页应用(SPA)需添加默认重写规则:
重新打包部署
重新手动打包静态文件:直接选中所有前端文件(不要选外层文件夹),右键压缩为ZIP,再重新拖放到Amplify部署界面尝试部署
内容的提问来源于stack exchange,提问作者Jhona
相关产品推荐
相关产品推荐

