腾讯云裸金属云服务器黑石物理服务器

裸金属云服务器 1年前 (2023-12-11) 浏览 65

概述

黑石物理服务器支持细化到实例级别的权限管理,您可以为人员分配管理特定物理服务器实例的权限;或者属于特定 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_existstring_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折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

- 0人点赞 -

发表点评 (0条)

not found

暂无评论,你要说点什么吗?