tencent cloud

对象存储

动态与公告
产品动态
产品公告
产品简介
产品概述
功能概览
应用场景
产品优势
基本概念
地域和访问域名
规格与限制
产品计费
计费概述
计费方式
计费项
免费额度
计费示例
查看和下载账单
欠费说明
常见问题
快速入门
控制台快速入门
COSBrowser 快速入门
用户指南
创建请求
存储桶
对象
数据管理
批量处理
全球加速
监控与告警
运维中心
数据处理
内容审核
智能工具箱
数据工作流
应用集成
工具指南
工具概览
环境安装与配置
COSBrowser 工具
COSCLI 工具
COSCMD 工具
COS Migration 工具
FTP Server 工具
Hadoop 工具
COSDistCp 工具
HDFS TO COS 工具
GooseFS-Lite 工具
在线辅助工具
自助诊断工具
实践教程
概览
访问控制与权限管理
性能优化
使用 AWS S3 SDK 访问 COS
数据容灾备份
域名管理实践
图片处理实践
COS 音视频播放器实践
工作流实践
数据直传
内容审核实践
数据安全
数据校验
大数据实践
COS 成本优化解决方案
在第三方应用中使用 COS
迁移指南
本地数据迁移至 COS
第三方云存储数据迁移至 COS
以 URL 作为源地址的数据迁移至 COS
COS 之间数据迁移
Hadoop 文件系统与 COS 之间的数据迁移
数据湖存储
云原生数据湖
元数据加速
数据加速器 GooseFS
数据处理
数据处理概述
图片处理
媒体处理
内容审核
文件处理
文档处理
故障处理
获取 RequestId 操作指引
通过外网上传文件至 COS 缓慢
访问 COS 时返回403错误码
资源访问异常
POST Object 常见异常
API 文档
简介
公共请求头部
公共响应头部
错误码
请求签名
操作列表
Service 接口
Bucket 接口
Object 接口
批量处理接口
数据处理接口
任务与工作流
内容审核接口
云查毒接口
SDK 文档
SDK 概览
准备工作
Android SDK
C SDK
C++ SDK
.NET(C#) SDK
Flutter SDK
Go SDK
iOS SDK
Java SDK
JavaScript SDK
Node.js SDK
PHP SDK
Python SDK
React Native SDK
小程序 SDK
错误码
鸿蒙(Harmony) SDK
终端 SDK 质量优化
安全与合规
数据容灾
数据安全
访问管理
常见问题
热门问题
一般性问题
计费计量问题
域名合规问题
存储桶配置问题
域名和 CDN 问题
文件操作问题
日志监控问题
权限管理问题
数据处理问题
数据安全问题
预签名 URL 问题
SDK 类问题
工具类问题
API 类问题
服务协议
Service Level Agreement
隐私政策
数据处理和安全协议
联系我们
词汇表

存储桶策略

PDF
聚焦模式
字号
最后更新时间: 2025-09-26 14:47:38
存储桶策略作用于配置的存储桶和存储桶内对象,您可以通过存储桶策略为 CAM 子账号、其他主账号、匿名用户授权存储桶及存储桶内对象的操作权限。

概述

注意:
腾讯云主账号具备对其名下资源(包括存储桶)的最大权限,您虽然可以在存储桶策略中限制几乎所有操作,但主账号始终具备 PUT Bucket Policy 操作的权限,主账号调用该操作不检查存储桶策略。
存储桶策略(Bucket Policy)使用 JSON 语言描述,支持向匿名身份或腾讯云任何 CAM 账户授予对存储桶、存储桶操作、对象或对象操作的权限,在腾讯云 COS 中存储桶策略可以用于管理该存储桶内的几乎所有操作,推荐您使用存储桶策略来管理通过 ACL 无法表述的访问策略。

适用场景

注意:
创建存储桶和获取存储桶列表这两个服务级的操作权限,需要通过 访问管理控制台 配置。
当您关心谁能访问这个 COS 桶时,推荐使用存储桶策略。可通过查找存储桶,并检查存储桶策略来了解谁能访问。推荐场景有:
针对某个存储桶进行授权。
相比 ACL,存储桶策略更加灵活。
相比用户策略,存储桶策略支持跨账号授权及匿名用户授权。

存储桶策略组成

存储桶策略使用 JSON 语言描述,语法遵循 访问策略语言 的统一规范,包括委托人(principal)、效力(effect)、操作(action)、资源(resource)、条件(condition)等基本元素。详情可参考 访问策略语言概述。 其中,存储桶策略的资源范围被限制在该存储桶之内,可以针对整个存储桶、指定目录、指定对象授权。
注意:
添加存储桶策略时,请务必根据业务需要,按照最小权限原则进行授权。如果您直接授予其他用户所有资源(resource:*),或者所有操作(action:*)权限,则存在由于权限范围过大导致数据安全风险。

控制台配置示例

说明:
使用对象存储控制台配置存储桶策略时,您需要授予用户拥有存储桶的相关权限,例如获取存储桶标签和列出存储桶的权限。
存储桶策略的大小限制为20KB。
示例:授予子账号拥有存储桶特定目录的所有权限。配置信息如下:
配置项
配置值
效力
允许
委托人
子账号,子账号的 UIN,该子账号必须为当前主账号下的子账号,例如100000000011
资源
特定目录前缀,例如folder/sub-folder/*
操作
所有操作
条件
控制台支持 图形化配置策略配置 两种方式添加、管理存储桶策略。

图形化配置

进入目标存储桶的权限管理,选择 Policy 权限设置 > 图形设置,单击添加策略,在弹窗中进行策略配置。

步骤1:选择模板(可选)

通过选择不同的被授权用户、资源范围组合,COS 为您提供了多种策略模板,帮助您快速配置存储桶策略。若模板不符合您的需要,可以跳过此步,或在 步骤2:配置策略 中添加或删除授权操作。

步骤2:配置策略

针对您在步骤1选择的被授权用户、指定目录和模板组合,COS 为您在配置策略中自动添加了对应的操作、被授权用户、资源等。其中,当您选择指定用户、指定目录时,需要在配置策略时指定具体的用户 UIN 和目录。
说明:
需要注意,对目录授权,输入的资源路径需要在后面加 /*。例如,对目录 test 授权,则需输入 test/*
当 COS 提供的推荐模板不符合您的需要时,您也可以在这一步对策略内容进行调整,添加、删除被授权用户、资源和操作。如下图所示:

配置项说明如下:
效力:支持选择允许拒绝,对应策略语法中的 “allow” 和 “deny”。
用户:支持添加、删除被授权用户,包括所有用户(*)、主账户、子账户和云服务。
注意:
效力允许时,所有用户的生效范围包含匿名用户、子账号、主账号等所有用户。
效力拒绝时,所有用户的生效范围仅针对匿名用户。匿名用户将无法访问存储桶请谨慎操作
资源:支持添加整个存储桶或指定目录资源。
操作:添加、删除您需要授权的操作。
条件:授予权限时指定条件,例如限制用户来访 IP。更多条件说明请参见 条件键说明及使用示例
注意:
条件中的 IPVPC ID,不能同时配置到同个策略下,请分开添加策略。
如果您使用的 CVM 与 COS 存储桶位于不同地域或者非 CVM,请选择条件为 IP,并填入公网 IP。如果您使用的 CVM 与 COS 存储桶位于相同地域,请选择条件为VPC ID,并填入 VPC ID 地址。

策略语法

除了使用图形化配置,熟悉存储桶策略的用户可以直接使用 JSON 语言编写策略。
编写好存储桶策略后,单击保存即可。如下图所示。此外您也可以通过 APISDK 添加存储桶策略。


JSON 策略示例

以下策略示例描述为:允许属于主账号 ID 为100000000001(APPID 为1250000000)下的子账号 ID 100000000011, 对北京地域的存储桶 examplebucket-bj 下的目录 folder/sub-folder 中的对象,授权所有操作。
{
"statement": [
{
"principal": {
"qcs": [
"qcs::cam::uin/100000000001:uin/100000000011"
]
},
"effect": "allow",
"action": [
"name/cos:*"
],
"resource": [
"qcs::cos:ap-beijing:uid/1250000000:examplebucket-bj-1250000000/folder/sub-folder/*"
]
}
],
"version": "2.0"
}

操作方式

COS 支持使用控制台、API、SDK 等多种方式添加存储桶策略。控制台支持图形化配置和常用的授权模板,方便不熟悉策略语言的用户快速添加策略。
操作方式
说明
控制台
Web 页面,直观易用
API
RESTful API,直接请求 COS
SDK
Android
丰富的 SDK demo,支持各类开发语言。
iOS
C++
.NET(C#)
Go
Java
Node.js
Python
小程序

更多存储桶策略示例

注意:
添加存储桶策略时,请务必根据业务需要,按照最小权限原则进行授权。如果您直接授予其他用户所有资源 (resource:*),或者所有操作 (action:*) 权限,则存在由于权限范围过大导致数据安全风险。
下面介绍限制子网、委托人和 VPC ID 的存储桶策略示例。

示例一

拒绝匿名用户qcs::cam::anyone:anyone)来自子网 10.1.1.0/24 网段 和 vpcid 为 aqp5jrc1的请求,语法示例如下。
注意:
这个拒绝策略的效力仅针对匿名用户生效,如果需要限制 CAM 用户(子账号、主账号),需要在 principal 字段中明确指定该账号的 Arn。
{
"statement": [
{
"action": [
"name/cos:*"
],
"condition": {
"ip_equal": {
"qcs:ip": [
"10.1.1.0/24"
]
},
"string_equal": {
"vpc:requester_vpc": [
"vpc-aqp5jrc1"
]
}
},
"effect": "deny",
"principal": {
"qcs": [
"qcs::cam::anyone:anyone"
]
},
"resource": [
"qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"
]
}
],
"version": "2.0"
}

示例二

允许子账号(qcs::cam::uin/100000000001:uin/100000000002)在访问来源 vpcid 为 aqp5jrc1 时访问指定存储桶,语法示例如下:
{
"statement": [
{
"action": [
"name/cos:*"
],
"condition": {
"string_equal": {
"vpc:requester_vpc": [
"vpc-aqp5jrc1"
]
}
},
"effect": "allow",
"principal": {
"qcs": [
"qcs::cam::uin/100000000001:uin/100000000002"
]
},
"resource": [
"qcs::cos:ap-beijing:uid/1250000000:examplebucket-1250000000/*"
]
}
],
"version": "2.0"
}


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