应配置公共读私有写策略:一、cos控制台设bucket acl为公共读非公共写;二、用json策略精确控制get/put权限;三、s3兼容服务绑定最小权限策略至accesskey;四、用curl验证读通403写、授权写成功。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您在配置 WorkBuddy 对象存储时发现文件可被任意用户读取或无法写入,很可能是存储桶(Bucket)的 ACL 或策略未按最小权限原则设定。公共读私有写是一种常见且安全的配置模式,要求对象默认允许匿名 GET 请求,但禁止未授权 PUT/DELETE 操作。以下是实现该配置的具体方法:
一、通过云控制台设置 COS 存储桶 ACL
COS 控制台提供图形化界面直接修改 Bucket 级别访问控制列表,适用于快速启用公共读基础能力,同时保留写操作的严格管控。
1、登录腾讯云控制台,进入对象存储 COS 服务页面。
2、在存储桶列表中点击目标 Bucket 名称,进入其概览页。
3、左侧导航栏选择「权限管理」→「存储桶 ACL」。
4、在「预设 ACL」区域,勾选“公共读”(即授予所有用户对对象的读取权限),但不勾选“公共写”。
5、点击「保存」,系统将自动应用该 ACL 至整个存储桶,新上传对象默认继承此读权限。
二、配置 COS 存储桶自定义策略(推荐)
ACL 粒度较粗,无法精确限制特定路径或操作类型;使用 JSON 格式存储桶策略可实现“仅允许指定 IP 或 Referer 的 GET 请求”,并完全禁止非授权用户的写入行为,安全性更高。
1、在 COS 控制台中,进入目标 Bucket 的「权限管理」→「存储桶策略」。
2、点击「编辑策略」,清空现有内容,粘贴以下策略模板(已适配公共读私有写场景):
3、将策略中 "Resource": "acs:cos:ap-shanghai:1250000000:my-bucket-123456/*" 替换为您的实际 Bucket ARN 和地域信息。
使用 draw.io(.drawio 格式)和 SVG 生成兼容 Microsoft Visio 的架构图。当用户需要以下任一场景时触发: - 用于 Visio 或技术文档的架构/系统/网络图 - 带连接标注的分层控制系统图 - 将 draw.io XML 转换为稳定、可嵌入的 SVG - 修复 Visio 或 draw.io 无法打开的故障排查类图表 - 任何需专业级布局且文本可编辑的图表
4、确认无语法错误后点击「保存」,策略将在 1 分钟内全局生效。
三、S3 兼容服务(如 MinIO、华为 OBS)策略配置
S3 协议服务普遍支持基于 IAM 的策略模型,需通过服务端控制台或 CLI 工具绑定策略至用户或角色,确保 WorkBuddy 使用的 AccessKey 仅具备必要权限,而非赋予 Bucket 全局权限。
1、登录对应 S3 兼容平台控制台,定位到「访问密钥管理」或「用户策略」模块。
2、创建新策略或编辑现有策略,填入如下最小权限策略:
3、将该策略绑定至 WorkBuddy 所用的 AccessKey 所属用户或角色。
4、确保策略中 "Resource": ["arn:aws:s3:::my-bucket/*", "arn:aws:s3:::my-bucket"] 明确限定作用范围,避免通配符过度授权。
四、验证公共读私有写是否生效
权限配置完成后必须进行真实请求验证,防止策略语法错误、缓存延迟或跨域设置干扰导致误判。仅依赖控制台状态提示不可靠。
1、使用 curl 命令测试公开可读性:curl -I https://my-bucket-123456.cos.ap-shanghai.myqcloud.com/test.txt,响应头中应含 HTTP/2 200 且无 403。
2、尝试匿名 PUT 操作:curl -X PUT --data "test" https://my-bucket-123456.cos.ap-shanghai.myqcloud.com/unauthorized.txt,预期返回 HTTP/2 403。
3、使用 WorkBuddy 配置的 AccessKey 执行相同 PUT 请求,应返回 HTTP/2 200 或 201。







