数据作为企业的血液和命脉,需要妥善的保存。对象存储作为云计算的数据存储底座,并且还在支持数据湖存储能力,它是企业存储数据的理想之地。但是如何安全的存放数据到存储,特别是公共云对象存储,相信不少的的数据负责人都会有很多疑问,本文从账户认证能力、网络安全配置、访问授权方法、数据加密功能、访问日志审计、数据安全机制等纬度总结了13个安全问题,帮助回答企业上云存放数据的安全顾虑。
一、企业上云存放数据的安全顾虑
图-1 企业上云存放数据的安全顾虑
企业数据上云,首先就是做好账户认证,保证账户能够正确的登陆对象存储。在账户认证通过后,要保证网络配置满足要求,实现合理的网络访问,做好隔离。网络配置完成,就是让合理的账户具有合理的权限,此时就是做好授权访问。通过这三步,基本完成企业业务使用方的诉求。
但是企业数据管理人员会要求数据加密,保证数据在拥有密钥的情况下才能被访问。同时,企业安全风险人员会要求开启日志审计,在必要时审核数据是否有泄漏风险。企业管理层会则非常关注数据安全,保证业务高可靠、高可用、合规设计等方面有良好的功能支撑。
二、安全13问
2.1 账户认证:采用什么样的账号登陆?
图-2 对象存储支持的账号体系
企业上云首先关注的就是使用怎样的账号来登陆使用?对于创业公司来说,全部新开张,很容易接受新账号体系;而对于不少公司来说,已经建设了成熟的账号体系。对象存储 OSS 为了支持公共云广泛的服务和应用,支撑了丰富的账号功能:
-
新账号体系 。云服务作为创新业务,引入一套新的云账号体系,包含云账号、子用户、角色等,支撑企业人员灵活访问云资源。为了更好用于开发环境,云服务还提供了 Access Key(AK),软件使用 AK 就可以方便的访问資源,而不需要通过账号密码。
-
資源访问的 AK 机制。由于需要在不同的设备(云服务器、移动设备、IoT 等)访问資源,而对于非可信设备,记录账号的用户名和密码易导致泄漏,因此设计 AK 机制,包含长期 AK、临时 AK(STSToken),每个用户可以生成多个 AK。
-
STS Token 临时 AK 通过 expiration 到期时间控制資源访问时效,提高安全性。长期 AK一旦被盗取即获取长久访问权限,而 STS Token 在到期后要重新申请,所以实现安全加固。
-
-
存量账号体系
-
已有 AD 账号通过 SSO 访问云資源 。为兼容已有账号(企业大量使用的 Active Directory 账号),可以通过 SSO 机制,将已有账号映射为用户 SSO、角色 SSO,从而得到长期 AK、临时 AK。
-
已有 开放 ID 账号通过 OAuth 访问云資源 。为兼容已有 OpenID 账号,例如 WebApp、NativeApp、ServerApp的账号,可以通过 OAuth 机制,通过认证交换 Access Token,从而得到临时 AK。
-
对象存储 OSS 作为海量数据的云資源,全面支持不同的账号认证登陆,软件可采用长期 AK、临时 AK 访问。
2.3 账户认证:账号认证运行环境是否会被盗取?
图-3 账号运行环境的安全
访问云資源的应用运行环境非常复杂,使用临时 AK(STS Token)安全性更高。应用会部署在可信运行环境(独占使用的手机、服务器)和非可信运行环境(部署到第三方运行环境),采用长期 AK,会在 AK 泄漏时出现数据被盗取风险。因此,在非可信运行环境中,推荐采用临时 AK,它需要定期申请 STS Token 才能访问云資源,过期后将重新申请,从而提高安全性。
非可信运行环境即使被攻破,也很难盗取 STS Token。黑客即使攻破服务器的操作系统,但STS Token是在应用程序里面动态获取,黑客需要破解实时运行的应用才能获取,难度非常大。
2.3 网络配置:公网访问能否限制来源地址和协议?
图-4 网络访问地址和协议控制
企业配置完成账号后,首要考虑的就是如何做好网络隔离,限制能够访问資源的地址和协议?对象存储 OSS 提供如下功能:
-
指定数据只能被某些 IP 地址访问,通过 OSS 的 Bucket Policy 限制源地址范围 。不在允许源地址的公网请求,将被拒绝,将数据隔离在允许访问的网络 IP 地址范围内。
-
指定数据只能采用允许的协议访问,通过 OSS 的 Bucket Policy 限制协议类型 。不在允许协议类型的公网请求,将被拒绝,从而应用只能用安全协议(https)来访问,提高网络传输安全性。
2.4 网络配置:云上VPC访问如何防止内鬼转移数据和外部黑客盗取数据?
图-5 网络配置防内鬼和黑客
如图-5(A)所示,企业内鬼可以同时拥有企业的AK和个人AK,从而可以将企业数据读出,然后写入到个人的桶資源。OSS通过和 VPC 配合,提供 VPC Endpoint 限制能访问的OSS桶,可以防止内鬼转移数据。限制某VPC只能访问指定桶,从而内鬼在VPC内无法将数据写入其他桶(内鬼个人的桶) ,通过 VPC Endpoint 的 Policy 设置 OSS bucket 完成。
如图5(B)所示,黑客盗取企业AK后可以在控制机器到去数据。通过 OSS Bucket Policy 限制桶只能被指定VPC访问,可以防止黑客盗取数据。限制企业桶只能被<企业 VPC>访问,黑客即使盗取企业AK,也无法在非企业 VPC 环境盗取数据,关键是配置 OSS Bucket Policy 设置允许访问的 vpc-id。
2.5 访问授权:如何授权其他账号访问数据?
图-6 授权账号访问
网络配置完成,企业面临的普遍问题就是如何让数据被指定部门访问?如何被指定用户访问?这就是典型的访问授权需求,对象存储 OSS 支持访问控制列表(ACL)和 授权策略(Policy)两种授权方式。
-
ACL 包含 Bucket 级和 Object 级,按資源设置权限 。可以设置 ACL 为公共读写、公共读、私有、缺省 4 种类型,在设置为<公共读>则所有人都可以读取数据,设置为<私有>后则要依据权限策略决策哪些账号能访问(提供更多灵活性)。
-
Policy 提供丰富的语义,可控制用户访问資源的路径和具体操作 。RAM Policy、STS Policy、 VPC Endpoint Policy 主要是从用户角度描述权限,典型配置为某个用户 ID 可以访问那些資源,包括多种云服务資源,例如 ECS 计算資源、OSS 存储資源。而 Bucket Policy 主要从資源角度描述权限,典型为 OSS 某个桶可以被那些用户访问,使用哪些 API 来访问。
-
除了ACL和Policy外,还提供防盗链为不同网站(或 IP 地址)的跨域访问设置权限 。通过白名单限制能够跨域访问的来源,实现数据共享。
2.6 访问授权:如何授权匿名用户访问?
图-7 授权匿名用户访问
通常应用都有把数据共享给公众的诉求, 因此如何授权匿名用户访问数据?也是企业的需求,对象存储 OSS 支持如下的匿名用户访问机制。
-
ACL 支持匿名访问设置 。可以设置桶级、对象级的公共读写、公共读,从而任何人都可以直接访问数据。
-
签名URL 。为匿名用户生成签名 URL,并设置过期时间,匿名用户使用该签名URL可访问資源,从而实现指定时间范围内的数据共享。
提供匿名访问能力,可能会带来数据泄漏、攻击植入、费用激增甚至欠费等问题,此时 OSS 提供一键停止公网访问能力,从而实现快速止血。
2.7 访问授权:如何让相同数据支持不同用户、不同权限的访问?
图-8 相同数据授权不同用户不同权限的高级配置
对象存储支持多租户,典型是桶对应 1 个域名,通过 1 个 Bucket Policy 配置文件提供同一数据授权给不同用户不同权限访问。由于只有 1 个配置文件,每次修改某租户权限,运行生效都要加载整个文件,粒度过大。
为了解决该问题,对象存储 OSS 提供 Access Point(AP)实现细粒度用户权限。该功能可以为每个用户创建 AP,配置不同的 AP Policy,修改某用户的 AP Policy,对其他用户无影响。
Policy 都采用相同语法,助力实现灵活的多用户权限。通过操作、資源在一定条件下的权限,可实现丰富的用户权限管理。
2.8 访问授权:如何支持数据湖场景的细粒度授权?
图-9 数据湖场景细粒度权限
构建在对象存储上的数据湖,需要不同的权限支持。对象存储 OSS 在数据湖场景下提供的 OSS-HDFS 对接了 Hadoop 生态的 Ranger,并结合 DLF(Data Lake Formation)实现表级细粒度权限。
-
数据湖模式支持Unix权限和Ranger权限:
-
Unix权限 ,使用 Linux 的 chmod 修改权限。
-
Ranger权限 ,可以使用 Hadoop Ranger路径通配符等高级配置。
-
-
DLF 支持 OSS 的数据湖构建,支持内容的细粒度权限:
-
表级权限 ,可为用户制定具体某表的访问权限。
-
多种表操作权限 ,支持 Describe/Alter/Drop/Select/Update/ALL 权限。
2.9 数据加密:如何避免提供云服务的厂家访问到数据?
图-10 数据加密功能
通过上述安全机制,保证企业人员能够合理使用数据。但是如何保证数据不被云服务厂家访问?这是企业数据管理员普遍关心的问题,加密技术是在拥有密钥的情况下才能访问数据,对象存储 OSS 提供了丰富的加密技术,满足客户需求。
-
客户不信任云厂家,选择客户端加密(CSE),数据上传前就已加密,无需担心云服务厂家访问到数据 。用户在客户端实现加密(按密钥管理方式分为2类:客户自主管理密钥< CSE-C >、客户利用KMS托管密钥< CSE-KMS >),上传到云服务厂家的网络链路、持久化存储都是加密后的数据,加密密文对云厂家来说就是无意义的二进制。
-
客户对云产品信任,可选择服务端加密
-
信任某款云产品,例如信任对象存储 OSS,则可以选择完全托管密钥< SSE-OSS >。保证存储到磁盘的数据被加密,不担心磁盘被盗导致的数据泄漏。
-
信任云上的密钥管理服务 KMS(Key Management Service),统一由云 KMS 托管密钥< SSE-KMS > ,其他云产品与 KMS 交互实现加解密。按照 KMS 密钥管理方式,又分为如下3类。
-
OSS 托管 KMS 密钥 。相比于 SSE-OSS,此方式将密钥保存到统一的 KMS 云服务,从而多云产品可进行统一密钥管理;并且授权 OSS 来管理 KMS,获取密钥进行数据加解密。
-
阿里云提供密钥生成的 BYOK 材料 。使用阿里云的KMS服务,并且生成密钥的 BYOK 也是由阿里云管理。
-
用户提供 BYOK 材料 。使用阿里云的 KMS 服务,但生成密钥的 BYOK 由用户管理,客户销毁 BYOK 材料则密钥不可用。
-
-
2.10 日志审计:如何监控审计数据被访问日志?
图-11 日志监控和审计
作为企业安全风险管理人员,通常都需要通过日志、监控、审计等来查看数据是否有泄漏风险,审核企业人员行为,对象存储如何支持这些需求呢?
-
OSS 提供访问日志持久化存储和实时查询 。访问对象存储 OSS 的过程中会产生大量的访问日志,可以转存到 OSS 自身进行成本优化;同时通过实时查询能力,帮助完成访问统计、异常事件回溯和问题定位等工作。
-
OSS 监控告警(整合“云监控服务”) 。提供系统基本运行状态、性能以及计量等方面的监控数据指标,并提供自定义报警服务,帮助跟踪请求、分析使用情况、统计业务趋势,及时发现以及诊断系统的相关问题。
-
OSS 支持云服务厂家内部操作审计(“Action Trail 操作审计云服务”),客户可审计 OSS 服务内部操作 。操作日志透明化由操作审计(ActionTrail)服务提供平台操作日志(Inner-ActionTrail),它近实时地记录并存储 OSS 平台操作日志(云厂家运维) ,输出查询分析、报表、报警、下游计算对接与投递等能力,满足对平台操作日志相关的分析与审计需求。
2.11 数据安全:如何做到数据安全的数据不丢不错的高可靠?
图-12 数据安全的高可靠
企业负责人通常会关注数据安全的高可靠,确认企业存放数据的云服务是否提供高可靠能力?满足业务长期发展的数据不必不错需求,这是企业的刚需,试想要是广大群众使用的 APP 出现数据丢失,将会造成多大的影响。
-
对象存储 OSS 通过同城冗余提高可靠性 。选择同城冗余,实现 12个9 可靠性(数据持久性),即使在地震、洪水等天灾,开发Bug、运维失误等人祸下,依然保证数据存在。
-
对象存储 OSS 底层通过可靠性防护体系支撑数据不丢不错 。分析硬件故障模式(盘、内存、网络翻转,以及CPU 数据静默错误),软件 Bug&运维错误故障模式,深耕数据备份、冗余技术,尽量减少数据丢错;采用数据防丢错预埋、检测、恢复,从红蓝对抗维度解决出现丢错后的补救措施。
2.12 数据安全:如何做到数据安全的访问高可用?
图-13 数据安全的高可用
除了高可靠外,企业负责人还关心高可用,确认企业存放数据的云服务是否提供7*24业务连续性能力?满足业务正常在线工作是普遍需求,如果某 APP 在扫码消费时10分钟不可用会多产生多大的影响。
-
对象存储 OSS 通过同城冗余,提供更高的可用性 。选择同城冗余,实现 99.99% 可用性,并配置 OSS 高防实现 DDoS 防护。
-
对象存储 OSS底层技术通过分层容错体系支撑数据高可用 。设计网络攻击防御系统、多租户 QoS 流控系统、分布式存储系统容错、DEVOPS 高效开发运维,保障高可能能力。
2.13 数据安全:如何做到全面的数据保护功能?
图-14 数据保护功能
解决了数据安全的高可靠、高可用需求,企业负责人会进一步关注数据保护功能,如何实现数据备份、法规要求等?对象存储 OSS 提供如下的数据保护能力:
-
跨地域复制,保护 Region 发生灾难的场景 。当 Region 所在的城市发生重大灾难,导致该 Region 不可用时,该功能可以保障在另外的 Region 有数据、并提供服务。同时,为了更好的利用跨地域复制两个 Region 的資源,还提供了异地多活功能,可以两个 Region 同时提供服务,提高利用率。
-
版本控制(多版本),保护误删除时的数据恢复 。对象存储 OSS 通过数据的覆盖、删除都是以历史保存方式实现,从而实现了历史版本恢复能力。
-
合规保留,根据法律要求保护要求保留的数据 。对象存储 OSS 通过保留机制,允许客户以“不可删除、不可篡改”方式保存和使用数据。
-
云备份 for OSS,实现基于时间点数据备份的保护 。云备份是对象存储 OSS 之上的产品,通过组合实现了基于某个时间点的数据备份,从而可以恢复到指定时间的数据状态,并且可以提供单个对象的细粒度恢复。
-
敏感数据保护,保护关键数据被曝露 。对象存储 OSS 检查存储内容,及时提醒个人隐私信息,例如密码、密钥、敏感图片等高价值数据可能被泄漏。
三、总结(13个安全问题背后的逻辑梳理,保障安心使用对象存储)
图-15 上云安全背后的逻辑分析
企业数据上云的安全13问,可以归纳为图-15的流程图,通过该流程的梳理,可以帮助企业数据相关人员分析清楚该使用对象存储的对应功能,来满足安全需求。安全梳理完成后,就是相关角色共同数据运行流程中的安全使用。
-
企业上云数据安全涉及多个流程环节 。从数据加密、账号认证、网络配置、授权访问、日志审计、数据安全等维度,进行深入梳理。
-
各流程环节需要不同角色参与完成 。典型覆盖数据关注人员、数据使用人员、审计人员、CXO等角色,共同完成决策和配置执行。