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

背景信息

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

policy1

实现流程

在此场景下,A部门的管理员可以通过配置Bucket Policy,授予B部门用户允许下载,但禁止写入和删除共享数据的权限。具体配置流程如下:

前提条件

  • 企业账号已通过访问控制RAM创建A部门管理员用户及其普通用户、B部门管理员用户及其普通用户。

    有关创建RAM用户的详情,请参见创建RAM用户

  • 已获取RAM用户UID。

    有关查看RAM用户基本信息,例如UID等,详情请参见查看RAM用户基本信息

  • 已为RAM用户授权

    在创建管理员用户时,A部门的管理员由于要执行创建Bucket、配置Bucket Policy等操作,因此需要管理员所属用户组具有AliyunOSSFullAccess权限。有关RAM用户授权详情,请参见为RAM用户授权

步骤1:创建Bucket

A部门管理员创建Bucket的具体步骤如下:

  1. 使用A部门管理员账号登录OSS管理控制台
  2. 单击Bucket列表,之后单击创建Bucket
  3. 创建Bucket页面配置Bucket参数。
    结合本示例场景,请将Bucket命名为example-bucket。有关配置Bucket其他各项参数的详情,请参见 创建存储空间
  4. 单击确定

步骤2:授予上传权限

部门A的管理员为本部门的用户配置允许上传共享数据的权限,具体步骤如下:

  1. 单击步骤1中创建的example-bucket。
  2. 单击权限管理 > Bucket授权策略 > 设置
  3. 授权对话框,单击新增授权
  4. 新增授权页面,结合本示例场景配置各项参数说明如下:
    配置项 说明
    授权资源 选择整个Bucket,授权策略对整个Bucket生效。
    授权用户 选择选择子账号

    您可以从下拉菜单中选择部门A管理员账号下允许上传数据的用户账号。若部门A管理员下的用户账号较多时,您也可以直接在搜索框输入子账号名称,搜索支持模糊匹配。

    授权操作 选择读/写

    表示被授权用户可以对指定资源执行读取和写入操作。

  5. 单击确定
    此时,允许A部门用户上传数据的权限配置完成。

步骤3:授予允许下载、禁止写入和删除的权限

部门A的管理员为部门B的用户配置允许下载共享数据的权限。具体步骤如下:

  1. 单击步骤1中创建的example-bucket。
  2. 单击权限管理 > Bucket授权策略 > 设置
  3. 授权对话框,单击新增授权
  4. 新增授权页面,结合本示例场景配置各项参数说明如下:
    配置项 说明
    授权资源 选择整个Bucket,授权策略对整个Bucket生效。
    授权用户 选择其他账号:输入被授权下载共享数据B用户的UID。
    授权操作 选择只读

    表示对共享资源example-bucket中的数据拥有查看、列举及下载权限,但无法对共享数据执行写入和删除操作。

  5. 单击确定
    此时,部门A的管理员为部门B的用户配置授予允许下载、禁止写入和删除的权限已完成。

步骤4:上传数据

A部门用户上传数据到example-bucket。具体步骤如下:

  1. 使用A部门用户账号登录OSS管理控制台
  2. 单击Bucket列表,之后单击目标Bucket(example-bucket)。
  3. 单击文件管理 > 上传文件
  4. 上传文件页面,设置上传文件的参数。
    选择将文件上传至example-bucket当前目录。有关上传文件的ACL、以及文件上传方式的说明请参见 上传文件
  5. 上传任务页面等待任务完成,之后关闭对话框。
    此时,A用户已完成将数据上传至共享Bucket。

步骤5:验证权限

权限授予成功后,通过OSS控制台验证B部门用户对共享数据仅拥有下载权限、但无法对共享数据进行写入和删除操作。

  1. 使用B部门用户账号登录OSS管理控制台
  2. 单击Bucket列表,之后单击目标Bucket(example-bucket)。
  3. 单击文件管理
  4. 验证权限。
    1. 验证B部门用户对共享数据的下载权限。
      单击example-bucket中任意目标文件右侧的 更多 > 下载
      • 下载失败,表示下载权限配置失败,请检查权限配置是否正确。
      • 下载成功,表示下载权限配置成功。
    2. 验证B部门用户对共享数据的上传权限。
      参考 步骤4上传文件。
      • 上传失败,表示上传权限配置成功。
      • 上传成功,表示上传权限配置失败,请检查权限配置是否正确。
    3. 验证B部门用户对共享数据的删除权限。
      单击example-bucket中任意目标文件右侧的 更多 > 删除
      • 删除失败,表示删除权限配置成功。
      • 删除成功,表示删除权限配置失败,请检查权限配置是否正确。