权限管理
如果您需要对OBS资源,为企业中的员工设置不同的用户访问权限,以达到不同员工之间的权限隔离,您可以使用统一身份认证服务(Identity and Access Management,简称IAM)进行精细的权限管理。该服务提供用户身份认证、权限分配、访问控制等功能,可以帮助您安全的控制云服务资源的访问。
通过IAM,您可以在账号中给员工创建IAM用户,并授权控制他们对资源的访问范围。例如您的员工中有负责软件开发的人员,您希望他们拥有OBS的使用权限,但是不希望他们拥有删除OBS资源等高危操作的权限,那么您可以使用IAM为开发人员创建用户,通过授予仅能使用OBS,但是不允许删除OBS资源的权限,控制他们对OBS资源的使用范围。
如果账号已经能满足您的要求,不需要创建独立的IAM用户进行权限管理,您可以跳过本章节,不影响您使用OBS的其它功能。
OBS权限
默认情况下,新建的IAM用户没有任何权限,您需要将其加入用户组,并给用户组授予策略,才能使得用户组中的用户获得策略定义的权限,这一过程称为授权。授权后,用户就可以基于策略对云服务进行操作。IAM系统预置了各服务的常用权限,例如完全控制权限、只读权限,您可以直接使用这些系统策略。
OBS部署时不区分物理区域,为全局级服务。授权时,在全局项目中设置策略,访问OBS时,不需要切换区域。
根据授权精细程度分为角色和策略。
- 角色:IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于各服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。
- 策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。例如:针对OBS服务,管理员能够控制IAM用户仅能对某一个桶资源进行指定的管理操作。多数细粒度策略以API接口为粒度进行权限拆分。
由于缓存的存在,对用户、用户组授予OBS相关的角色和策略后,大概需要等待10~15分钟权限才能生效。
表1为OBS的所有系统权限。
系统角色/策略名称 |
描述 |
类别 |
依赖关系 |
---|---|---|---|
Tenant Administrator |
拥有该权限的用户拥有除IAM外,其他所有服务的所有执行权限。 |
系统角色 |
无 |
Tenant Guest |
拥有该权限的用户拥有除IAM外,其他所有服务的只读权限。 |
系统角色 |
无 |
OBS Administrator |
拥有该权限的用户为OBS管理员,可以对账号下的所有OBS资源执行任意操作。 |
系统策略 |
无 |
OBS ReadOnlyAccess |
拥有该权限的用户可以执行列举桶、获取桶基本信息、获取桶元数据、列举对象(不包含多版本)的操作。 |
系统策略 |
无 |
OBS OperateAccess |
拥有该权限的用户可以执行OBS ReadOnlyAccess的所有操作,在此基础上还可以执行上传对象、下载对象、删除对象、获取对象ACL等对象基本操作。 |
系统策略 |
无 |
用户拥有OBS资源权限后,对应在OBS上可以执行的具体操作如下表所示。
操作名称 |
Tenant Administrator |
Tenant Guest |
OBS Administrator |
OBS ReadOnlyAccess |
OBS OperateAccess |
---|---|---|---|---|---|
列举桶 |
可以 |
可以 |
可以 |
可以 |
可以 |
创建桶 |
可以 |
不可以 |
可以 |
不可以 |
不可以 |
删除桶 |
可以 |
不可以 |
可以 |
不可以 |
不可以 |
获取桶基本信息 |
可以 |
可以 |
可以 |
可以 |
可以 |
管理桶访问权限 |
可以 |
不可以 |
可以 |
不可以 |
不可以 |
管理桶策略 |
可以 |
不可以 |
可以 |
不可以 |
不可以 |
列举对象 |
可以 |
可以 |
可以 |
可以 |
可以 |
列举多版本对象 |
可以 |
可以 |
可以 |
不可以 |
不可以 |
上传文件 |
可以 |
不可以 |
可以 |
不可以 |
可以 |
新建文件夹 |
可以 |
不可以 |
可以 |
不可以 |
可以 |
删除文件 |
可以 |
不可以 |
可以 |
不可以 |
可以 |
删除文件夹 |
可以 |
不可以 |
可以 |
不可以 |
可以 |
下载文件 |
可以 |
可以 |
可以 |
不可以 |
可以 |
删除多版本文件 |
可以 |
不可以 |
可以 |
不可以 |
可以 |
下载多版本文件 |
可以 |
可以 |
可以 |
不可以 |
可以 |
取消删除文件 |
可以 |
不可以 |
可以 |
不可以 |
可以 |
删除碎片 |
可以 |
不可以 |
可以 |
不可以 |
可以 |
管理对象访问权限 |
可以 |
不可以 |
可以 |
不可以 |
不可以 |
设置对象元数据 |
可以 |
不可以 |
可以 |
不可以 |
不可以 |
获取对象元数据 |
可以 |
可以 |
可以 |
不可以 |
可以 |
管理多版本控制 |
可以 |
不可以 |
可以 |
不可以 |
不可以 |
管理日志记录 |
可以 |
不可以 |
可以 |
不可以 |
不可以 |
管理事件通知 |
可以 |
不可以 |
可以 |
不可以 |
不可以 |
管理生命周期规则 |
可以 |
不可以 |
可以 |
不可以 |
不可以 |
管理静态网站托管 |
可以 |
不可以 |
可以 |
不可以 |
不可以 |
管理CORS规则 |
可以 |
不可以 |
可以 |
不可以 |
不可以 |
管理防盗链 |
可以 |
不可以 |
可以 |
不可以 |
不可以 |
域名管理 |
可以 |
不可以 |
可以 |
不可以 |
不可以 |
管理跨区域复制 |
可以 |
不可以 |
可以 |
不可以 |
不可以 |
追加写对象 |
可以 |
不可以 |
可以 |
不可以 |
可以 |
设置对象ACL |
可以 |
不可以 |
可以 |
不可以 |
不可以 |
设置指定版本对象ACL |
可以 |
不可以 |
可以 |
不可以 |
不可以 |
获取对象ACL |
可以 |
可以 |
可以 |
不可以 |
可以 |
获取指定版本对象ACL |
可以 |
可以 |
可以 |
不可以 |
可以 |
多段上传 |
可以 |
不可以 |
可以 |
不可以 |
可以 |
列举已上传段 |
可以 |
可以 |
可以 |
不可以 |
可以 |
取消多段上传任务 |
可以 |
不可以 |
可以 |
不可以 |
可以 |