文档首页 > > 最佳实践> 企业数据权限控制> 业务部门之间桶资源隔离

业务部门之间桶资源隔离

分享
更新时间:2020/09/01 GMT+08:00

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

场景假设

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

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

图1 逻辑关系

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

方案及流程

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

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

具体配置流程如图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. 按照表1创建一条高级桶策略。
      图3 允许所有列举操作的桶策略
      表1 允许所有列举操作的桶策略参数说明

      参数

      配置

      策略模式

      选择“自定义模式”。

      效果

      选择“Allow”。

      被授权用户

      选择“包含”、“当前账号”,并单击下方的下拉框,选择被授权用户。此处选择本部门中允许看到该桶的用户。

      资源

      选择“包含”,并选择“配置到整个桶”。

      动作

      选择“包含”,并选择所有列举操作对应的动作名称“List*”。

    7. 单击“确定”,当界面出现类似“创建桶策略成功”的提示时,表示权限配置成功。

  4. 配置上传权限

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

    1. 分别使用部门A、B的管理员用户登录控制台首页。
    2. 在控制台首页选择“所有服务 > 存储 > 对象存储服务”,进入OBS控制台。
    3. 在OBS控制台左侧导航栏选择“对象存储”,在桶列表单击本部门的桶名称,进入桶概览页面。
    4. 在左侧导航栏单击“访问权限控制”,单击“桶策略”页签。
    5. 单击“高级桶策略”下的“创建桶策略”。
    6. 按照表2创建一条高级桶策略。
      图4 允许上传的桶策略
      表2 允许上传的桶策略参数说明

      参数

      配置

      策略模式

      选择“自定义模式”。

      效果

      选择“Allow”。

      被授权用户

      选择“包含”、“当前账号”,并单击下方的下拉框,选择被授权用户。此处选择本部门中允许上传数据的用户。

      资源

      选择“包含”,选择“指定资源”,并根据上传数据的范围填写资源名称:

      • 若允许上传到整个桶的任意位置,资源名称填写“*”。
      • 若只允许上传到桶中的某个或多个文件夹下,资源名称填写可上传的文件夹路径+通配符(例如:example-folder/*),多个资源名称之间以英文逗号(,)分隔。

      动作

      选择“包含”,并选择上传数据对应的动作名称“PutObject”。

    7. 单击“确定”,当界面出现类似“创建桶策略成功”的提示时,表示权限配置成功。

  5. 验证权限

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

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

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

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

    1. 下载OBS Browser+
    2. 获取部门用户的访问密钥(AK/SK)
    3. 添加账号并登录OBS Browser+
      表3 添加新账号参数说明

      参数

      说明

      账号名

      此处的账号名仅用于在OBS Browser+上区别不同的账号,与云服务注册的账号或IAM用户名称无任何关联。

      例如在添加部门A的某个用户时,此处的账号名不需要与其IAM用户名保持一致,可以随意填写。

      OBS Browser+通过Access Key ID和Secret Access Key识别注册的账号或IAM用户。

      服务提供商

      华为对象存储服务(默认)

      Access Key ID

      上一步获取的访问密钥(AK/SK)的AK。

      Secret Access Key

      上一步获取的访问密钥(AK/SK)的SK。

      访问路径

      不填

      记住我的访问密钥

      默认勾选

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

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

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

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

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

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

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

部门管理员权限控制说明

按照上述方法配置后,所有部门管理员会拥有其他部门桶资源的全部权限。如果要拒绝其他部门管理员访问本部门的桶资源,请按照下述步骤配置桶策略。

  1. 使用本部门管理员用户登录控制台首页。
  2. 在控制台首页选择“所有服务 > 存储 > 对象存储服务”,进入OBS控制台。
  3. 在OBS控制台左侧导航栏选择“对象存储”,在桶列表单击本部门的桶名称,进入桶概览页面。
  4. 在左侧导航栏单击“访问权限控制”,单击“桶策略”页签。
  5. 单击“高级桶策略”下的“创建桶策略”。
  6. 按照表4创建一条高级桶策略。

    图6 拒绝其他部门管理员访问桶的桶策略
    表4 拒绝其他部门管理员访问桶的桶策略参数说明

    参数

    配置

    策略模式

    选择“自定义模式”。

    效果

    选择“Deny”。

    被授权用户

    选择“包含”、“当前账号”,并单击下方的下拉框,选择被授权用户。此处选择其他部门的管理员。

    资源

    选择“包含”,并选择“配置到整个桶”。

    动作

    选择“包含”,并选择“*”。

  7. 单击“确定”,当界面出现类似“创建桶策略成功”的提示时,表示权限配置成功。
  8. 再次单击“高级桶策略”下的“创建桶策略”。
  9. 按照表5创建另一条高级桶策略。

    图7 拒绝其他部门管理员访问桶内资源的桶策略
    表5 拒绝其他部门管理员访问桶内资源的桶策略参数说明

    参数

    配置

    策略模式

    选择“自定义模式”。

    效果

    选择“Deny”。

    被授权用户

    选择“包含”、“当前账号”,并单击下方的下拉框,选择被授权用户。此处选择其他部门的管理员。

    资源

    选择“包含”,并选择“指定资源”,“资源名称”填写“*”。

    动作

    选择“包含”,并选择“*”。

  10. 单击“确定”,当界面出现类似“创建桶策略成功”的提示时,表示权限配置成功。

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问