黑石物理服务器支持细化到实例级别的权限管理,您可以为人员分配管理特定物理服务器实例的权限;或者属于特定 VPC 或者子网的所有物理服务器的管理权限。
预设策略,能帮助您快速授权,而不需要编写策略,但授权粒度会粗些,以下是黑石服务器的两个预设策略,分别为:
预设策略名 | 授权范围描述 |
---|---|
QcloudBMInnerFullAccess | 关联后,获得所有黑石服务器实例的增、删、改、查等操作的权限 |
QcloudBMInnerReadOnlyAccess | 关联后,只能获得查询黑石服务器列表及基本信息的权限 |
以下表格,罗列了在配置黑石服务器的策略时,需要用到的 action、resource、condition。相关概念请参考 访问管理 章节。
注意:部分 API 鉴权时需要两种产品的实例 ID,例如绑定 EIP,分别需要被绑定的黑石服务器以及用于绑定的黑石弹性公网 IP 的实例 ID,这时需要把两种云产品的资源描述都写在 Resource 里。
注意:Describe 或者 Get 指查询操作,例如拉取多个实例详情等,查询操作鉴权通过后可能会把所有实例信息都返回,而无法区别哪些是有权限哪些是没有权限的实例。但再修改、删除实例时,会再次鉴权。
Action | 鉴权参数 | 功能描述 | 条件密钥 |
---|---|---|---|
bm:OfflineDevice | qcs::bm:$region::instance/$instanceId | 退还后付费实例 | bmvpc:unVpcId bmvpc:unSubnetId |
bm:ModifyPayModePre2Post | qcs::bm:$region::instance/$instanceId | 将设备从预付费转换为后付费 | bmvpc:unVpcId bmvpc:unSubnetId |
bm:ModifyDeviceAutoRenewFlag | qcs::bm:$region::instance/$instanceId | 设置物理机服务器自动续费标志 | bmvpc:unVpcId bmvpc:unSubnetId |
bm:GetDeviceDeployProcess | qcs::bm:$region::instance/$instanceId | 机器部署重装进度查询 | bmvpc:unVpcId bmvpc:unSubnetId |
bm:DescribeDevicePrice | qcs::bm:$region::instance/$instanceId | 获取服务器的价格 | bmvpc:unVpcId bmvpc:unSubnetId |
bm:DescribeDevicePartition | qcs::bm:$region::instance/$instanceId | 获取物理机的分区格式 | bmvpc:unVpcId bmvpc:unSubnetId |
bm:GetDeviceOutBandInfo | qcs::bm:$region::instance/$instanceId | 获取设备的带外信息 | bmvpc:unVpcId bmvpc:unSubnetId |
bm:UnbindEip | qcs::bm:$region::instance/$instanceId qcs::bmeip::uin/:eipId/$eipId |
解绑EIP | bmvpc:unVpcId bmvpc:unSubnetId |
bm:BindEip | qcs::bm:$region::instance/$instanceId qcs::bmeip::uin/:eipId/$eipId |
绑定 EIP | bmvpc:unVpcId bmvpc:unSubnetId |
bm:ResetDevicePasswd | qcs::bm:$region::instance/$instanceId | 重置密码 | bmvpc:unVpcId bmvpc:unSubnetId |
bm:ReloadDeviceOs | qcs::bm:$region::instance/$instanceId | 重装操作系统 | bmvpc:unVpcId bmvpc:unSubnetId |
bm:DescribeDeviceOperationLog | qcs::bm:$region::instance/$instanceId | 获取设备的操作日志 | bmvpc:unVpcId bmvpc:unSubnetId |
bm:ModifyDeviceAlias | qcs::bm:$region::instance/$instanceId | 批量修改设备名称 | bmvpc:unVpcId bmvpc:unSubnetId |
bm:StartDevice | qcs::bm:$region::instance/$instanceId | 开机 | bmvpc:unVpcId bmvpc:unSubnetId |
bm:ShutdownDevice | qcs::bm:$region::instance/$instanceId | 关闭服务器 | bmvpc:unVpcId bmvpc:unSubnetId |
bm:RebootDevice | qcs::bm:$region::instance/$instanceId | 重启机器 | bmvpc:unVpcId bmvpc: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,即可做到 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) |
黑石服务器只推荐使用string_equal
以及for_all_value:string_equal_if_exist
:
策略如下:
{
"version": "2.0",
"statement": {
"effect": "allow",
"action": "bm:ModifyDeviceAlias",
"resource": "*",
"condition": {
"string_equal": {
"bmvpc:unVpcId": "vpc-12345"
}
}
}
}
场景:调用 ModifyDeviceAlias 修改 cpm-678910 的别名。
评估逻辑:
本章节,我们举例两个场景的策略内容和评估逻辑,帮助您了解如何实现黑石服务器的权限分配。
策略如下:
{
"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,【是】则鉴权通过。
策略如下:
{
"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 里,【是】则鉴权通过,【否】则鉴权失败。
应某读者要求,分享先从数据分析开始,包含如下章节: 如何培养数据意识 如何制...
华先胜 阿里巴巴集团副总裁 达摩院城市大脑实验室负责人 在深耕视觉识别和搜索领...
操作场景 用户可以在管理控制台修改专属主机的名称。 操作流程 登录管理控制台。...
一、背景 现实业务开发中 通常为了避免超时、对方接口限制等原因需要对支持批量...
服务器租用托管 给互联网带来了发展,这种情况让一些不法者看到了有利可图,使用...
TOP云(zuntop.com)科技浅谈 服务器租用 和托管有哪些区别? 服务器托管 、 服务...
网易云音乐2018年度听歌报告遇见你,真好。 相信有不少人在上周,应该已经看过自...
Caserta公司首席执行官兼首席数据策略师对2020年的数据和分析进行了预测,并对优...
00、BEGIN 提及 体系 二字,我的脑海里浮现出老板说的 对于工作的规划要从全局出...
调查显示,目前采用公有云的受访者人数为92%,高于2017年的89%,而现在采用私有...