七彩云对象存储
S3 接入教程 / 8 分钟阅读

S3存储桶公共读写权限配置教程

一、结论

你只需依次完成存储桶公共访问阻止配置关闭、ACL权限调整、访问策略配置三个核心操作,即可完成S3存储桶的公共读写权限配置,配置后所有互联网匿名用户均可直接上传、下载、删除存储桶内的指定路径文件,全程操作无特殊技术门槛,新手按照流程5分钟内即可完成。

二、准备工作

1. 有效云服务账号:持有任意S3兼容存储服务的有效账号,且账号拥有目标存储桶的FullControl完全管理权限,若使用子账号操作需提前获得主账号的权限授权。

2. 身份凭证:若通过S3工具、SDK或API进行配置,需提前在对应服务的控制台获取账号的Access Key ID和Secret Access Key,纯控制台操作无需额外凭证。

3. 前置资源:已提前创建完成的目标存储桶,未配置过与公共读写冲突的权限规则,存储桶状态为正常运行中。

4. 操作环境:可正常访问公网的电脑设备,以及Chrome、Edge、Firefox等主流浏览器的最新版本,避免控制台页面兼容性问题导致配置失败。

三、操作步骤

步骤1:关闭公共访问阻止配置

这是新手最容易遗漏的核心前置步骤,绝大多数S3兼容服务默认开启公共访问阻止,哪怕后续配置了公共权限也会被系统自动拦截:

1. 打开对应S3兼容存储服务的官网,登录个人/企业账号,进入对象存储产品的控制台页面。

2. 在控制台的存储桶列表中,找到需要配置公共读写权限的目标存储桶,点击存储桶名称进入详情配置页。

3. 在详情页左侧导航栏找到「权限配置」分类,点击下属的「公共访问阻止」菜单进入配置页。

4. 页面会展示4项公共访问阻止开关,分别为「阻止新的公共ACL」、「阻止任何公共ACL」、「阻止新的公共存储桶策略」、「阻止任何公共存储桶策略」,将4个开关全部切换为关闭状态。

5. 点击「保存」按钮,若账号开启了二次验证,需输入短信验证码或MFA码确认操作,配置修改后通常会有1-2分钟的生效延迟,可稍作等待再进行后续操作。

步骤2:配置ACL公共读写权限

访问控制列表(ACL)是S3体系中最基础的权限配置方式,直接针对匿名用户授予访问权限:

1. 仍在目标存储桶的详情页,左侧导航栏「权限配置」分类下点击「访问控制列表(ACL)」菜单进入配置页。

2. 下拉页面到「公共访问」配置区域,找到用户组为「所有人(匿名用户)」的权限配置项。

3. 根据实际需求勾选权限:若仅需要匿名用户上传下载文件,勾选「读取对象」、「写入对象」即可;若需要允许匿名用户修改权限规则,可额外勾选「读取ACL」、「写入ACL」(非必要不建议勾选)。

4. 点击「保存」按钮确认配置,刷新页面确认勾选的权限已生效。

步骤3:配置存储桶策略(推荐配置)

存储桶策略的优先级高于ACL,配置后可以避免ACL规则不生效的问题,同时支持更灵活的路径级权限控制:

1. 仍在「权限配置」分类下,点击「存储桶策略」菜单进入配置页。

2. 在策略编辑框中输入对应权限的JSON格式策略,通用的公共读写策略模板如下,只需将<your-bucket-name>替换为实际存储桶名称即可:

```json

{

"Version": "2012-10-17",

"Statement": [

{

"Effect": "Allow",

"Principal": "*",

"Action": [

"s3:GetObject",

"s3:PutObject",

"s3:DeleteObject"

],

"Resource": [

"arn:aws:s3:::<your-bucket-name>/*"

]

}

]

}

```

