一、通用权限策略
TSearch 默认提供了两种通用策略:
·全读写策略 QcloudTSearchFullAccess,可以让用户拥有创建和管理 TSearch 所有集群实例的权限。
·只读策略 QcloudTSearchReadOnlyAccess,可以让用户拥有查看 TSearch 集群实例的权限,但是不具有创建、更新、删除等操作的权限。
你可以登录 访问管理控制台 > 策略,在搜索框中搜索“TSearch”,在列表中会显示默认策略,可对需要授权的账号进行绑定。
如果默认策略不能满足需求,可单击新建自定义策略,进行自定义授权。
二、自定义权限策略:通过访问管理实现
腾讯云访问管理提供4种自定义策略方式。
·按策略生成器创建:从策略向导中选择服务、操作、定义资源,自动生成策略语法,可以灵活满足差异化权限管理需求,优先推荐使用。详细的操作步骤,你可以访问通过策略生成器创建自定义策略。
·按产品功能或项目权限创建:通过开启或关闭项目管理、主题模型或内容分发网络相关功能,自动生成对应策略。
·按策略语法创建:你可以编写策略语法,生成对应的策略,权限粒度灵活,可以解决对权限精细划分有较高要求的用户诉求。详细的操作步骤,你可以访问通过策略语法创建自定义策略。
·按标签授权:通过标签授权创建自定义策略,策略生成后该策略将具有一类标签属性资源的权限。详细的操作步骤,你可以访问通过标签授权创建自定义策略。
三、自定义权限策略:通过策略语法实现
TSearch 可授权的资源类型如下:
| 资源类型 | 资源描述 |
| instance | qcs::tsearch:$region:$account:instance/* |
各 API 支持资源级权限访问控制详情如下:
| 接口名 | 描述 | 是否关联资源 | 资源描述 |
| 获取集群列表、单个集群信息 | DescribeInstances | 是 | qcs::tsearch:${Region}:uin/${uin}:instance/${instanceId} |
| 创建集群 | CreateInstance | 否 | * |
| 更新集群 | UpdateInstance | 是 | qcs::tsearch:${Region}:uin/${uin}:instance/${instanceId} |
| 重启集群 | RestartInstance | 是 | qcs::tsearch:${Region}:uin/${uin}:instance/${instanceId} |
| 删除集群 | DeleteInstance | 是 | qcs::tsearch:${Region}:uin/${uin}:instance/${instanceId} |
| 更新插件 | UpdatePlugins | 是 | qcs::tsearch:${Region}:uin/${uin}:instance/${instanceId} |
支持区域如下:
| 区域 | 名称 | 区域 ID |
| 华南地区 | 广州 | ap-guangzhou |
| 华东地区 | 上海 | ap-shanghai |
| | 南京 | ap-nanjing |
| 华北地区 | 北京 | ap-beijing |
| 西南地区 | 重庆 | ap-chongqing |
自定义策略的语法如下:
{ "version": "2.0", "statement": [ { "action": [ "Action" ], "resource": "Resource", "effect": "Effect" } ]}
·Action:替换成要允许或拒绝的操作。
·Resource:替换成要授权的具体资源。
·Effect:替换成允许或拒绝。
TSearch 目前支持除了 DescribeInstances 接口之外的其他操作接口来访问控制管理,你可以将账号下某个集群的更新、重启、删除等操作赋予某个子账号进行管理。
四、自定义权限示例
授予某账号指定集群更新操作权限,策略语法如下:
{ "version": "2.0", "statement": [ { "action": [ "tsearch:Describe*" ], "resource": [ "qcs::tsearch:ap-guangzhou:uin/$uin:instance/$instanceID" ], "effect": "allow" }, { "action": [ "vpc:Describe*", "vpc:Inquiry*", "vpc:Get*" ], "resource": "*", "effect": "allow" }, { "action": [ "monitor:*", "cam:ListUsersForGroup", "cam:ListGroups", "cam:GetGroup" ], "resource": "*", "effect": "allow" }, { "action": [ "tsearch:Update*" ], "resource": [ "qcs::tsearch:ap-guangzhou:uin/$uin:instance/$instanceID" ], "effect": "allow" } ]}