使用Tag策略实现文件访问及管理权限实践

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 本文具体阐述了如何借助阿里云资源访问管理(RAM)服务,结合标签功能来实行文件访问及管理权限的细节控制。

需求场景描述

在金融领域,特定公司面临着保障客户隐私文件严格隔离的挑战。由于处理的是高度敏感的客户信息,这些企业必须施行精细且严谨的权限管理体系。为了满足这一严格要求,有些企业开发的面向消费者的应用程序(to C APP)嵌入了基于标签的访问控制结构,以确保只有经过对应标签授权的人员才能够访问到敏感文件,进一步加固了客户隐私的安全防线。市面上已有云存储服务原生支持使用标签来实现精确的访问权限配置,即所谓的基于标签的访问控制(Tag-Based Access Control)。本文具体阐述了如何借助阿里云资源访问管理(RAM)服务,结合标签功能来实行文件访问及管理权限的细节控制。


相关功能介绍

1. OSS Tag功能

OSS支持使用标签对存储空间(Bucket)中的存储桶(Bucket)对象(Object)进行分类,您能够根据业务需求灵活地设置和调整资源的标签,并为Bucket设定访问权限、Object设置生命周期规则及访问权限等。

2. Ossutil介绍

Ossutil 是一个命令行工具,用于管理阿里云OSS(Object Storage Service)服务中的数据。它为用户提供了一个简单、功能强大的方法来操作OSS存储空间(Bucket)和对象(Object),使得能够在不同的操作系统环境中通过命令行与OSS进行交互。

3. RAM Policy介绍

阿里云RAM(Resource Access Management)服务中的策略(Policy)是定义和控制用户(身份)对阿里云资源访问权限的核心工具。策略是一组权限的集合,它明确了可以执行哪些操作,以及允许或拒绝对哪些资源的访问。

解决方案呈现

1. 前置资源准备

  • 已创建Linux系统ECS服务器
  • 已安装ossutil工具并完成配置(需要创建RAM用户,并填入生成获得的AK及SK),具体安装及配置见:osssutil概述
  • 已创建操作bucket并准备好测试文件

2. 操作过程

2.1 增加Tag权限策略

在RAM访问控制控制台选择权限策略功能,新增自定义策略,并将策略添加至已创建的RAM用户。策略规则解释:当用户上传文件到OSS(如需限制访问具体bucket可参考:OSS的RAM Policy的常见实例)时,需要给文件打以下三个tag:group_id=DIRECTSELLING_GROUP、user_id=DIRECTSELL_USER、app_id=simple_buy_service,否则无法上传;当用户进行下载操作时,只能下载带有tag:app_id=simple_buy_service的文件,否则无法下载。

策略代码如下:

{
  "Statement": [
    {
      "Action": [
        "oss:PutObject",
        "oss:PutObjectTagging"
      ],
      "Effect": "Allow",
      "Resource": "acs:oss:*:*:*",
      "Condition": {
        "StringEquals": {
          "oss:RequestObjectTag/group_id": "DIRECTSELLING_GROUP",
          "oss:RequestObjectTag/user_id": "DIRECTSELL_USER",
          "oss:RequestObjectTag/app_id": "simple_buy_service"
        }
      }
    },
    {
      "Action": "oss:GetObject",
      "Effect": "Allow",
      "Resource": "acs:oss:*:*:*",
      "Condition": {
        "StringEquals": {
          "oss:ExistingObjectTag/app_id": "simple_buy_service"
        }
      }
    }
  ],
  "Version": "1"
}


2.2 功能实现验证

2.2.1 上传文件操作

在Linux服务器命令行分别输入以下内容,测试文件是否上传成功,理论上只带有一个或者两个标签的指令会返回上传失败的结果。

