使用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,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
7月前
|
编解码 前端开发 JavaScript
构建高效响应式Web界面:现代前端框架的比较
【4月更文挑战第9天】在移动设备和多样屏幕尺寸盛行的时代,构建能够适应不同视口的响应式Web界面变得至关重要。本文深入探讨了几种流行的前端框架——Bootstrap、Foundation和Tailwind CSS,分析它们在创建响应式设计中的优势与局限。通过对比这些框架的栅格系统、组件库和定制化能力,开发者可以更好地理解如何选择合适的工具来优化前端开发流程,并最终实现高性能、跨平台兼容的用户界面。
416 15
|
7月前
|
弹性计算 运维 安全
访问控制(RAM)|云上程序使用临时凭证的最佳实践
STS临时访问凭证是阿里云提供的一种临时访问权限管理服务,通过STS获取可以自定义时效和访问权限的临时身份凭证,减少长期访问密钥(AccessKey)泄露的风险。本文将为您介绍产品原理,以及具体的使用步骤。
151376 5
|
7月前
|
算法 Java 开发者
Java中的多线程编程:概念、实现与性能优化
【4月更文挑战第9天】在Java编程中,多线程是一种强大的工具,它允许开发者创建并发执行的程序,提高系统的响应性和吞吐量。本文将深入探讨Java多线程的核心概念,包括线程的生命周期、线程同步机制以及线程池的使用。接着,我们将展示如何通过继承Thread类和实现Runnable接口来创建线程,并讨论各自的优缺点。此外,文章还将介绍高级主题,如死锁的预防、避免和检测,以及如何使用并发集合和原子变量来提高多线程程序的性能和安全性。最后,我们将提供一些实用的性能优化技巧,帮助开发者编写出更高效、更稳定的多线程应用程序。
610 17
|
7月前
|
SQL 安全 关系型数据库
【MySQL实战笔记】03.事务隔离:为什么你改了我还看不见?-01
【4月更文挑战第6天】MySQL事务的隔离性确保数据操作的完整性和一致性,ACID原则包括原子性、一致性、隔离性和持久性。事务隔离级别有四种:读未提交、读提交、可重复读和串行化,分别解决并发问题如脏读、不可重复读和幻读。不同隔离级别在效率和安全性间权衡,例如读未提交允许未提交变更可见,而串行化通过锁保证安全但可能降低效率。在不同隔离级别下,事务看到的数据状态会有所变化,例如在可重复读级别,事务始终看到初始数据,而在串行化级别,事务会等待其他事务完成再继续,避免数据冲突。
309 10
|
7月前
|
存储 分布式计算 Hadoop
【Hadoop】Hadoop 概述
【4月更文挑战第8天】【Hadoop】Hadoop 概述
|
安全 数据建模 应用服务中间件
阿里云nginx服务器如何配置ssl证书,让你的网站添加https
现在是https的时代,众多网站、app都用上了https,因为其有安全加密的特性。接下来让我们来了解下如何让你的网站用ssl证书添加https(以nginx服务器为例)。
10753 4
阿里云nginx服务器如何配置ssl证书,让你的网站添加https
|
7月前
|
弹性计算 运维 安全
ecs服务器介绍和理解
【4月更文挑战第7天】ecs介绍
496 20
|
7月前
|
Android开发 开发者
安卓投屏神器 Scrcpy安 报错ERROR: Could not find any ADB device
安卓投屏神器 Scrcpy安 报错ERROR: Could not find any ADB device
362 9
|
XML JSON API
API参考—实例管理—DescribeDBInstances
调用DescribeDBInstances接口查看实例列表详情。
181 0
|
JSON API 开发工具
API参考—实例管理—CreateDBInstance
API参考—实例管理—CreateDBInstance
155 0

热门文章

最新文章