使用Elastic Beanstalk向导创建PHP应用失败:环境启动遇S3 ACL报错
解决AWS Elastic Beanstalk创建PHP应用时的S3 Bucket ACL报错问题
这个报错的核心原因是:Elastic Beanstalk默认会尝试为自动创建的S3存储桶设置ACL权限,但你的S3存储桶(或账户级配置)禁用了ACL功能,导致环境启动失败。以下是几种可行的解决方法:
修改目标S3桶的ACL启用状态
- 打开AWS S3控制台,找到Elastic Beanstalk自动生成的存储桶(命名格式通常为
elasticbeanstalk-<区域ID>-<AWS账户ID>) - 切换到「权限」标签页,找到「对象所有权」配置项
- 将对象所有权设置改为「ACLs已启用」,保存配置后重新启动Elastic Beanstalk环境
- 打开AWS S3控制台,找到Elastic Beanstalk自动生成的存储桶(命名格式通常为
通过CLI创建应用版本时禁用ACL依赖
如果你不想启用ACL,可以直接用AWS CLI指定Elastic Beanstalk使用桶策略而非ACL来管理权限:aws elasticbeanstalk create-application-version --application-name <你的应用名称> --version-label <自定义版本号> --source-bundle S3Bucket=<存储桶名称>,S3Key=<你的PHP应用包路径> --no-enable-acl完成应用版本创建后,再通过控制台或CLI启动Elastic Beanstalk环境即可
检查账户级S3块公共访问设置
- 进入S3控制台的「账户级块公共访问设置」页面
- 确认是否勾选了「禁用ACLs」选项,若已勾选,可临时取消后再创建环境,环境启动完成后可根据需求重新开启该限制
注意:如果你的AWS账户受Organizations的SCP策略限制了ACL使用,需要联系管理员调整对应SCP规则。
内容的提问来源于stack exchange,提问作者EddyG
相关产品推荐
相关产品推荐

