·用户策略(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/* |
注意:说明:
二、支持的 Action
向量存储桶使用了一套跟 COS 完全不同的 API 接口,完整的 API 与对应的 Action 如下表所示。
| 模块 | API | Action | 接口描述 |
| 向量桶操作 | CreateVectorBucket | cos:PutVectorBucket | 创建向量存储桶。 |
| | GetVectorBucket | cos:GetVectorBucket | 获取向量存储桶的详细信息。 |
| | ListVectorBuckets | cos:ListVectorBuckets | 列举请求者拥有的所有向量存储桶。 |
| | DeleteVectorBucket | cos:DeleteVectorBucket | 删除向量存储桶。 |
| 向量桶策略 | PutVectorBucketPolicy | cos:PutVectorBucketPolicy | 设置指定向量存储桶的授权策略。 |
| | GetVectorBucketPolicy | cos:GetVectorBucketPolicy | 获取指定向量存储桶的授权策略。 |
| | DeleteVectorBucketPolicy | cos:DeleteVectorBucketPolicy | 删除指定向量存储桶的授权策略。 |
| 向量索引操作 | CreateIndex | cos:PutVectorIndex | 创建向量索引。 |
| | GetIndex | cos:GetVectorIndex | 获取向量索引的详细信息。 |
| | ListIndexes | cos:ListVectorIndexes | 列举向量存储桶中的所有向量索引。 |
| | DeleteIndex | cos:DeleteVectorIndex | 删除向量索引。 |
| 向量操作 | PutVectors | cos:PutVectors | 写入向量数据。 |
| | GetVectors | cos:GetVectors | 获取指定的向量数据。 |
| | ListVectors | cos:ListVectors | 列举向量索引中的所有向量数据。 |
| | QueryVectors | cos:QueryVectors | 进行向量相似性检索。 |
| | DeleteVectors | 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的桶操作权限以及桶内所有索引的索引操作和向量操作权限。
{ "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"}