访问控制
天翼云向量存储桶中的存储桶、索引、向量等资源,默认均为私有资源。默认状态下,仅资源所属的主账号可以访问、修改这些资源。子账号、子用户等其他身份,在未获取对应授权前,不能直接访问向量存储桶内的资源。
ZOS 向量存储桶支持两种权限管理方式:基于 IAM 用户的访问权限管理和基于资源的访问权限管理。
Bucket Policy(桶策略):基于资源的授权策略
可以将策略附加到向量存储桶上,用于授权其他天翼云账号、用户访问指定的向量资源。您可通过向量存储 SDK 完成配置。
IAM Policy(IAM 策略):基于用户的授权策略
可以将策略附加到 IAM 用户或用户组上,定义该身份能够访问哪些向量存储桶资源。您可以在天翼云 IAM 控制台进行策略设置。
支持的Action列表
功能分类 | API | Action | 描述 |
|---|---|---|---|
| Service 级 | ListVectorBuckets | zosvectors:VectorBuckets:List | 列举全部向量存储桶 |
| CreateVectorBucket | zosvectors:VectorBucket:Create | 创建向量 Bucket | |
| Bucket 级 | GetVectorBucket | zosvectors:VectorBucket:Get | 获取向量 Bucket 的详细信息 |
| DeleteVectorBucket | zosvectors:VectorBucket:Delete | 删除向量 Bucket | |
| PutVectorBucketPolicy | zosvectors:VectorBucketPolicy:Put | 设置桶策略 | |
| GetVectorBucketPolicy | zosvectors:VectorBucketPolicy:Get | 查看桶策略 | |
| DeleteVectorBucketPolicy | zosvectors:VectorBucketPolicy:Delete | 删除桶策略 | |
| ListIndexes | zosvectors:Indexes:List | 列举向量 Bucket 中的所有向量索引 | |
| Index 级 | CreateIndex | zosvectors:Index:Create | 创建向量索引 |
| GetIndex | zosvectors:Index:Get | 获取向量索引的详细信息 | |
| DeleteIndex | zosvectors:Index:Delete | 删除向量索引 | |
| PutVectors | zosvectors:Vectors:Put | 将向量插入向量索引 | |
| GetVectors | zosvectors:Vectors:Get | 获取指定的向量数据 | |
| ListVectors | zosvectors:Vector:List | 列举向量索引中的所有向量数据 | |
| QueryVectors | zosvectors:Vectors:Query | 向量检索 | |
| DeleteVectors | zosvectors:Vectors:Delete | 删除向量索引中的指定向量数据 |
资源路径描述格式
在 ZOS Vectors 中,资源包括桶和索引,支持通配符星号(*)。您可以在创建自定义策略时,通过指定资源路径来选择特定资源。单条自定义策略允许包含多个 Resource。
| 资源类型 | 资源路径格式 | 示例 |
|---|---|---|
| 所有向量资源 | ctrn:zosvectors:*:*:* | ctrn:zosvectors:*:*:* ctrn:zosvectors:*:*:*/* |
| 桶 | ctrn:zosvectors:{V#regionId}:{K#accountId }:{V#VectorBucketName} | ctrn:zosvectors:*:*:my-vector-bucket |
| 索引 | ctrn:zosvectors:{V#regionId}:{K#accountId}:{V#VectorBucketName}/{V#VectorIndexName} | ctrn:zosvectors:*:*:my-vector-bucket/my-index |
系统策略
IAM 为各项云服务预置了系统策略,方便您快速完成基础权限配置。ZOS Vectors 为您预置了 ZosvecFullAccess 和 ZosvecReadOnlyAccess 两个系统策略。如果系统预置的系统权限不满足您的授权要求,您还可以创建自定义策略。
ZosvecFullAccess :向量存储(Zosvectors)所有资源的全读写访问权限,即完全控制权限
ZosvecReadOnlyAccess :向量存储(Zosvectors)所有资源的只读访问权限
自定义策略示例
示例1:给用户授予 ZOS Vectors 的所有权限
此策略表示用户可以对 ZOS Vectors 进行任何操作。
{
"Version": "1.1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"zosvectors:*:*"
],
"Resource": [
"*"
]
}
]
}示例2:给用户授予桶的全部权限
此策略表示用户可以对 my-vector-bucket 桶进行任何操作。
{
"Version": "1.1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"zosvectors:*:*"
],
"Resource": [
"ctrn:zosvectors:*:*:my-vector-bucket/*",
"ctrn:zosvectors:*:*:my-vector-bucket"
]
}
]
}
示例3:给用户授予桶的只读权限
此策略表示用户可以对 my-vector-bucket 桶进行读操作。
{
"Version": "1.1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"zosvectors:*:Get",
"zosvectors:*:List",
"zosvectors:Vectors:Query"
],
"Resource": [
"ctrn:zosvectors:*:*:my-vector-bucket/*",
"ctrn:zosvectors:*:*:my-vector-bucket"
]
}
]
}示例4:给用户授予对 ZOS Vectors 的所有资源进行 GET 类操作的权限
此策略表示用户可以对 ZOS Vectors 进行任何 GET 类的操作。
{
"Version": "1.1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"zosvectors:*:Get"
],
"Resource": [
"*"
]
}
]
}示例5:给用户授予某个桶的全部权限,同时禁止创建新桶和删除桶
此策略表示用户可以对 my-vector-bucket 桶进行任何操作,同时禁止创建新桶和删除桶。
{
"Version": "1.1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"zosvectors:*:*"
],
"Resource": [
"ctrn:zosvectors:*:*:my-vector-bucket/*",
"ctrn:zosvectors:*:*:my-vector-bucket"
]
},
{
"Effect": "Deny",
"Action": [
"zosvectors:VectorBucket:Create",
"zosvectors:VectorBucket:Delete"
],
"Resource": [
"*"
]
}
]
}