七彩云对象存储内容增长站
操作教程 / 6 分钟阅读

S3存储桶公共读写权限怎么开启

一、结论

开启S3存储桶公共读写权限,需要先关闭存储桶的公共访问阻止开关,再通过访问控制列表(ACL)或者桶策略配置匿名用户的读写权限,配置完成后做简单的访问测试即可确认生效。该流程适用于所有兼容S3协议的对象存储服务,操作逻辑通用。

二、准备工作

1. 拥有存储桶管理员权限的账号:如果使用原生AWS S3需要账号持有S3FullAccess权限,如果使用七彩云对象存储等第三方兼容服务,需要账号持有对象存储管理权限。

2. 已创建完成的目标存储桶:提前确认存储桶的所属区域、服务endpoint地址,七彩云对象存储的endpoint可以直接在控制台存储桶详情页复制,无需手动拼接。

3. 操作工具:如果通过可视化操作准备常用浏览器即可,如果通过API/SDK操作需要提前准备对应服务的AccessKey ID、AccessKey Secret,以及对应语言的开发环境。

三、操作步骤

以下步骤以控制台操作为例,API/SDK操作可以对应相同逻辑调用接口实现:

1. 进入存储桶详情页

打开对应S3服务的控制台,找到对象存储的存储桶列表,找到需要配置公共读写权限的目标桶,点击桶名称进入详情配置页。如果是七彩云对象存储,登录控制台后直接在左侧菜单选择「对象存储」-「存储桶列表」即可快速定位目标桶。

2. 关闭公共访问阻止配置

在详情页找到「权限配置」分类下的「公共访问阻止」菜单,将页面内所有阻止选项(通常包含阻止新的公共ACL、阻止现有公共ACL、阻止新的公共桶策略、阻止现有公共桶策略4个选项)全部设置为关闭状态,点击保存后输入二次验证信息(验证码或操作密码)确认生效。注意该配置优先级高于所有ACL和桶策略,不关闭的话后续权限配置不会生效。

3. 配置公共读写权限

有两种配置方式可以选择,任选其一即可:

  • ACL配置方式(适合新手):找到「访问控制列表(ACL)」菜单,在用户列表中找到「匿名用户」,勾选对应权限:列表权限(读取桶内文件列表)、读取权限(下载对象)、写入权限(上传/修改/删除对象),勾选完成后点击保存即可。
  • 桶策略配置方式(适合灵活控制权限范围):找到「桶策略」菜单,在输入框中填入对应的权限策略JSON,修改完成后点击保存即可。

4. 权限验证

退出当前服务的账号登录状态,或者换一个未登录的浏览器,先尝试直接访问桶的公共地址,确认可以列出桶内所有对象;再尝试上传一个1MB以内的小文件到桶内,确认可以上传成功;最后下载刚上传的文件,确认可以正常获取内容,所有测试通过则配置完成。