ossutil cp testfile.png #上传文件名称 oss://bucketname/desfolder/ #上传至对应路径
--tagging "group_id=DIRECTSELLING_GROUP" #带一个tag上传
ossutil cp testfile.png #上传文件名称 oss://bucketname/desfolder/ --tagging #上传至对应路径
"group_id=DIRECTSELLING_GROUP&user_id=DIRECTSELL_USER" #带两个tag上传
ossutil cp testfile.png #上传文件名称 oss://bucketname/desfolder/ --tagging #上传至对应路径
"group_id=DIRECTSELLING_GROUP&user_id=DIRECTSELL_USER&app_id=simple_buy_service"。#带三个tag上传


2.2.2 下载文件操作

为了验证是否精确给予对应权限,您可以先将上述上传成功文件的标签的value值修改,测试能否禁止其下载,比如:

然后用一下命令测试,理论上下载操作会失败:

ossutil cp oss://bucketname/desfolder/testfile.png #文件路径及名称 abac/ #本地下载路径

将value值修改回原来的值,再重复一次上述指令,理论上下载能成功。


总结

阿里云 RAM服务的Policy策略结合OSS标签功能,能有效实现OSS文件访问及管理权限的细节控制,为客户提供更细粒度的业务的连续性与安全保障。

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
4月前
|
Linux 数据安全/隐私保护
查看权限控制信息,ls -l可以查看列表数据,展现权限细节,1号位表示权限细节,有10个槽位,第一个位置 -表示文件,d文件夹 | 软链接,前3部分表示所属用户权限,中间用户组权限,后部分其他用户权限
查看权限控制信息,ls -l可以查看列表数据,展现权限细节,1号位表示权限细节,有10个槽位,第一个位置 -表示文件,d文件夹 | 软链接,前3部分表示所属用户权限,中间用户组权限,后部分其他用户权限
查看权限控制信息,ls -l可以查看列表数据,展现权限细节,1号位表示权限细节,有10个槽位,第一个位置 -表示文件,d文件夹 | 软链接,前3部分表示所属用户权限,中间用户组权限,后部分其他用户权限
|
UED
路由权限登录后还保留上一个登录角色的权限,刷新一下就好了的解决方案
路由权限登录后还保留上一个登录角色的权限,刷新一下就好了的解决方案
97 0
|
SQL XML 缓存
修改若依的数据权限功能
修改若依的数据权限功能
1153 0
|
弹性计算 安全 关系型数据库
使用管控策略(CP:Allow)实现企业可用产品白名单
作为「资源目录」的核心能力,「管控策略CP:Allow」为企业构建顶层合规方案,帮助企业简单、高效实现“可用产品白名单”管理
407 1
|
数据安全/隐私保护
【TP5.1】用户组权限管理(列表,添加,修改)
【TP5.1】用户组权限管理(列表,添加,修改)
255 0
【TP5.1】用户组权限管理(列表,添加,修改)
|
API
自定义资源粒度RAM权限测试
问题: 1.资源组 和 资源策略里面的资源不是一个概念 2.测试全局的全称策略资源粒度的授权
210 0
自定义资源粒度RAM权限测试
|
分布式计算 DataWorks MaxCompute
MaxCompute中如何通过policy 禁止角色的删除权限
Policy授权则是一种基于主体的授权。通过Policy授权的权限数据(即访问策略)被看做是授权主体的一种子资源。只有当主体(用户或角色)存在时才能进行Policy授权操作。当主体被删除时,通过Policy授权的权限数据会被自动删除。 Policy授权使用MaxCompute自定义的一种访问策略语言来进行授权,允许或禁止主体对项目空间对象的访问权限。Policy授权机制,主要解决ACL授权机制无法解决的一些复杂授权场景。
1089 0
MaxCompute中如何通过policy 禁止角色的删除权限
|
对象存储 数据安全/隐私保护
赋予RAM子用户访问OSS的某个文件夹的权限策略
给子用户赋予bucket下某个目录的访问权限
2141 0
赋予RAM子用户访问OSS的某个文件夹的权限策略

热门文章

最新文章