浅谈云上攻防——对象存储服务访问策略评估机制研究

前言

近些年来,越来越多的IT产业正在向云原生的开发和部署模式转变,这些模式的转变也带来了一些全新的安全挑战。

对象存储作为云原生的一项重要功能,同样面临着一些列安全挑战。但在对象存储所导致的安全问题中,绝大部分是由于用户使用此功能时错误的配置导致的。据统计,由于缺乏经验或人为错误导致的存储桶错误配置所造成的安全问题占所有云安全漏洞的16%。

以2017美国国防部承包商数据泄露为例:此次数据泄露事件是由于Booz Allen Hamilton公司(提供情报与防御顾问服务)在使用亚马逊S3服务器存储政府的敏感数据时,使用了错误的配置,从而导致了政府保密信息可被公开访问。经安全研究人员发现,公开访问的S3存储桶中包含47个文件和文件夹,其中三个文件可供下载,其中包含了大量“绝密”(TOP SECRET)以及“外籍禁阅”(NOFORN)文件。

与此相似的案例有很多,例如Verizon数据泄露事件、道琼斯客户数据泄露事件。如何正确的使用以及配置存储桶,成为了云上安全的一个重要环节。

存储桶的访问控制包含多个级别,而每个级别都有其独特的错误配置风险。在本文中,我们将深入探讨什么是存储桶、什么是存储桶ACL、什么是存储桶Policy以及平台是如何处理访问权限,并对错误配置存储桶权限导致的安全问题进行阐述。通过本文的阅读,可以很好的帮助理解存储桶的鉴权方式以及鉴权流程,避免在开发过程中产生由存储桶错误配置导致的安全问题。

首先,我们来看简单的对对象存储的概念进行了解。

对象存储

对象存储是一种存储海量文件的分布式存储服务,用户可通过网络随时存储和查看数据。对象存储使所有用户都能使用具备高扩展性、低成本、可靠和安全的数据存储服务。

对象存储可以通过控制台、API、SDK 和工具等多样化方式简单、快速地接入,实现了海量数据存储和管理。通过对象存储可以进行任意格式文件的上传、下载和管理。

在了解对象存储之后,我们来梳理下ACL、Policy、存储桶的鉴权方式以及鉴权流程以及使用过程中容易产生的配置错误。

存储桶访问权限(ACL)

访问控制列表(ACL)使用 XML 语言描述,是与资源关联的一个指定被授权者和授予权限的列表,每个存储桶和对象都有与之关联的 ACL,支持向匿名用户或其他主账号授予基本的读写权限。ACL属性见下表:

图片

表格 1 ACL属性表

从控制台上来看,存储桶访问权限分为公共权限与用户权限,见下图:

图片

图 1存储桶访问权限配置项

从上图的选项来看,公共权限和用户权限配置共同组成了存储桶访问权限。公共权限包括私有读写、公有读私有写和公有读写这几个选项可以选择,且为单选:

图片

图 2公共权限选项

用户权限可以通过添加用户进行配置,通过填写账号ID并为其配置数据读取、数据写入、权限读取、权限写入以及完全控制五个选项。

图片

图 3用户权限选项

除完全控制选项,其他几个选项都可以灵活的搭配;而勾选完全控制选项后,则会将前四个选项一同勾选上。控制台中存储桶公共权限以及用户权限可配置项如下:

表格 2存储桶访问权限

但是公共权限与用户权限有什么区别与关联呢?二者又是如何作用于访问控制列表(ACL)呢?

这些问题,单从控制台上功能上来看是并不能完全理解的,我们需要通过修改控制台中不同的公共权限与用户权限组合,对比ACL中内容的变化来分析控制台上这些配置项的真实作用。

首先我们通过在控制台中勾选的选项来测试一下公共权限是如何作用于ACL的。

公共权限

公共权限包括:私有读写、公有读私有写和公有读写,我们将依次测试一下在控制台中勾选后ACL中实际的配置情况。

私有读写

只有该存储桶的创建者及有授权的账号才对该存储桶中的对象有读写权限,其他任何人对该存储桶中的对象都没有读写权限。存储桶访问权限默认为私有读写。

我们将公共权限设置为私有读写,见下图:

图片

图 4设置存储桶私有读写访问权限

通过访问API接口,获取此时存储桶ACL规则:

图片

如上所示,ACL 描述了存储桶拥有者(Owner)为(用户 UIN:10001xxx),且此用户拥有存储桶的完全控制权限(FULL_CONTROL)。

值得注意的是,此处XML中权限配置,并不是因为我们勾选了公共权限配置中的私有读写而来,而是控制台中用户权限里默认配置中当前账号的权限策略,见下图红框处:

图片

图 5默认配置的当前账号权限策略

因此,在公共权限里勾选私有读写,相当于在ACL中不额外写入任何配置内容。

公有读私有写

任何人(包括匿名访问者)都对该存储桶中的对象有读权限,但只有存储桶创建者及有授权的账号才对该存储桶中的对象有写权限。我们将公共权限设置为公有读私有写,见下图:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值