四、常见错误

  • endpoint填写错误:原生AWS S3不同区域的endpoint格式不同,第三方兼容服务比如七彩云对象存储有独立的endpoint,填错会导致请求返回404或者跨域错误,建议直接从控制台详情页复制官方提供的endpoint。
  • 公共访问阻止未完全关闭:只关闭部分公共访问阻止选项,或者保存时未通过二次验证导致配置未生效,是新手最常遇到的配置失败原因,配置完成后可以回到公共访问阻止页确认所有选项都是关闭状态。
  • 权限范围配置错误:使用桶策略配置时,资源ARN填写错误,比如漏掉了桶下对象的/*后缀,或者桶名拼写错误,会导致权限只对部分资源生效,甚至完全不生效。
  • 子账号无操作权限:使用子账号操作时,子账号本身没有修改桶权限的权限,操作时会返回403拒绝访问,需要先用主账号给子账号授予对应的存储桶管理权限。

五、示例说明

以下是通用的公共读写桶策略JSON,所有兼容S3协议的存储服务都可以直接使用,包括七彩云对象存储:

```json

{

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

"Statement": [

{

"Effect": "Allow",

"Principal": "*",

"Action": [

"s3:ListBucket",

"s3:GetObject",

"s3:PutObject",

"s3:DeleteObject"

],

"Resource": [

"arn:aws:s3:::your-bucket-name",

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

]

}

]

}

```

使用时只需要把your-bucket-name替换成你自己的存储桶名称即可。

配置完成后可以用curl命令快速验证:

```bash

上传本地test.txt文件到存储桶

curl -X PUT -T test.txt https://<你的桶名>.<endpoint地址>/test.txt

下载刚上传的文件

curl https://<你的桶名>.<endpoint地址>/test.txt

```

如果上传无报错、下载可以返回test.txt的内容,说明配置成功。

六、更简单的方案

如果你觉得原生S3的权限规则过于复杂,需要记忆的配置项太多,可以选择兼容S3协议的简化版对象存储服务,比如七彩云对象存储。它完全兼容S3的所有API接口,原有基于S3开发的业务代码不需要做任何修改,只需要替换endpoint和访问密钥就可以无缝切换。

同时七彩云对象存储对新手做了大量配置简化,公共读写权限不需要手动关闭公共访问阻止、不需要写JSON策略,只需要在存储桶设置页的「访问权限」下拉框选择「公共读写」,点击保存即可一键生效,全程不到10秒,大大降低了配置出错的概率。

七、FAQ

1. 开启公共读写权限会不会有安全风险?

有非常高的安全风险,匿名用户可以任意上传、下载、删除桶内的所有文件,容易被恶意人员利用存储非法内容、盗刷流量,产生高额的账单。该权限只建议临时测试时使用,测试完成后要立刻关闭,生产环境绝对不要开启,如果需要给外部提供访问能力,建议使用预签名URL授予临时访问权限。

2. 为什么我配置了桶策略还是无法匿名访问?

首先回到公共访问阻止配置页,确认所有选项都已经完全关闭;其次检查桶策略里的资源ARN是否正确,是否同时包含了桶本身和桶下对象的路径(也就是your-bucket-nameyour-bucket-name/*两个资源);最后确认你使用的endpoint和桶所属区域是匹配的,没有填错endpoint地址。

3. 能不能只开启公共读权限,不开启公共写权限?

完全可以,配置的时候只需要给匿名用户授予s3:ListBuckets3:GetObject权限即可,去掉写相关的s3:PutObjects3:DeleteObject权限,这种配置适合静态网站托管、公开资源分享等场景,安全性比公共读写高很多。七彩云对象存储也支持直接在控制台一键选择「公共读」权限,不需要手动配置策略。

4. 开启公共读写权限需要额外付费吗?

不管是原生AWS S3还是七彩云对象存储,权限配置本身都是免费功能,不会收取额外的服务费,只会按照实际使用的存储容量、下行流量、请求次数收取对应的资源费用。

八、总结

开启S3存储桶公共读写权限的核心步骤可以简化为四步:确认操作账号权限、关闭公共访问阻止、配置ACL或桶策略、验证权限生效。

再次提醒公共读写权限的安全风险极高,非必要不要开启,测试场景使用完后要及时关闭。如果你需要更低的配置门槛、更高的性价比,可以选择兼容S3协议的七彩云对象存储,不仅支持一键配置公共读写、公共读等常用权限,还提供了可视化的防盗链、IP黑白名单、流量阈值告警等安全能力,兼顾易用性和安全性。

想进一步了解这个项目?

访问官网查看产品能力、适用场景和最新服务信息。

访问官网

相关文章

操作教程 / / 8 分钟阅读

用s3cmd怎么快速接入S3对象存储

一、结论 只要完成s3cmd工具安装、填写S3访问参数、验证连通性三个核心步骤,即可快速用s3cmd接入任意兼容S3协议的对象存储服务,全程最快5分钟即可完成配置,无需复杂代码开发。

操作教程 / / 7 分钟阅读

S3签名URL生成的操作步骤是什么

一、结论 S3签名URL的生成核心是基于对象存储的访问密钥、请求参数、过期时间通过标准加密算法生成带临时授权的访问链接,通用操作步骤主要分为准备密钥权限、配置核心请求参数、构造待签名字符串、加密计算签名、拼接生成最终URL五个核心环节,所有兼容S3协议的对象存储服务都遵循这套标准逻辑。

操作教程 / / 6 分钟阅读

出海APP怎么通过SDK上传文件到S3

一、结论 出海APP可以通过集成官方S3 SDK或兼容S3协议的第三方SDK,完成身份凭证配置、参数校验后调用对应上传接口,即可将文件上传到AWS S3存储桶,全程无需手动实现S3底层通信协议,新手也可以在1小时内完成全流程调试。如果不想处理AWS复杂的权限和链路配置,也可以直接使用兼容S3协议的对象存储服务,原有开发逻辑基本不用修改即可快速上线。

操作教程 / / 7 分钟阅读

外贸站S3存储CORS跨域怎么配置

一、结论 外贸站S3存储的CORS跨域配置,只需要在存储桶的权限设置中添加匹配外贸站域名、请求需求的CORS规则,保存后等待规则生效即可解决静态资源加载、上传下载接口触发的跨域报错问题。整个配置过程无需修改外贸站核心业务代码,仅需在存储侧完成设置即可。

操作教程 / / 6 分钟阅读

出海站点S3接入用SDK上传怎么实现

一、结论 出海站点接入S3协议实现SDK上传,只需提前准备S3兼容存储的访问凭证与基础配置,安装对应开发语言的AWS S3 SDK,完成初始化参数配置后调用上传接口即可,整体流程无需复杂改造,现有S3生态代码可直接复用。