更新时间:2024-03-04 GMT+08:00

业务部门之间桶资源隔离

按照给业务部门授予独立的资源权限的场景配置,虽然可以实现不同部门用户只能访问本部门的资源,但是每个用户都可以看到企业账号下的所有桶资源,无法做到只能看到自己部门的桶。本节介绍如何通过OBS Browser+添加外部桶的方式实现业务部门之间桶资源隔离。

场景假设

假设某企业下有A和B两个不同的业务部门,希望各业务部门的数据存放在自己的桶中,各业务部门的用户只能看到本部门的桶,且拥有本部门桶的上传权限。

在本场景下两个部门的管理员、用户与桶之间的逻辑关系如图1所示。

图1 逻辑关系

本例中仅为部门用户配置上传权限,您可根据实际业务需求配置其他的权限。关于桶策略的权限说明,请参见桶策略

方案及流程

本场景实施方案的关键点为:

  1. 部门管理员创建的部门最终用户不要在IAM中授予任何OBS访问权限。
  2. 通过桶策略配置仅自己部门的用户拥有部门桶的列举对象和上传对象权限。

具体配置流程如图2所示。

图2 权限控制流程

前提条件

已拥有企业账号。

详细配置步骤

  1. 创建部门管理员和用户

    部门管理员和用户都属于IAM用户,需要使用企业账号创建,部门用户也可以使用部门管理员创建。本例中需要分别为A、B部门创建一个管理员,并根据各部门的实际用户数创建用户。

    由于部门管理员需要执行创建用户、创建桶、配置桶策略等操作,因此需要将部门管理员加入“admin”用户组。部门用户在本例中不需要在IAM授予任何OBS访问权限。有关权限的详细介绍请参见用户权限

    1. 创建部门管理员和部门用户对应的IAM用户。如何创建请参见创建IAM用户
    2. 将部门管理员加入“admin”用户组,部门用户不要加入任何拥有OBS访问权限的用户组。如何加入用户组并授权请参见给IAM用户授权

  2. 创建桶

    部门A、B的管理员用户分别创建属于自己部门的桶。

    1. 分别使用部门A、B的管理员用户登录控制台首页。
    2. 在控制台首页选择“服务列表 > 存储 > 对象存储服务”,进入OBS控制台。
    3. 在OBS控制台左侧导航栏选择“对象存储”,单击页面右上角的“创建桶”按钮。
    4. 根据页面提示,选择“区域”、“桶名称”、“存储类别”及“桶策略”等,详情请参见创建桶

      为确保数据安全,“桶策略”建议选择“私有”,其他参数请根据页面提示进行配置。

    5. 单击“立即创建”,完成桶创建。

  3. 配置列举桶内对象和上传对象的权限。

    部门A、B的管理员用户分别在自己部门的桶中为本部门用户配置权限。

    1. 分别使用部门A、B的管理员用户登录控制台首页。
    2. 在控制台首页选择“服务列表 > 存储 > 对象存储服务”,进入OBS控制台。
    3. 在OBS控制台左侧导航栏选择“对象存储”,在桶列表单击本部门的桶名称,进入桶对象页面。
    4. 在左侧导航栏单击“访问权限控制 > 桶策略”。
    5. 单击“创建”。
    6. 根据使用习惯,策略配置方式以可视化视图为例。单击“可视化视图”。
    7. 配置如下参数,授予列举桶内对象和上传对象的权限。
      表1 授予列举桶内对象和上传对象的权限参数配置

      参数

      说明

      策略名称

      输入自定义策略的名称

      策略内容

      效力

      允许

      被授权用户

      • 被授权用户:当前账号
      • 选择子用户:选择部门中允许看到该桶并上传对象的用户

      授权资源

      • 方式一:
        • 资源范围:整个桶(包括桶内对象)
      • 方式二:
        • 资源范围:当前桶、指定对象
        • 指定对象 - 资源路径:*(*表示桶内所有对象)
          说明:

          如果只允许上传到桶中的某个或多个文件夹下,桶内对象选择“指定对象”后,资源路径填写可上传的文件夹路径+通配符(例如:example-folder/*),支持配置多个资源路径。

      授权操作

      • 动作范围:自定义配置
      • 选择动作:
        • ListBucket(列举桶内对象,获取桶元数据)
        • PutObject(可用作于PUT上传,POST上传,上传段,初始化上传段任务,合并段)
    8. 单击右下角的“创建”,完成桶策略创建。

  4. 验证权限

    权限授予成功后,部门A、B的用户可以通过OBS Browser+验证权限。

    由于部门A、B的用户都只有某个指定桶的访问权限,所以使用这些用户登录OBS控制台会提示没有访问权限,属于正常现象。

    需要使用OBS Browser+,通过挂载外部桶的方式将本部门的桶挂载到OBS Browser+中,进行权限验证以及后续的上传操作。

    在OBS Browser+中验证权限的方法:

    1. 下载OBS Browser+
    2. 使用部门用户以账号方式登录OBS Browser+。

      受上述权限配置的影响,使用部门用户登录OBS Browser+后提示访问受限属于正常现象。

    3. 在左侧菜单栏,单击“外部桶”。
    4. 单击“挂载”,在弹出的“挂载外部桶”对话框中,输入已授权的部门桶名称。
      图3 挂载外部桶
    5. 单击“确定”,挂载成功后会在桶列表中展示。
    6. 在挂载成功的桶中上传文件,验证上传权限。

    验证的关键点如下(以A部门用户进行验证为例):

    1. A部门用户第一次登录OBS Browser+提示访问受限,无法看到任何桶。
    2. A部门用户挂载A部门桶成功。
    3. A部门用户挂载B部门桶失败。
    4. A部门用户在A部门的桶中上传对象成功。

      如果进一步规定了用户仅拥有某个文件夹的上传权限,需同时确保:

      1. 在策略指定的文件夹中上传对象成功。
      2. 在其他文件夹或桶的根目录上传对象失败。
    5. A部门用户在A部门的桶中下载、删除对象失败。

    同时满足以上几点要求,说明权限配置成功。