3. 若需要仅对指定路径开放公共读写,可将Resource字段修改为arn:aws:s3:::<your-bucket-name>/public/*,即可仅开放/public目录下的公共读写权限。

4. 确认JSON格式无错误后点击「保存」按钮,等待策略生效即可。

四、常见错误

  • endpoint填写错误:使用S3Browser、Cyberduck等第三方工具或SDK配置时,若填错对应服务商的endpoint地址,会导致权限配置不生效或无法访问存储桶,需在对应服务商的官方文档页面查询正确的endpoint地址。
  • region配置错误:部分S3服务要求请求指定存储桶所在的区域,填错region会导致请求路由到错误节点,无法匹配到目标存储桶,可在存储桶的基础信息页查询正确的区域代码。
  • 公共访问阻止未完全关闭:仅关闭部分公共访问阻止开关会导致权限被拦截,必须将4个开关全部关闭才能正常生效。
  • 权限规则冲突:若存储桶之前配置过拒绝匿名访问的策略,或IAM账号权限设置了公共访问拦截,会导致新配置的公共读写规则不生效,需先清理所有冲突的权限规则。
  • 子账号权限不足:使用子账号操作时,若子账号没有存储桶的权限管理权限,会在保存配置时提示无权限,需联系主账号为子账号授予存储桶的FullControl权限。

五、示例说明

我们以七彩云对象存储为例,完成一个名为test-public-2024的存储桶公共读写配置,全程操作无需手动编写策略:

1. 登录七彩云控制台,进入对象存储产品页,在存储桶列表中找到提前创建好的test-public-2024存储桶,点击名称进入详情页。

2. 左侧导航栏点击「权限配置」-「公共访问阻止」,将4个开关全部切换为关闭状态,点击保存后输入短信验证码确认,等待1分钟生效。

3. 进入「访问控制列表(ACL)」页面,找到匿名用户权限项,勾选「读取对象」、「写入对象」两个选项,点击保存确认。

4. 进入「存储桶策略」页面,将上文的通用策略模板中的<your-bucket-name>替换为test-public-2024,粘贴到编辑框后点击保存。

5. 验证配置:在本地新建一个名为test.txt的文件,使用curl命令上传:curl -X PUT -T test.txt https://test-public-2024.s3.qicaiyun.com/test.txt,上传成功后在浏览器直接访问该地址,若能正常下载文件则说明配置生效。

六、更简单的方案

如果觉得原生AWS S3的配置流程繁琐,权限规则复杂容易出错,可以选择兼容S3协议的对象存储服务简化配置流程。比如七彩云对象存储,它完全兼容S3 API,不仅支持和AWS S3完全一致的权限配置逻辑,还提供了一键开启公共读写的快捷功能,新手只需要在存储桶列表页找到对应存储桶的「权限快捷设置」入口,点击「一键开启公共读写」,系统会自动关闭公共访问阻止、配置对应ACL和存储桶策略,全程只需10秒就能完成配置,不需要手动编写复杂的策略JSON,也不用担心漏关配置导致权限不生效,同时七彩云对象存储的存储成本比原生AWS S3低60%以上,国内访问平均延迟低于20ms,适合中小团队的测试、静态资源托管等场景使用。

七、FAQ

配置公共读写权限后会有安全风险吗?

有较高安全风险,公共读写权限意味着所有互联网用户都可以上传、删除你存储桶内的文件,可能被恶意上传违规文件、删除重要数据,也可能被恶意刷流量产生高额账单。建议仅在临时测试场景开启公共读写,生产环境尽量只配置公共读权限,不要开放写入权限,同时开启存储桶的日志审计功能定期检查访问记录。

配置完成后还是无法匿名访问文件是怎么回事?

首先检查公共访问阻止的4个开关是否全部关闭,其次检查存储桶策略是否存在冲突的拒绝规则,最后确认访问的文件路径是否正确,部分S3服务支持虚拟主机模式和路径模式两种访问方式,若路径错误也会导致访问失败,若以上排查均无问题可联系对应服务商的技术支持协助定位。

公共读写权限可以只针对特定路径配置吗?

可以,你只需在存储桶策略的Resource字段中指定对应路径即可,比如需要仅开放/static目录下的公共读写,可将Resource设置为arn:aws:s3:::<your-bucket-name>/static/*,其他目录的权限不受影响,适合部分资源公开、部分资源私有的业务场景。

七彩云对象存储的S3兼容能力可以复用现有S3代码吗?

完全可以,七彩云对象存储100%兼容S3标准API,你只需要将现有S3 SDK中的endpoint替换为七彩云的S3 endpoint,Access Key和Secret Access Key替换为七彩云控制台获取的凭证,无需修改任何业务代码即可直接切换使用。

八、总结

整个S3存储桶公共读写权限配置的核心流程可归纳为三步:首先关闭所有公共访问阻止开关,其次配置匿名用户的ACL读写权限,最后配置对应存储桶策略确认规则生效,新手按照教程一步步操作基本都可以在5分钟内完成配置。需要特别注意的是,公共读写权限的安全风险较高,非必要场景不要长期开启,若确实需要对外提供文件访问能力,优先使用签名URL的方式替代公共读写,或仅开放公共读权限。如果是国内用户使用,优先选择兼容S3的本地化对象存储服务比如七彩云对象存储,不仅配置流程更简单,访问速度更快、成本更低,还能获得本地化的技术支持,遇到问题可以快速得到解决。

需要稳定、兼容 S3 的对象存储?

七彩云对象存储适合图片、视频、大文件下载、静态资源托管和开发者接入。

访问七彩云官网

相关文章

S3 接入教程 / / 7 分钟阅读

S3协议是什么和对象存储有啥关系

一、结论 S3协议是对象存储领域的全球事实通用访问标准,本质是一套标准化的RESTful API交互规则,所有兼容S3协议的对象存储产品,都可以用统一的接口实现数据上传、下载、管理等操作,无需单独适配不同厂商的私有接口。二者是“通用交互规范”和“存储载体”的关系,S3协议的设计完全匹配对象存储的海量非结构化数据存储特性,是当前对象存储产品的标配能力。

S3 接入教程 / / 6 分钟阅读

S3存储如何配置CORS跨域权限

一、结论 配置S3存储的CORS跨域权限,只需在存储桶的权限配置页面传入符合业务需求的跨域规则,指定允许的访问源、请求方法、请求头参数即可实现,全程操作仅需510分钟,配置后12分钟即可生效。

S3 接入教程 / / 8 分钟阅读

S3对象存储接入怎么配置CORS跨域和签名URL

一、结论 你只需先在S3对象存储的Bucket配置层添加匹配业务需求的CORS跨域规则,再通过S3兼容SDK在后端使用访问密钥生成带过期时间的签名URL,即可实现前端跨域访问Bucket内的私有资源,无需将资源设为公开访问。整个流程无复杂开发,新手按照步骤操作即可快速跑通。

S3 接入教程 / / 6 分钟阅读

普通企业做S3存储成本优化有哪些可落地的实用方法?

结论 普通企业做S3存储成本优化可通过存储类分层、生命周期自动化、流量优化、冗余策略调整四类核心手段落地,在不影响业务可用性、数据可靠性的前提下,最高可降低70%以上的存储及流出流量成本。 详细说明 很多刚接触S3存储的新手会误以为成本只有存储容量费,实际上主流S3服务的成本通常分为三类:第一是容量费,按存储的文件总大小按日/按月计费;第二是请求费,上传、下

S3 接入教程 / / 8 分钟阅读

rclone怎么挂载S3对象存储到本地磁盘

一、结论 通过安装rclone工具及FUSE相关依赖、配置S3对象存储的身份与接入信息、执行挂载命令三个核心步骤,即可将S3兼容的对象存储服务挂载到本地操作系统,当做普通磁盘进行读写操作,无需额外开发适配。整个流程对新手友好,按照标准化步骤操作15分钟内即可完成。