该存储桶不允许使用访问控制列表(ACLs)。

0

【以下的问题经过翻译处理】 我迈出了使用 AWS 的第一步。我一步一步地遵循这个教程:

将具有外部 Amazon RDS 数据库的高可用性 PHP 应用程序部署到 Elastic Beanstalk https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/php-ha-tutorial.html

我成功启动了环境。

当我尝试上传代码文件时出现错误: *服务:Amazon S3,消息:存储桶不允许 ACL。

无法部署应用程序。*

我了解了一些关于 ACL 的知识。 Stackoverflow 建议为存储桶 S3 选择“启用 ACL”。这解决了问题,但是......

但是 AWS 开发人员指南说: “Amazon S3 中的大多数现代用例不再需要使用 ACL。我们建议您禁用 ACL。禁用 ACL 后,您可以使用策略来控制对存储桶中所有对象的访问”。

如何继续、启用或禁用 ACL?

我了解了一些关于如何使用策略的知识。但是我没有找到一个简单的工作示例来说明我应该添加哪些策略。

首先,我正在尝试从其他主机迁移一个简单的小型网站。

朋友们,您能否分享有关如何做到这一点的最佳实践或有用的工作示例?

先谢谢了!

profile picture
专家
已提问 5 个月前64 查看次数
1 回答
0

【以下的回答经过翻译处理】 正如AWS开发者指南所说,不再推荐使用ACL(访问控制列表),因此值得花时间学习如何使用存储桶策略,因为它们为您提供了更细粒度的控制,以确定谁或者什么可以访问存储桶。

https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html上有一些示例存储桶策略,以及几个在线教程,可以解释如何使用它们。

例如,如果您在文件夹中有一个前缀为“upload”的文件夹,您可以使用类似于以下的策略允许向该文件夹上传:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowUpload",
            "Effect": "Allow",
            "Action": ["s3:PutObject"],
            "Resource": ["arn:aws:s3:::<EXAMPLEBUCKET>"],
            "Condition": {
                "StringEquals": {
                    "s3:prefix": ["upload"],

                }
            }
        }
    ]
}

您需要将 EXAMPLEBUCKET 替换为您的存储桶名称。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则