文档首页 > > 最佳实践> 企业数据权限控制> 部门/项目之间数据共享

部门/项目之间数据共享

分享
更新时间: 2020/06/16 GMT+08:00

企业不同部门/项目之间需要共享的数据,本部门/项目允许其他部门/项目用户下载共享数据,禁止写删,以降低共享数据被误删、篡改的风险。

本文以部门A共享存储在example-bucket桶中的数据给部门B的用户下载为例,介绍如何以最小权限原则对共享数据进行权限控制。在本场景下两个部门的管理员、用户与共享数据桶之间的逻辑关系如图1所示。

图1 逻辑关系

方案及流程

在此场景下A部门的管理员可以通过桶策略配置允许下载和禁止写删共享数据的权限给B部门的用户,具体配置流程如图2所示。

图2 共享数据权限控制流程

前提条件

A部门和B部门的管理员用户以及普通用户已由账号在IAM中创建。如何创建IAM用户请参见创建IAM用户

在创建管理员用户时,A部门的管理员由于要执行创建桶、配置桶策略等操作,因此需要管理员所属用户组至少拥有对象存储服务的“Tenant Administrator”策略。

详细配置步骤

  1. 创建桶

    1. 使用部门A的管理员用户登录华为云控制台首页。
    2. 在控制台首页选择“所有服务 > 存储 > 对象存储服务”,进入OBS控制台。
    3. 在OBS控制台,单击页面右上角的“创建桶”按钮。
    4. 根据页面提示,选择“区域”、“存储类别”及“桶策略”,并输入“桶名称”。

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

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

  2. 配置允许上传权限

    若部门A用户所属用户组的权限中,对象存储服务的策略为“Tenant Administrator”,请略过此步骤,直接执行 步骤3。若没有配置对象存储服务策略或策略配置为“OBS Buckets Viewer”、“Tenant Guest”或“OBS ReadOnlyAccess”,部门A的管理员则需要先执行以下步骤,为本部门的用户配置允许上传共享数据的权限。
    1. 在OBS控制台,单击存放共享数据的桶名称,进入桶概览页面。
    2. 在左侧导航栏单击“权限”,单击“桶策略”页签。
    3. 单击“高级桶策略”下的“ 创建桶策略”按钮。
    4. 按照表1创建一条高级桶策略。
      表1 允许上传策略参数配置

      参数

      配置

      策略模式

      选择“读写模式”。

      被授权用户

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

      资源

      选择“包含”,并根据共享数据的范围填写资源名称:

      • 若整个桶内的对象都需要共享,资源名称填写*,表示配置到当前桶内的所有对象。
      • 若只需要共享桶中某一个文件夹或某一类对象,资源名称输入待共享的文件夹名称(例如:example-folder/)或带有通配符的对象集(例如:*.doc,表示当前桶中所有以doc结尾的对象)。资源名称可以输入多个,多个资源名称之间以英文逗号(,)分隔。
    5. 单击“确定”,当界面出现类似“创建桶策略成功”的提示时,表示允许A部门用户上传数据的权限配置成功。

  3. 配置允许下载权限

    若部门B用户所属用户组的权限中,对象存储服务的策略为“Tenant Administrator”或“Tenant Guest”,请略过此步骤, 直接执行 步骤2。若没有配置对象存储服务策略或策略配置为“OBS Buckets Viewer”或“OBS ReadOnlyAccess”,部门A的管理员则需要先执行以下步骤,为部门B的用户配置允许下载共享数据的权限。
    1. 在OBS控制台,单击存放共享数据的桶名称,进入桶概览页面。
    2. 在左侧导航栏单击“权限”,单击“桶策略”页签。
    3. 单击“高级桶策略”下的“ 创建桶策略”按钮。
    4. 按照表2创建一条高级桶策略。
      表2 允许下载策略参数配置

      参数

      配置

      策略模式

      选择“自定义模式”。

      效果

      选择“Allow”。

      被授权用户

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

      资源

      选择“包含”,并根据共享数据的范围填写资源名称:

      • 若整个桶内的对象都需要共享,选择“配置到整个桶”。
      • 若只需要共享桶中某一个文件夹或某一类对象,选择“指定资源”,资源名称输入待共享的文件夹名称(例如:example-folder/)或带有通配符的对象集(例如:*.doc,表示当前桶中所有以doc结尾的对象)。资源名称可以输入多个,多个资源名称之间以英文逗号(,)分隔。

      动作

      选择“包含”,并在动作名称处选择“General”下的“Get*”以及“List*”。

    5. 单击“确定”,当界面出现类似“创建桶策略成功”的提示时,表示允许部门B用户下载共享数据的权限配置成功。

  4. 配置禁止写删权限

    1. 在OBS控制台,单击存放共享数据的桶名称,进入桶概览页面。
    2. 在左侧导航栏单击“权限”,单击“桶策略”页签。
    3. 单击“高级桶策略”下的“ 创建桶策略”按钮。
    4. 按照表3创建一条高级桶策略。
      表3 禁止写删策略参数配置

      参数

      配置

      策略模式

      选择“自定义模式”。

      效果

      选择“Deny”。

      被授权用户

      选择“包含”、“当前账号”,并单击下方的下拉框,选择被授权用户。此处需要选择禁止写删数据的部门B的用户。

      资源

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

      • 若整个桶内的对象都需要共享,资源名称填写*,表示配置到当前桶内的所有对象。
      • 若只需要共享桶中某一个文件夹或某一类对象,资源名称输入待共享的文件夹名称(例如:example-folder/)或带有通配符的对象集(例如:*.doc,表示当前桶中所有以doc结尾的对象)。资源名称可以输入多个,多个资源名称之间以英文逗号(,)分隔。

      动作

      选择“包含”,然后单击下方的下拉框,选择“Object”的以下6个动作:

      • PutObject
      • PutObjectAcl
      • PutObjectVersionAcl
      • DeleteObject
      • DeleteObjectVersion
      • AbortMultipartUpload
    5. 单击“确定”,当界面出现类似“创建桶策略成功”的提示时,表示禁止部门B用户写删共享数据的权限配置成功。

  5. 上传数据

    A部门用户可以通过OBS控制台、OBS Browser+以及API&SDK等上传数据。此处以在OBS控制台上的操作为例,介绍如何上传数据。
    1. 使用部门A的用户登录OBS控制台。
    2. 在OBS桶列表页面,单击共享数据桶名称。
    3. 在左侧导航栏单击“对象 > 上传对象”。
    4. 在弹出的“上传对象”窗口,根据页面提示选择“上传方式”、“存储类别”及待上传数据。
    5. 单击“上传”。

      上传进度及结果可以单击页面下方的“任务管理”进行查看。

  6. 验证权限

    权限授予成功后,部门B的用户可以通过OBS控制台、OBS Browser+以及API&SDK等多种方式验证。此处以在OBS控制台上的操作为例,介绍如何验证B部门用户对共享数据的只读权限。
    1. 使用部门B的IAM用户登录OBS控制台。
    2. 在OBS桶列表页面,单击待操作桶的桶名称。
    3. 在左侧导航栏单击“对象”,进入对象列表页面。
    4. 单击任一公共数据所在行的“下载”。
      • 下载失败,表示下载权限配置失败,请检查用户组权限配置是否正确。
      • 下载成功,表示下载权限配置成功,请执行下一步骤。
    5. 单击“上传对象”,选择文件后单击“上传”。
      • 上传成功,表示写删权限配置失败,请检查桶策略配置是否正确。
      • 上传失败,表示写删权限配置成功,执行下一步骤。
    6. 单击任一公共数据所在行的“删除”。
      • 删除成功,表示写删权限配置失败,请检查桶策略配置是否正确。
      • 删除失败,表示写删权限配置成功。

分享:

    相关文档

    相关产品

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

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

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

字符长度不能超过200

提交反馈 取消

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

智能客服提问云社区提问