企业不同部门或项目之间需要共享数据,本部门允许其他部门的用户下载共享数据,禁止写入和删除数据,以降低共享数据被误删、篡改的风险。
背景信息
部门A将存储在example-bucket存储空间(Bucket)中的数据共享给部门B的用户,并允许部门B的用户下载数据。本文介绍如何以最小权限原则对共享数据进行权限控制。在本场景下两个部门的管理员、用户与共享存储空间之间的逻辑关系如下图所示。
实现流程
在此场景下,A部门的管理员可以通过配置Bucket Policy,授予B部门用户允许下载,但禁止写入和删除共享数据的权限。具体配置流程如下:
A部门管理员创建一个用于共享数据的Bucket(example-bucket)。
A部门管理员通过Bucket Policy,授权本部门用户上传共享数据的权限。
A部门管理员通过配置Bucket Policy,授权B部门用户允许下载、禁止写入和删除的权限。
A部门用户上传数据到example-bucket。
验证B部门用户对共享数据仅拥有下载权限、但无法对共享数据进行写入和删除操作。
前提条件
步骤1:创建Bucket
A部门管理员在华东1(杭州)地域创建Bucket。具体步骤如下:
步骤2:授予上传权限
部门A的管理员为本部门的用户配置允许上传共享数据的权限。具体步骤如下:
单击步骤1中创建的example-bucket。
在左侧导航栏,选择 。
在Bucket 授权策略页面的按图形策略添加页签,单击新增授权。
在新增授权面板,按说明配置以下参数,其他参数保留默认配置。
配置项
说明
授权资源
选择整个Bucket,授权策略对整个Bucket生效。
授权用户
选择子账号。
您可以从下拉菜单中选择部门A管理员账号下允许上传数据的用户账号。如果部门A管理员下的用户账号较多时,您也可以直接在搜索框输入子账号名称,搜索支持模糊匹配。
授权操作
选择简单设置后,单击读/写。
表示被授权用户可以对指定资源执行读取和写入操作。
单击确定。
此时,允许A部门用户上传数据的权限配置完成。
步骤3:授予允许下载、禁止写入和删除的权限
部门A的管理员为部门B的用户配置允许下载共享数据的权限。具体步骤如下:
单击步骤1中创建的example-bucket。
在左侧导航栏,选择 。
在Bucket 授权策略页面的按图形策略添加页签,单击新增授权。
在新增授权面板,按说明配置以下参数,其他参数保留默认配置。
配置项
说明
授权资源
选择整个Bucket,授权策略对整个Bucket生效。
授权用户
选择其他账号:输入被授权下载共享数据B用户的UID。
授权操作
选择简单设置后,单击只读(包括ListObject)操作。
表示对共享资源example-bucket中的数据拥有查看、列举及下载权限,但无法对共享数据执行写入和删除操作。
单击确定。
此时,部门A的管理员为部门B的用户配置授予允许下载、禁止写入和删除的权限已完成。
步骤4:上传数据
A部门用户上传数据到example-bucket。具体步骤如下:
步骤5:验证权限
权限授予成功后,通过OSS控制台验证B部门用户对共享数据仅拥有下载权限、但无法对共享数据进行写入和删除操作。
使用B部门用户账号登录OSS管理控制台。
通过
https://oss.console.aliyun.com/bucket/hangzhou/example-bucket/object
进入文件列表页面。在文件列表页面,验证以下权限。
验证B部门用户对共享数据的下载权限。
单击example-bucket中任意目标文件右侧的
。下载失败,表示下载权限配置失败,请检查权限配置是否正确。
下载成功,表示下载权限配置成功。
验证B部门用户对共享数据的上传权限。
参考步骤4上传文件。
上传失败,表示上传权限配置成功。
上传成功,表示上传权限配置失败,请检查权限配置是否正确。
验证B部门用户对共享数据的删除权限。
单击example-bucket中任意目标文件右侧的
。删除失败,表示删除权限配置成功。
删除成功,表示删除权限配置失败,请检查权限配置是否正确。