配置BOS多用户访问控制
概述
多用户访问控制,主要用于帮助用户管理云账户下资源的访问权限,适用于企业内的不同角色,可以对不同的工作人员赋予使用产品的不同权限,当您的企业存在多用户协同操作资源时,推荐您使用多用户访问控制。
使用场景
- 中大型企业客户:对公司内多个员工授权管理;
- 偏技术型 vendor 或 SaaS 的平台商:对代理客户进行资源和权限管理;
- 中小开发者或小企业:添加项目成员或协作者,进行资源管理。
创建子用户
- 主账号用户登录后在控制台选择“多用户访问控制”进入用户管理页面。
- 在左侧导航栏点击“用户管理”,在“用户管理 > 子用户”列表页,点击“创建子用户”。
- 在弹出的“创建子用户”对话框中,完成填写“用户名”和确认,返回“子用户管理列表”区可以查看到刚刚创建的子用户。(如果子账号需要上传文件,建议授权“编程访问”,否则上传文件会报错“鉴权失败”)
配置策略
策略类型
BOS 支持系统策略和用户自定义策略两种。
- 系统策略:百度智能云系统为管理资源而预定义的权限集,这类策略可直接为子用户授权,用户只能使用而不能修改。
- 自定义策略:由用户自己创建,更细化的管理资源的权限集,可以针对单个实例配置权限,更加灵活的满足账户对不同用户的差异化权限管理。
系统策略
系统策略包含 BosFullAccess 和 BosListAndReadAccess 两种,权限范围详细如下:
策略名称 | 权限说明 | 权限范围 |
---|---|---|
BosFullAccess | BOS 管理权限 | 管理权限包括 READ、WRITE、LIST对应的API,还包含PutBucketACL, GetBucketACL, PutBucketCors, GetBucketCors, DeleteBucketCors, PutBucketLogging, GetBucketLogging, DeleteBucketLogging。 |
BosListAndReadAccess | BOS 只读权限 | 权限包括 ListObjects, ListMultipartUploads, GetBucketLocation, HeadBucket, GetObject, GetObjectMeta, ListParts 接口。 |
自定义策略
主用户可以通过点击“策略管理>创建策略”添加自定义策略来进行实例级权限控制,自定义策略的添加有"按策略生成器创建"、"按标签创建"和"按策略语法创建"三种方式,用户可以根据具体的权限设置修改策略内容。具体配置方法可以参见创建自定义策略。
策略创建流程
1. 点击创建策略
页面左侧选择"策略管理",在新的页面中点击"创建策略"。
2. 选择创建策略的方式
您可以选择"按策略生成器创建"或者"按标签创建"。若您需要对某个标签下的实例创建策略,请选择按标签创建。若您不需要为标签创建策略,则选择按策略生成方式创建。
3. 填写策略基本信息
在创建策略的页面中,填写需要创建的策略的名称,并在说明中填写该策略的备注信息,如该策略应用的实例,希望赋予的子用户或者策略的使用场景,以免将该策略和其他策略混淆。
4. 填写策略权限配置
填写完策略的基本信息后,您需要填写该策略中包含的使用权限。
- 首先,您需要填写该策略生效的产品服务。若您希望将该策略生效于 BOS 服务,则在服务中选择"对象存储 BOS";
- 选择策略的配置方式。其中,策略生成器方式允许您将系统中已生成的权限配置到该策略中;而策略文件需要您编辑 ACL 权限策略,详细的语法可参考文档策略语法。BOS 策略文件的详细解释请参见策略文件说明;您也可以使用BOS ACL编辑工具获取策略模板及自定义策略内容。
- 若您选择策略生成器方式,您需要进一步该权限对应的效力为允许还是拒绝。若您选择允许,则该策略中选择的权限将允许被授权的用户操作;若您选择拒绝,则该策略中选择的权限将禁止被授权用户操作;
- 选择权限,您需要选择该策略中包含的权限为只读权限还是管理权限。关于两种权限的区别和说明,请查看本页面上方"系统策略"中的说明;
- 您还可以选择该策略针对的资源。在 BOS 服务中,您可以指定该策略能够生效的具体 Bucket。若您不选择,那么将对全部 Bucket 生效;
- 最后,您需要选择该策略在生效时间上的限制条件。您可以指定该策略在某一时刻后或者某一时刻前生效。
用户授权
当您创建完子用户并生成策略后,即可以为该子用户授予该策略。授予后,子用户在访问主用户资源时,将受到授予策略中已配置权限的限制。
在“用户管理->子用户”列表页中希望授权的子用户后“操作”栏中选择“添加权限”,为用户授予已生成的策略。
在授权页面中,选择希望授予该子用户的权限对子用户进行访问权限授权。左侧的策略列表中包括全部系统策略和您已经创建的自定义策略。您可以在搜索框中搜索相关的策略名称后,勾选该策略后点击确认完成授权。
说明:如果在不修改已有策略规则的情况下修改某子用户的权限,只能通过删除已有的策略并添加新的策略来实现,不能取消勾选已经添加过的策略权限。 如果创建子用户时没有勾选“编程访问”,子账号上传文件需要添加 IAMManageAccessKeyPolicy 模板,并创建一个AKSK才可以正常上传文件。
需要说明的是,主子账户中子用户授予权限的优先级低于 BOS 自有 Bucket ACL 鉴权优先级。Bucket ACL 鉴权是根据主用户 UserId 来进行鉴权的。若系统检测到 Bucket ACL 规则中“effect“字段为”Deny”,且"Userid"字段匹配到通配符“*“或子用户所属主账户 UserId 时,那么 BOS 将优先遵循主账号中 Bucket ACL 的权限配置,此时主账号下子账号授予的权限将失效。
Bucket 创建时,Bucket ACL 会包含一条默认规则,表示 Bucket 创建者拥有 FULL_CONTROL 权限。Bucket ACL 设置参考Bucket权限控制
子用户登录
添加完子用户权限后,子用户可以使用以下两种方式使用 BOS 服务。
- 点击子用户名可以查看 IAM 用户详细信息,包括 AKSK 及子用户的权限等。子用户可以使用 AKSK 通过 BOS 的周边工具、SDK、API 来使用BOS服务。
- 将控制台上方的子用户登录链接发送给子用户,子用户可以通过该链接登录控制台。登录后,该子用户将根据被授权的策略对主账户资源进行操作和查看。
相关文档
其他操作请参考多用户访问控制。