腾讯云裸金属云服务器黑石物理服务器
概述
黑石物理服务器支持细化到实例级别的权限管理,您可以为人员分配管理特定物理服务器实例的权限;或者属于特定 VPC 或者子网的所有物理服务器的管理权限。
预设策略
预设策略,能帮助您快速授权,而不需要编写策略,但授权粒度会粗些,以下是黑石服务器的两个预设策略,分别为:
预设策略名 | 授权范围描述 |
QcloudBMInnerFullAccess | 关联后,获得所有黑石服务器实例的增、删、改、查等操作的权限 |
QcloudBMInnerReadOnlyAccess | 关联后,只能获得查询黑石服务器列表及基本信息的权限 |
Action、Resource、Condition 列表
以下表格,罗列了在配置黑石服务器的策略时,需要用到的 action、resource、condition。相关概念请参考 访问管理 章节。Action:即操作,对应的是 API。编写策略时,您可以复制表格里内容并粘贴在 Action 字段中。关联该策略后,即可获得特定 API 的调用权限。Resource:即云资源,当列表中 Action 的鉴权参数不为空时,则表示在调用 API 需要指定云资源,否则不需要指定。编写策略时,您可以复制表格里内容并粘贴在策略生成器的 Resource 字段中,但请记得替换 $region、$instanceId、$eipId 为真实的实例 ID。关联该策略后,即可获得特定资源的操作权限。注意部分 API 鉴权时需要两种产品的实例 ID,例如绑定 EIP,分别需要被绑定的黑石服务器以及用于绑定的黑石弹性公网 IP 的实例 ID,这时需要把两种云产品的资源描述都写在 Resource 里。Condition:即生效条件。换句话说 Action 和 Resource 需要在特定的生效条件下,才能鉴权通过。您可以灵活使用 condition 以做到 VPC 或者 Subnet 粒度的权限管理,例如授权人员管理特定 VPC 内的所有黑石服务器。注意Describe 或者 Get 指查询操作,例如拉取多个实例详情等,查询操作鉴权通过后可能会把所有实例信息都返回,而无法区别哪些是有权限哪些是没有权限的实例。但再修改、删除实例时,会再次鉴权。
Action | 鉴权参数 | 功能描述 | 条件密钥 |
bm:OfflineDevice | qcs::bm:$region::instance/$instanceId | 退还后付费实例 | bmvpc:unVpcIdbmvpc:unSubnetId |
bm:ModifyPayModePre2Post | qcs::bm:$region::instance/$instanceId | 将设备从预付费转换为后付费 | bmvpc:unVpcIdbmvpc:unSubnetId |
bm:ModifyDeviceAutoRenewFlag | qcs::bm:$region::instance/$instanceId | 设置物理机服务器自动续费标志 | bmvpc:unVpcIdbmvpc:unSubnetId |
bm:GetDeviceDeployProcess | qcs::bm:$region::instance/$instanceId | 机器部署重装进度查询 | bmvpc:unVpcIdbmvpc:unSubnetId |
bm:DescribeDevicePrice | qcs::bm:$region::instance/$instanceId | 获取服务器的价格 | bmvpc:unVpcIdbmvpc:unSubnetId |
bm:DescribeDevicePartition | qcs::bm:$region::instance/$instanceId | 获取物理机的分区格式 | bmvpc:unVpcIdbmvpc:unSubnetId |
bm:GetDeviceOutBandInfo | qcs::bm:$region::instance/$instanceId | 获取设备的带外信息 | bmvpc:unVpcIdbmvpc:unSubnetId |
bm:UnbindEip | qcs::bm:$region::instance/$instanceIdqcs::bmeip::uin/:eipId/$eipId | 解绑EIP | bmvpc:unVpcIdbmvpc:unSubnetId |
bm:BindEip | qcs::bm:$region::instance/$instanceIdqcs::bmeip::uin/:eipId/$eipId | 绑定 EIP | bmvpc:unVpcIdbmvpc:unSubnetId |
bm:ResetDevicePasswd | qcs::bm:$region::instance/$instanceId | 重置密码 | bmvpc:unVpcIdbmvpc:unSubnetId |
bm:ReloadDeviceOs | qcs::bm:$region::instance/$instanceId | 重装操作系统 | bmvpc:unVpcIdbmvpc:unSubnetId |
bm:DescribeDeviceOperationLog | qcs::bm:$region::instance/$instanceId | 获取设备的操作日志 | bmvpc:unVpcIdbmvpc:unSubnetId |
bm:ModifyDeviceAlias | qcs::bm:$region::instance/$instanceId | 批量修改设备名称 | bmvpc:unVpcIdbmvpc:unSubnetId |
bm:StartDevice | qcs::bm:$region::instance/$instanceId | 开机 | bmvpc:unVpcIdbmvpc:unSubnetId |
bm:ShutdownDevice | qcs::bm:$region::instance/$instanceId | 关闭服务器 | bmvpc:unVpcIdbmvpc:unSubnetId |
bm:RebootDevice | qcs::bm:$region::instance/$instanceId | 重启机器 | bmvpc:unVpcIdbmvpc:unSubnetId |
bm:DescribeDevice | – | 获取物理服务器列表 | – |
bm:DescribeDeviceWeb | – | 获取黑石物理服务器列表 | – |
bm:DescribeDeviceTrash | – | 获取黑石物理服务器回收站列表 | – |
bm:SetOutBandVPNAuthPwd | – | 设置带外 VPN 认证用户密码 | – |
bm:GetOutBandVPNAuthInfo | – | 获取带外 VPN 认证信息 | – |
bm:BuyDevice | – | 获取设备的带外信息 | – |
bm:RunUserCmd | – | 运行自定义脚本 | – |
bm:GetUserCmdTaskDetail | – | 查任务详细信息 | – |
bm:GetUserCmdTaskDetailList | – | 获取任务详细信息列表 | – |
bm:GetUserCmdTaskList | – | 获取任务列表 | – |
bm:DeleteUserCmd | – | 删除自定义脚本 | – |
bm:GetUserCmd | – | 查自定义脚本内容 | – |
bm:GetUserCmdList | – | 查询自定义脚本列表 | – |
bm:ModifyUserCmd | – | 修改自定义脚本 | – |
bm:AddUserCmd | – | 新建自定义脚本 | – |
Condition(生效条件)
灵活使用 Condition,即可做到 VPC 或者 Subnet 粒度的权限管理,例如授权管理特定 VPC 内的所有黑石服务器。注意 在使用 Condition 时,做到 VPC 或者 Subetnet 粒度的授权,策略的 Resource 字段建议只需填写*
。
书写规范
"condition":{"Option1":{"key1":["value1","value2"]),"key2":["value1","value2"])},"Option2":{"key1":["value1","value2"]),"key2":["value1","value2"])}}
Option 即操作符,理解为传入的鉴权参数和 key 的运算规则。Key 和 Value 是对应的,以下是对应关系。传入的鉴权参数经过运算后应该满足 key 和 value 的要求。
key | value |
bmvpc:unVpcId | vpc-yyyyyy(VPC 的实例 Id) |
bmvpc:unSubnetId | subnet-xxxxx(Subnet 的实例 Id) |
操作符(Option)
黑石服务器只推荐使用string_equal
以及for_all_value:string_equal_if_exist
:string_equal,用于 condition 只有一个 key 和一个 value 的情况,要求传入的鉴权参数满足 key:value,可以做到特定 VPC 或者 subnet 的授权。for_all_value:string_equal_if_exist,用于 condition 有一个 key 多个 value 的情况。 key:value1,value2,可以做到多个 VPC 或者 subnet 的授权。
例子
策略如下:
{ "version": "2.0", "statement": { "effect": "allow", "action": "bm:ModifyDeviceAlias", "resource": "*", "condition": { "string_equal": { "bmvpc:unVpcId": "vpc-12345" } } }}
场景:调用 ModifyDeviceAlias 修改 cpm-678910 的别名。评估逻辑:1. 鉴权逻辑发现关联了 effect:allow 的策略且 action:bm:ModifyDeviceAlias 和 resource:*,即允许修改任一实例的别名。2. 但前提是实例要在 vpc-12345里,鉴权才能通过。
最佳实践
本章节,我们举例两个场景的策略内容和评估逻辑,帮助您了解如何实现黑石服务器的权限分配。场景 1:授权将 eip-34lvo6ir 绑定在 cpm-ftukx3a场景 2:授权重启 vpc-34cxlz7z 内的所有物理服务器
场景 1
策略如下:
{ "version": "2.0", "statement": [{ "effect": "allow", "action": [ "name/bm:BindEip" ], "resource": [ "qcs::bm:::instance/cpm-ftukx3aj", "qcs::bmeip::: eipId / eip - 34 lvo6ir " ] }]}
评估逻辑:
当调用 BindEip 时,CAM 会判断传入的 InstanceId 和 EipId 是否为 cpm-ftukx3aj 和 eip-34lvo6ir,【是】则鉴权通过。
场景 2
策略如下:
{ "version": "2.0", "statement": [{ "effect": "allow", "action": [ "name/bm:RebootDevice" ], "resource": [ "*" ], "condition": { "for_all_value:string_equal_if_exist": { "bmvpc:unVpcId": ["vpc-34cxlz7z", "vpc-34cxlz12"] } } }]}
评估逻辑:
当调用 RebootDevice 时,CAM 对传入的 instanceId 做鉴权,发现满足 resource(*)的要求。
但要求 instanceId在vpc-34cxlz7z 或者 vpc-34cxlz12 里,【是】则鉴权通过,【否】则鉴权失败。
官网1折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠
暂无评论,你要说点什么吗?