多用户访问控制
介绍
多用户访问控制,主要用于帮助用户管理云账户下资源的访问权限,适用于企业内的不同角色,可以对不同的工作人员赋予使用产品的不同权限,当您的企业存在多用户协同操作资源时,推荐您使用多用户访问控制。
适用于下列使用场景:
- 中大型企业客户:对公司内多个员工授权管理;
- 偏技术型vendor或SAAS的平台商:对代理客户进行资源和权限管理;
- 中小开发者或小企业:添加项目成员或协作者,进行资源管理。
多用户访问控制实现了企业或组织内部不同人员乃至不同部门协同地管理和使用BMR资源的功能。在BMR中,我们将集群和定时任务视为资源。协同工作的方式是主用户需要创建子用户,并为子用户分配访问策略。
下面简单介绍一下访问策略:
我们将访问控制策略分为权限和资源两个维度。其中,权限是指用户可执行的动作,如创建、删除,查看,修改等;资源是指集群或定时任务。权限又被分为粗粒度和细粒度两种,粗粒度权限是指不限定具体的资源的权限,一个粗粒度权限可对应多个细粒度权限;而细粒度权限需要选定某一个或多个资源。被赋予某种策略的子用户将会具有相应资源的相应访问权限。
下面举几个策略的例子:
ACL{ //该策略为对全部资源具有READ粗粒度权限;
"resource": ["*"], //资源
"permission": [ //权限
"READ"
]
};
ACL{ //该策略为对某个集群具有ScaleCluster(扩缩容)细粒度权限;
"resource": ["cluster/ clusterID"], //资源
"permission": [ //权限
" ScaleCluster"
]
}。
说明:
- BMR所有资源均归属于主用户,子用户所创建或删除的资源均计费于主用户之下。
- 未对集群模板做权限控制,对集群模板的操作,子用户与主用户权限相同。
- 每次策略变动将在5分钟后生效。
创建子用户
-
主账号用户登录后在控制台选择“多用户访问控制”进入用户管理页面。
- 在左侧导航栏点击“用户管理”,在“子用户管理列表”页,点击“新建用户”。
- 在弹出的“新建用户”对话框中,完成填写“用户名”和确认,返回“子用户管理列表”区可以查看到刚刚创建的子用户。
配置策略
权限策略有两种类型:系统权限策略 和 自定义权限策略。分别实现BMR的产品级权限和资源级权限控制。
- 系统策略:百度智能云系统为管理资源而预定义的权限集,这类策略可直接为子用户授权,用户只能使用而不能修改。
- 自定义策略:由用户自己创建,更细化的管理资源的权限集,可以针对单个实例配置权限,更加灵活的满足账户对不同用户的差异化权限管理。
系统策略
点击『策略管理』,进入策略管理页面。系统策略为BMR为用户预置的策略,用户无法进行修改,在右侧搜索框输入”bmr”即可看到全部BMR系统策略。
BMR提供以下四个系统策略,权限范围详细如下:
系统策略 | 包含权限 | 描述 |
---|---|---|
BMRListAllStepAccessPolicy | LIST_ALL_STEP | 查看全部BMR作业列表权限 |
BMRUseOnlyAccessPolicy | READ | 仅使用BMR策略包含仅使用BMR的权限 |
BMRCreateAndDeleteOnlyAccessPolicy | "ReadCluster", "ReadExecutionPlan", "CREATE_DELETE" |
仅创建和删除集群和定时任务策略,包含仅创建和删除BMR资源的权限和读取集群与定时任务权限 |
BMROperateOnlyAccessPolicy | "ReadCluster", "ReadExecutionPlan", "OPERATE" |
仅运维BMR策略包含仅运维BMR的权限和读取集群与定时任务权限 |
BMRFullControlAccessPolicy | "FULL_CONTROL" | 完全控制管理BMR策略包含完全控制管理BMR的权限 |
BMRCreateOnlyAccessPolicy | "ReadCluster", "ReadExecutionPlan", "CreateCluster" |
仅创建集群策略,包含仅创建BMR资源的权限和读取集群与定时任务权限 |
BMRDeleteOnlyAccessPolicy | "ReadCluster", "ReadExecutionPlan", "DeleteCluster" |
仅删除集群策略,包含仅删除BMR资源的权限和读取集群与定时任务权限 |
自定义策略
子用户通过点击“创建策略”,填写策略名称并选择服务类型为“MapReduce BMR”添加自定义策略来进行自定义权限添加,自定义策略的添加有配置策略生成器和编辑策略文件两种方式,其中策略生成器中仅可选择细粒度权限,而编辑策略文件中可选粗粒度和细粒度权限,用户可以根据具体的权限设置修改策略内容。
策略生成器
关于策略生成器,我们可以看到集群和定时任务两种资源。资源对应的复选框为相应资源的细粒度权限,选择完权限后,在资源选择中点击不同的region,可以看到region下的资源,选择资源后,点击完成。
说明:集群和定时任务是并列的两种资源,可以在同一个策略中配置两种资源的权限,也可仅配置其中一个。
编辑策略文件
策略文件本质上是一个JSON文件,文件中permission和resource用来定义权限和资源。为方便用户编辑,在permission列表中,默认列出了全部的粗细粒度权限,用户可根据需求对列表中元素进行删减。
注意: 策略文件中的字段项不可增删(如service、region等),且名称不可改变。
策略文件中,全部字段的含义如下:
字段名称 | 数据类型 | 说明 |
---|---|---|
accessControlList | list | 标识访问控制列表(ACL)主体的开始,由一或多组配置项组成。 |
service | string | 该配置项影响的服务组件,BMR固定值为"bce:bmr",不可改动。 |
region | string | 该配置项影响的区域,取值范围为"bj"、"gz"、"su"、”bd”、”hkg”和"∗"等。其中"bj"代表北京region,"gz"代表广州region,"su"代表苏州region,"bd"代表保定region,"hkg"代表香港region,"∗"代表示所有区域。取值需要写在引号内部,标点符号需用英文半角。 |
effect | string | 指定与该条配置项匹配的Request能否执行,取值为"Allow"或"Deny"。"Allow"表示可以执行"Deny"表示拒绝执行。 |
permission | list | 该配置项所包含的权限,取值范围为权限列表中默认列出的元素。 |
resource | list | 该配置项所包含的资源,支持通配符"∗"和具体资源ID。"∗"代表所有的实例,资源ID可以配置多个,取值用半角英文引号包住,取值间用逗号间隔。资源ID的命名方式为:”cluster/集群ID”或者”executionPlan/定时任务对象ID”。 定时任务对象ID可通过策略生成器中的定时任务资源选择中提取。 |
用户授权
在“用户管理->子用户管理列表页”的对应子用户的“操作”列选择“添加权限”,并为用户选择系统权限或自定义策略进行授权。
说明: 如果在不修改已有策略规则的情况下修改某子用户的权限,只能通过删除已有的策略并添加新的策略来实现,不能取消勾选已经添加过的策略权限。
相关服务授权
为使子用户能够正常使用BMR服务,还需要为其授予百度智能云内其他相关服务的权限,相关服务的权限策略及影响范围如下:
相关服务策略名称 | 描述 | 影响范围 |
---|---|---|
FCOrderAccessPolicy | 完全控制订单服务权限 | 查看集群和创建集群 |
VpcFullControlPolicy | 完全控制VPC服务权限 | 创建集群 |
SubnetFullControlPolicy | 完全控制子网服务权限 | 创建集群 |
BosFullAccessPolicy | 完全控制BOS服务权限 | 创建集群时,选择将日志存储在BOS中 |
SecurityGroupFullController | 完全控制安全组服务权限 | 创建集群时,如果可以选中和创建安全组 |
以上策略,均可在系统策略中找到。
子用户登录
主账号完成对子用户的授权后,可以将链接发送给子用户;子用户可以通过IAM用户登录链接登录主账号的管理控制台,根据被授权的策略对主账户资源进行操作和查看。
其他详细操作参考:多用户访问控制。
权限模型
粗粒度权限名称 | 描述 | 对应细粒度权限名称 | 描述 |
---|---|---|---|
READ | 仅使用BMR的权限 | ReadCluster | 读取集群 |
- | - | ReadStep | 查看作业详情 |
- | - | CreateStep | 创建作业 |
- | - | CancelStep | 终止作业 |
- | - | ReadExecutionPlan | 读取定时任务 |
- | - | UpdateExecutionPlan | 更新定时任务包括调整执行策略、添加、删除定时任务上的作业 |
LIST_ALL_STEP | 拉取作业列表 | 无 | - |
CREATE_DELETE | 仅创建和删除BMR资源的权限 | 无 | - |
- | - | CreateCluster | 创建BMR集群 |
- | - | DeleteCluster | 删除BMR集群 |
OPERATE | 仅运维BMR的权限 | RenameCluster | 更改集群名称 |
- | - | ScaleCluster | 变更集群配置,即扩缩容 |
- | - | SwitchExecutionPlan | 启停定时任务 |
FULL_CONTROL | 具有完全控制管理BMR的权限 | 无 | - |
选择一个粗粒度权限策略表示选择了该粗粒度权限对应的全部细粒度权限。从命名中可以看出,粗粒度权限名为全部大写字符,细粒度权限名为驼峰式命名。
说明:
- LIST_ALL_STEP粗粒度权限可访问全部作业列表,包括集群页面下作业列表;
- READ粗粒度权限,或指定集群ID的ReadStep细粒度权限仅可访问集群页面下作业列表,同时该权限可查看作业详情。