访问控制

最近更新时间:2026-01-22 17:15:02

我的收藏
在腾讯云向量存储桶中,资源(存储桶、索引、向量等)默认是私有的。只有资源拥有者(腾讯云主账号)可以访问和修改这些资源。其他用户(例如子账号、匿名用户等)在未授权的情况下无法直接通过 URL 访问资源。向量存储桶支持基于 CAM 用户的访问权限管理和基于资源的访问权限管理两种维度:
用户策略(CAM 策略):以用户为中心的权限管理。配置策略时无需指定用户,需要指定资源、操作和条件。可在 CAM 控制台 进行设置。
资源策略(桶策略):将权限直接关联到具体资源上,用于授权其他腾讯云账户、子账户或匿名用户访问指定的向量资源。可通过 COS 控制台或 COS Vectors API 进行配置。

向量存储桶的资源

存储桶(Bucket)、索引(Index)和向量(Vector)是向量存储桶的三种主要资源类型。目前,访问权限的配置支持到桶级和索引级,暂不支持向量级。您可以通过配置访问策略,对存储桶整体或桶内指定的索引进行授权管理。
需要注意的是,在资源六段式中,向量存储桶的资源标识为 cosvector,资源 ID 以层次结构展现,这点与对象存储 COS 有较大区别。向量桶的资源六段式的具体格式如下表所示。
资源级别
格式
示例
当前账号下所有向量存储桶资源
qcs::cosvector:uid/{appid}:bucket/*
授权访问当前账号下所有向量桶资源:
qcs::cosvector:uid/1250000000:bucket/*
向量存储桶
qcs::cosvector:{region}:uid/{appid}:bucket/{bucketname}/*
授权访问指定向量桶:
qcs::cosvector:ap-guangzhou:uid/1250000000:bucket/my-vector-bucket-1250000000/*
向量索引
qcs::cosvector:{region}:uid/{appid}:bucket/{bucketname}/index/{indexname}/*
授权访问指定向量桶内的指定索引:
qcs::cosvector:ap-guangzhou:uid/1250000000:bucket/my-vector-bucket-1250000000/index/my-index/*
说明:
appid 是您在成功申请腾讯云账户后所得到的账号,由系统自动分配,具有固定性和唯一性,可在 账号信息 中查看。
region:指向量存储桶所在的地域简称。关于地域简称的完整列表,请参考 地域和访问域名
bucketname:指您创建的向量存储桶的完整名称,由自定义名称 + "-" + appid 组成,例如:my-vector-bucket-1250000000。
indexname:指您创建的向量索引的名称。
在授权时,如果资源字段如上表所示带有末尾的通配符 "*",那么这三类资源表示是包含关系,例如为资源 qcs::cosvector:{region}:uid/{appid}:bucket/{bucketname}/* 授权了 GetVectors 操作,那么意味着授权了该桶下的所有 index 的 GetVectors 操作权限。

支持的 Action

向量存储桶使用了一套跟 COS 完全不同的 API 接口,完整的 API 与对应的 Action 如下表所示。
模块
API
Action
接口描述
向量桶操作
cos:PutVectorBucket
创建向量存储桶。
cos:GetVectorBucket
获取向量存储桶的详细信息。
cos:ListVectorBuckets
列举请求者拥有的所有向量存储桶。
cos:DeleteVectorBucket
删除向量存储桶。
向量桶策略
cos:PutVectorBucketPolicy
设置指定向量存储桶的授权策略。
cos:GetVectorBucketPolicy
获取指定向量存储桶的授权策略。
cos:DeleteVectorBucketPolicy
删除指定向量存储桶的授权策略。
向量索引操作
cos:PutVectorIndex
创建向量索引。
GetIndex
cos:GetVectorIndex
获取向量索引的详细信息。
cos:ListVectorIndexes
列举向量存储桶中的所有向量索引。
cos:DeleteVectorIndex
删除向量索引。
向量操作
cos:PutVectors
写入向量数据。
cos:GetVectors
获取指定的向量数据。
cos:ListVectors
列举向量索引中的所有向量数据。
cos:QueryVectors
进行向量相似性检索。
cos:DeleteVectors
删除向量索引中的指定向量数据。

支持的条件(Condition)

当前 COS 向量存储桶不支持条件表达式。

向量存储桶策略示例

示例一:授予子账号对向量桶的操作权限

授予子账号 700001234567 对向量桶 example-bucket-1250000000的部分操作权限,包含获取向量桶信息、创建向量索引、列举向量索引。
{
"Statement": [
{
"Action": [
"name/cos:GetVectorBucket",
"name/cos:PutVectorIndex",
"name/cos:ListVectorIndexes"
],
"Effect": "allow",
"Principal": {
"qcs": [
"qcs::cam::uin/700000000000:uin/700001234567"
]
},
"Resource": [
"qcs::cosvector:ap-guangzhou:uid/1250000000:bucket/example-bucket-1250000000/*"
],
"Sid": "bucket_action"
}
],
"Version": "2.0"
}

示例二:授予子账号对向量桶的索引操作和向量操作权限

授予子账号 700001234567 对向量桶 example-bucket-1250000000内的索引 idx-dim3 的索引操作和向量操作权限。
{
"Statement": [
{
"Action": [
"name/cos:GetVectorIndex",
"name/cos:PutVectors",
"name/cos:GetVectors",
"name/cos:ListVectors",
"name/cos:QueryVectors"
],
"Effect": "allow",
"Principal": {
"qcs": [
"qcs::cam::uin/700000000000:uin/700001234567"
]
},
"Resource": [
"qcs::cosvector:ap-guangzhou:uid/1250000000:bucket/example-bucket-1250000000/index/idx-dim3/*"
],
"Sid": "index_idx_dim3_action"
}
],
"Version": "2.0"
}

示例三:授予子账号对向量桶的桶操作、索引操作和向量操作权限

授予子账号 700001234567 对向量桶 example-bucket-1250000000的桶操作权限以及桶内所有索引的索引操作和向量操作权限。
注意:
"qcs::cosvector:ap-guangzhou:uid/1250000000:bucket/example-bucket-1250000000/*" 这条 resource 已经包含了桶 example-bucket-1250000000 下的所有 index 资源,这种情况下设置同一向量桶下某个具体 index 的 resource 没有意义。
如果想要分别管理桶权限和索引权限,可以设置多条 Statement,请参考示例四。
{
"Statement": [
{
"Action": [
"name/cos:DeleteVectorBucket",
"name/cos:GetVectorBucket",
"name/cos:PutVectorIndex",
"name/cos:DeleteVectorIndex",
"name/cos:GetVectorIndex",
"name/cos:ListVectorIndexes",
"name/cos:PutVectorBucketPolicy",
"name/cos:GetVectorBucketPolicy",
"name/cos:DeleteVectorBucketPolicy",
"name/cos:PutVectors",
"name/cos:GetVectors",
"name/cos:DeleteVectors",
"name/cos:ListVectors",
"name/cos:QueryVectors"
],
"Effect": "allow",
"Principal": {
"qcs": [
"qcs::cam::uin/700000000000:uin/700001234567"
]
},
"Resource": [
"qcs::cosvector:ap-guangzhou:uid/1250000000:bucket/example-bucket-1250000000/*"
],
"Sid": "total_action"
}
],
"Version": "2.0"
}

示例四:授予子账号对向量桶的桶操作权限,以及对向量索引的索引操作和向量操作权限

授予子账号 700001234567 对向量桶 example-bucket-1250000000 的桶操作权限,同时授予子账号 700001234567 对向量桶 example-bucket-1250000000 内的 idx-dim3 索引的索引操作和向量操作权限。
在这种情况下,子账号 700001234567 虽然拥有对向量桶 example-bucket-1250000000 的 GetVectorBucket 等操作权限,也拥有对索引 idx-dim3 的 GetVectors 等操作权限,但是却没有对其他索引如 idx-dim3-other 的 GetVectors 操作权限。
{
"Statement": [
{
"Action": [
"name/cos:DeleteVectorBucket",
"name/cos:GetVectorBucket",
"name/cos:PutVectorIndex",
"name/cos:ListVectorIndexes",
"name/cos:PutVectorBucketPolicy",
"name/cos:GetVectorBucketPolicy",
"name/cos:DeleteVectorBucketPolicy"
],
"Effect": "allow",
"Principal": {
"qcs": [
"qcs::cam::uin/700000000000:uin/700001234567"
]
},
"Resource": [
"qcs::cosvector:ap-guangzhou:uid/1250000000:bucket/example-bucket-1250000000/*"
],
"Sid": "bucket_action"
},
{
"Action": [
"name/cos:DeleteVectorIndex",
"name/cos:GetVectorIndex",
"name/cos:PutVectors",
"name/cos:GetVectors",
"name/cos:DeleteVectors",
"name/cos:ListVectors",
"name/cos:QueryVectors"
],
"Effect": "allow",
"Principal": {
"qcs": [
"qcs::cam::uin/700000000000:uin/700001234567"
]
},
"Resource": [
"qcs::cosvector:ap-guangzhou:uid/1250000000:bucket/example-bucket-1250000000/index/idx-dim3/*"
],
"Sid": "idx_dim3_action"
}
],
"Version": "2.0"
}

示例五:同时使用允许和拒绝两类 Statement

授予子账号 700001234567 对向量桶 example-bucket-1250000000 桶操作权限以及桶内所有索引的操作和向量操作权限,同时显式拒绝对桶内 idx-dim3 索引的写操作权限。
这种情况下,子账号 700001234567 对向量桶 example-bucket-1250000000 内的其他索引都具有写操作权限,唯独无法对 idx-dim3 索引进行写操作。
{
"Statement": [
{
"Action": [
"name/cos:DeleteVectorBucket",
"name/cos:GetVectorBucket",
"name/cos:PutVectorIndex",
"name/cos:DeleteVectorIndex",
"name/cos:GetVectorIndex",
"name/cos:ListVectorIndexes",
"name/cos:PutVectorBucketPolicy",
"name/cos:GetVectorBucketPolicy",
"name/cos:DeleteVectorBucketPolicy",
"name/cos:PutVectors",
"name/cos:GetVectors",
"name/cos:DeleteVectors",
"name/cos:ListVectors",
"name/cos:QueryVectors"
],
"Effect": "allow",
"Principal": {
"qcs": [
"qcs::cam::uin/700000000000:uin/700001234567"
]
},
"Resource": [
"qcs::cosvector:ap-guangzhou:uid/1250000000:bucket/example-bucket-1250000000/*"
],
"Sid": "total_action"
},
{
"Action": [
"name/cos:DeleteVectorIndex",
"name/cos:PutVectors",
"name/cos:DeleteVectors"
],
"Effect": "deny",
"Principal": {
"qcs": [
"qcs::cam::uin/700000000000:uin/700001234567"
]
},
"Resource": [
"qcs::cosvector:ap-guangzhou:uid/1250000000:bucket/example-bucket-1250000000/index/idx-dim3/*"
],
"Sid": "deny_idx_dim3_write_action"
}
],
"Version": "2.0"
}