万字干货教你如何保证业务数据全流程安全

云布道师

万字干货教你如何保证业务数据全流程安全_第1张图片
引言:本文内容整理自【弹性计算技术公开课——ECS 安全季】中阿里云弹性计算技术专家陈怀可带来的课程《如何保证业务数据的全流程安全》。

数据安全的基本概念

首先,来看一下数据安全的基本概念。

用户的云上数据安全是用户的生命线,也是云上安全整体能力最重要的表现,平台有责任和义务帮助客户保障数据的安全性。
万字干货教你如何保证业务数据全流程安全_第2张图片
数据的安全性,数据安全的要求可以用信息安全基本三要素——机密性、完整性、可用性来概括。机密性是指受保护数据只可以被合法的用户访问,主要实现手段包括数据的访问控制,数据加密和密钥管理手段。完整性是保证只有合法的用户才能够修改数据,主要通过访问控制实现,同时在数据的传输和存储中可以通过校验算法来保证用户数据的完整性。可用性主要体现在数据的容灾备份能上。

访问权限相关的内容,在之前的章节已经做过相关的分享,这里就不过多介绍。本次主要从完整性、可用性、机密性三个维度介绍阿里云是如何实现数据安全的。

数据的完整性上,通过云盘多副本技术实现了 ECS 数据 9 个 9 的可靠性,数据安全擦除机制实现数据擦除的完整性,并且提供了全链路的数据校验 CRC 的功能,以确保数据在传输和存储过程中数据的可靠性需求。数据的可用性上,ECS 在产品基础安全能力上提供了快照、镜像备份恢复能力,同时在架构上支持了多可用区部署架构,保证数据的可用性。数据的机密性上,ECS 对于数据机密性提供了全链路的数据加密保护产品安全能力,包括了存储加密、传输加密以及运行态数据加密计算环境等等。

云平台自身保证数据的完整性

接下来详细了解云平台如何保证自身数据的完整性。
万字干货教你如何保证业务数据全流程安全_第3张图片
ECS 在保证自身数据完整性上做了很多努力,比如云盘在数据传输和数据存储的层面上覆盖了全链路的数据校验功能,在数据写入和读取数据的过程中,有全链路的CRC 校验,确保网络传输数据持久化的过程中数据完整,没有损坏。也会定期对持久化介质中的数据进行 CRC 校验和冗余一致性校验扫描,确保介质中的数据完整,没有损坏。另外,除了数据全链路的 CRC 功能之外,在数据擦除上使用了数据擦除机制,保证数据擦除的完整性。

具体的实现原理是云盘底层基于顺序追加写实现删除云盘逻辑空间的时候,操作元数据记录,逻辑空间读操作的时候,存储系统会返回全部零,从物理磁盘上底层前置永久删除。云盘释放的时候,物理存储空间被释放,再次分配数据是清零过的,并且在首次使用写数据之前,云盘读取全部返回是零。
万字干货教你如何保证业务数据全流程安全_第4张图片
另外,云盘三副本技术通过分布式文件系统为 ECS 提供了稳定、高效、可靠的数据随机访问能力,为 ECS 实例实现了 9 个 9 的数据可靠性保证。当数据节点损坏或者某个数据节点上的部分硬盘发生故障的时候,会自动发起数据复制的同步任务。

具体的实现原理是,数据存储平台中有三类角色,Master、Chunk Server、Client,Client 在收到写请求之后,计算出三个副本存放的数据节点,Client 向三个副本存放的数据节点发出写操作,只有三个节点的数据都写成功的时候才能够返回成功。同时,为了防止一个机架上的故障导致数据不可用,Master 会保证三个副本分布在不同的机架下。不过需要注意的是,云盘三副本技术无法防止数据由于病毒感染、人为误删除、黑客入侵、软故障等原因造成的数据丢失问题。下面来看一个真实的国外安全事件。
万字干货教你如何保证业务数据全流程安全_第5张图片
去年的九月份,斯里兰卡国家政务云被黑了,而且还丢失了四个月的重要数据。

详细来看一下事件的前因后果。斯里兰卡国家政务云使用了一款软件,这款软件已经过时并且不再维护,并且漏洞中存在一个致命的安全漏洞,攻击者通过这个软件漏洞发起了勒索攻击,最终导致了近四个月数据的永久丢失。从这个安全事件中我们可以看出问题,对于关键的业务数据缺失备份计划,导致数据一旦被黑客攻击或者误删除,无法及时的恢复数据。我们该如何避免这一类的问题?在后面的关键业务数据可用性的备份与恢复方案上会给出详细的介绍。

关键业务数据的可用性备份与恢复方案

ECS 在数据的备份与恢复上提供了较为丰富的产品安全能力,以保证用户对数据可用性的诉求。产品安全能力方案包括使用快照备份以恢复数据,使用镜像备份以恢复数据,数据盘分区数据丢失恢复方案,多可用区部署架构实现数据容灾与恢复。

首先来看一下快照备份与恢复。
万字干货教你如何保证业务数据全流程安全_第6张图片
什么是快照,云上快照指的是云盘数据在某个时间的完整拷贝或镜像。阿里云的快照服务是一种无代理的数据备份方式,可以为单个云盘或者云盘组上的数据块创建某一个时刻或者多个时刻的完整拷贝。云盘创建的第一份快照是所有数据快的全量快照,后续创建的快照是增量快照。快照是一种重要的容灾手段,当云盘数据丢失或者异常的时候,可以通过快照将云盘数据完整的恢复到某一个时间点。
万字干货教你如何保证业务数据全流程安全_第7张图片
快照是云盘在某个或者多个时间点的数据备份。快照分为全量快照和增量快照。全量快照和增量快照的元信息中都会存储全量的数据块信息,所以使用任意一个快照回滚云盘的时候,都可以恢复对应时间点之前的所有数据。

快照的创建原理如图所示的第一次创建快照是云盘的全量快照,后续每次创建的快照都是增量快照,不管云盘新增数据还是删除数据,增量快照只记录以最近一次快照对比云盘新增的数据。和创建快照相反的是,删除快照需要根据快照包含数据块以及云盘数据块的引用关系来进行释放。快照的删除原理如图所示,第一份全量快照删除以后,全量快照的属性会顺延到后面的第一个增量快照,同时该全量快照只保留当前有磁盘引用关系的数据。云盘历史已删除的数据不会在最新的全量快照中。
万字干货教你如何保证业务数据全流程安全_第8张图片
快照通常有以下几种使用场景。快照回滚云盘,当云盘它因为误删除、误修改或者因为勒索病毒的原因造成数据丢失的事故的时候,使用云盘的历史快照可以对云盘进行回滚操作,从而使云盘的数据恢复到创建快照的时候的状态。

另外,快照也可以创建新盘,使用快照创建一个新盘,新的云盘的数据块和原来的硬盘完全一样,可以实现硬盘的快速复制,以便于在不同场景中使用。另外,快照还支持拷贝,同地域或者跨地域的复制快照,可以实现同地域或者跨地域的数据备份。

快照共享,将您已经创建好的系统盘或者数据盘的快照,可以共享给其他域名账号或者基于资源目录在企业组织内进行共享。快照创建自定义镜像,即已有的快照创建自定义镜像,可以将一台 ECS 操作系统数据制作成环境副本,再通过自定义镜像创建多台 ECS 实例,快速复制系统环境。

快照也有一些使用限制。快照无法导出,但系统盘创建的快照可以使用快照创建自定义镜像,用户可以导出自定义镜像。不过要注意的是,数据盘快照是无法创建自定义镜像的。另外,历史系统盘快照也不能用于回滚新的系统盘。还有本地盘无法支持创建快照。
万字干货教你如何保证业务数据全流程安全_第9张图片
使用快照备份关键业务数据是非常有意义的。但是通过手工打快照的方式,是很容易造成数据遗漏、不及时等等问题,这时就需要使用自动快照策略。自动快照功能通过自动快照策略实现,自动快照可以在预设的时间点周期性的创建快照,保护系统盘和数据盘的数据。

合理的使用自动快照功能可以提高系统数据安全和操作容错率。自动快照和手动快照的主要区别在于创建方式、快照来源以及快照的命名方式上差别。比如自动快照以auto2.0 开头命名,而手动快照是自定义命名的。自动快照可以通过四种方式进行释放,包括手动释放、随云盘释放、到期自动释放以及超过配额释放。我们强烈建议您使用自动快照策略对关键业务数据的云盘进行定期数据备份,应对因误删除、勒索病毒造成的数据丢失或者应用系统故障,需要时可以快速找回云盘数据,以保证业务的连续性。

除了使用快照备份数据之外,也可以使用镜像。
万字干货教你如何保证业务数据全流程安全_第10张图片
镜像是 ECS 实例的装机盘,为 ECS 实例提供了操作系统初始化的应用数据、预装软件。创建 ECS 实例时必须选择镜像,镜像相当于副本文件,副本文件中可以包含一块或者多块硬盘的所有数据,通过云盘可以是单块系统盘,也可以是系统盘和数据盘的组合。

镜像按照来源去区分,主要是分公共镜像,自定义镜像、共享镜像、云市场镜像、社区镜像这五种,公共镜像是阿里云官方提供的操作系统镜像,都有正版的授权,而且提供了阿里云官方的安全与稳定性测试。自定义镜像,顾名思义就是您自己创建管理的镜像,来源可以通过实例快照创建或者使用 OSS 导入,也可以从本地导入。共享镜像是其他账号共享给的镜像,云市场镜像是阿里云或者第三方 ISV 提供的,镜像中会包含一些预安装的一些软件,社区镜像是任意的阿里云用户在镜像社区发布的公开镜像。
万字干货教你如何保证业务数据全流程安全_第11张图片
自定义镜像可以包括系统盘和数据盘的所有数据,比如实例的配置、操作系统、安装的软件以及全量的数据的备份,所以可以通过自定义镜像对 ECS 实例数据进行备份。需要注意的是,镜像备份只能通过手动触发。镜像备份完成以后,可以使用备份的镜像创建新的 ECS 实例,快速部署相同的操作系统和数据环境的 ECS 实例,以达到数据恢复的效果。

同时,快照和镜像也支持跨地域、跨用户的数据备份效果,使用快照以镜像拷贝能力,可以支持数据的跨定义备份与恢复能力,使用快照和镜像的共享能力,可以支持数据的跨账号备份与恢复能力。

除了使用快照镜像备份恢复数据之外,也支持数据盘分区数据丢失的恢复方案。
万字干货教你如何保证业务数据全流程安全_第12张图片
在处理磁盘相关问题时,您可能会碰到操作系统中数据盘分区丢失的情况。Linux 实例下可以使用 fdisk 等对应的一些工具,有些是 Linux 系统会默认安装的,有些是您可以自己安装。像 fdisk、partprobe 工具主要用于恢复 Linux 系统的磁盘分区和数据,Linux 系统不会默认安装,需要自己安装。

像 Windows 实例可以使用系统自带的磁盘管理以及一些商业化的数据恢复软件。数据盘分区恢复以及数据的恢复是处理数据丢失问题的最后一道防线,但未必能够恢复数据。我们强烈建议您对数据创建快照,可以通过手动或者自动的方式进行备份,以最大程度的保护数据安全。

像使用快照、使用镜像、数据盘分区数据恢复的方案,都是数据在丢失之后事后的恢复方案,也可以通过多可用区部署架构,实现在事中的数据容灾恢复。
万字干货教你如何保证业务数据全流程安全_第13张图片
以同城两个可用区机房部署 ECS 机型为例,ECS 实例通过多可用区部署架构实现应用的高可用性和容错能力。通过在应用前端购买的 SLB 产品部署多台 ECS 服务器,使用弹性伸缩技术,您可以实现 ECS 的容灾恢复。即使其中一台 ECS 服务器故障或者因为资源利用率超负荷,服务器仍可以对外持续提供服务,从而保障业务的连续性和可用性。

负载均衡设备通过多可用区级别的 SLB 做首层流量的接入,当用户请求到达时,负载均衡首先接收流量并且智能的路由到不同的可用区的 ECS 集群中,之后由每个可用区内部署的 ECS 集群来处理负载均衡分配的用户请求,这样可以增加系统的容灾的能力。ECS 集群分布在不同的可用区的机房内,每个 ECS 节点都配置有相同的能力,以确保在单个节点发生故障的时候整体服务不受影响。这些对等的节点共同支撑着数据层的应用和服务器管理的一些功能。

如果某个 ECS 节点出现故障,系统将自动执行热迁移,将受影响节点上的业务无缝迁移到其他健康的 ECS 节点上。这个过程确保业务访问的持续性,且最大化的减少了单点故障或者热迁移过程中可能出现的故障对业务的影响。如果热迁移失败,系统会有事件记录并通知故障。您可以通过系统事件或知故障原因并步入新的 ECS 节点来替换受影响的节点,以此维护服务的正常运行和业务的连续性。通过这种自动化的和监控机制,确保系统的高可用性和业务的稳定性。

数据层可以使用对象的 OSS 存储,在第一级别部署对象的存储 OSS,不同可用器机房的 ECS 节点可以直接访问存储在对象存储的文件,提高数据访问速度和可靠性。另外,数据库应用可以推荐使用支持多可能区服务器部署的。在选择多可用区部署时,主节点支持多可用区的读写操作,可与应用层的数据流量无冲突的操作。同时被节点也会在多个可用区进行部署,并具备多可用区的读能力。这样在主节点发生故障的时候,ECS 节点仍可以从被节点读数据,以确保数据的可用性和业务的连续性。

如何保证数据在存储、传输、计算三大环节的机密性

前面介绍了通过快照、镜像备份、数据盘分区数据恢复方案、多可用区部署架构实现容灾备份的几个方案,实现对数据可用性的保证。除了数据可用性之外,数据安全另外一个至关重要的点是数据的机密性,如何去保证数据的机密性,ECS 在存储、传输以及运行态计算环境在全链路环节上提供了丰富的产品安全能力和方案,以保证用户对数据机密性的诉求。接下来会从以下三个方面进行介绍,数据存储的机密性方案,数据网络传输的机密性方案,数据运行态计算环境的机密性方案。

数据存储的机密性方案,通过以下两个维度详细展开,使用加密云盘、使用KMS自选密钥创建加密云盘。

首先我们来看一下使用加密云盘。
万字干货教你如何保证业务数据全流程安全_第14张图片
什么是加密云盘?云盘加密是指在创建 ECS 实例的时候,或者创建单独的数据盘的时候,用户为云盘勾选加密选项,ECS 采用行业标准的 AES-256 加密算法对云盘进行加密。创建完加密盘后,系统将会从 ECS 实例传输到硬盘的数据在宿主机上的存储进行自动的加密,并且在读取数据的时候自动进行解密。用户对这系列的行为在GuestOS 内数据是否加密是无感的,用户无需自建和维护密钥管理的基础设施,就可以保护数据的隐私性和自主性,为业务数据提供了安全边界。

ECS 使用了对应的阿里云密钥管理服务 KMS 密钥管理。所以使用加密云盘前,用户需要先开通 KMS 密钥管理服务,才能使用 ECS 云盘加密功能,ECS 默认使用服务密钥为用户数据进行加密,也支持用户在 KMS 上自选密钥为用户数据进行加密。
万字干货教你如何保证业务数据全流程安全_第15张图片
云盘加密中,密钥主要分为两层,并通过信封加密的机制实现对数据的加密,第一层为客户的主密钥,第二层为根据主密钥生成的数据密钥。其中,主密钥是对数据密钥进行加解密的操作和保护,数据密钥对真实数据进行加解密操作和保护。

在数据密钥落盘存储时,ECS 将数据密钥明文在写入数据的时候以明文数据一同写入到存储介质中。在读取加密数据时,数据密钥的明文也会一同被读取,并先于数据进行解密。只有在数据密钥被解密之后,加密数据才能够被正常的读取。在信封加密机制中,客户主密钥受阿里云 KMS 提供的密钥管理基础设施的保护,实施强逻辑和物理安全控制,以防止未经授权的访问。

整个信封加密过程中,主密钥的明文不会在 KMS 托管的密码机之外进行存储和使用。同时,数据密钥明文仅会在用户使用的服务实例所在宿主机的内存中进行使用,永远不会以明文形式存储在任何存储介质上。ECS 的云盘加密功能为用户当前使用地域在 KMS 上自动创建一个用户主密钥,也就是服务密钥。服务密钥的生命周期由 ECS 管理,用户可以查询到该密钥,但不能删除,不能禁用,也不能进管理操作。
万字干货教你如何保证业务数据全流程安全_第16张图片
存储加密的常规使用场景包括创建加密的数据盘,随实例创建加密数据盘和系统盘。如右图所示的用户创盘或者创实例时,可以选择加密密钥,也可以直接使用快照或者镜像中自带的密钥创建加密盘。需要注意的是,以快照方式创建数据盘或者创建系统盘的时候,磁盘的类型是约束限制的,并不是所有的云盘类型都支持,用户可以优先选择使用 ESSD 类型云盘。

另外,也支持更换加密系统盘,快照、镜像的加密拷贝,加密快照与镜像的共享,在ECS 全生命周期内都支持加密能力。对于部分高安全合规要求的企业或者客户,针对企业账号下所有子账号可能要求必须要使用加密以保护数据的机密性,可以使用账号云盘默认加密的能力,或者使用 RAM Policy 的策略方案,限制子账号、RAM 角色必须创建加密云盘,账号云盘默认加密的能力目前还在灰度阶段,可以联系产品开启试用。接下来来详细了解一下 RAM Policy 强制创建加密云盘的方案的一些细节。
万字干货教你如何保证业务数据全流程安全_第17张图片
账号配置 RAM Policy 策略,强制子账号或者 RAM 角色创建加密云盘的具体实现原理。首先,用户需要在事前为子账号或 RAM 角色配置 policy 策略。该 policy 策略的逻辑需要明确定义接口的一些行为,如右图所示的 RunInstances、CreateInstance、CreateDisk 接口请求参数中系统盘、数据盘存在非加密云盘时,policy 策略配置返回 deny。配置 RAM Policy 策略以后,用户在 ECS 新购实例以及新购云盘的时候,由 ECS 后台判断当前新购系统盘或者数据盘是否为加密云盘,并把判断结果返回 RAM 平台进行鉴权。

如图所示的会将系统盘、数据盘是否加密的结果返回 RAM 平台进行鉴权。ECS 根据 RAM 平台返回的结果进行判断,若权限通过,允许继续执行,若 RAM 返回权限鉴权失败,终止创建流程。通过配置 RAM Policy 的权限策略可以限制子账号、 RAM 角色创建云盘时必须创建加密云盘,以满足企业的安全合规要求。
万字干货教你如何保证业务数据全流程安全_第18张图片
需要注意的是,加密云盘也存在一些限制。首先,加密行为不可逆,一旦创建为加密云盘,无法转化为非加密云盘。加密属性也是继承的,加密云盘创建的快照、镜像将自动继承云盘的加密属性。加密密钥一旦删除,关联的加密云盘、加密快照、加密镜像都不可恢复,数据无法找回。另外,本地盘目前还不支持加密能力。

到这里可能有一部分同学会有一个疑问,平台怎么证明用户的数据在落盘的时候是加密的?云盘的加密机制中,系统将会从 ECS 实例传输到宿主机的数据在磁盘 IO 上写数据时自动进行加密,并且在读数据时自动进行解密,用户在操作系统内读写数据时,对数据是否加密是无感的,所以会有这个疑问。我们推荐用户在创建加密云盘的时候使用 KMS 自选密钥,创建加密盘成功之后,可以禁用 KMS 自选密钥并重启 ECS 实例,这个时候 ECS 会提示您因为您的加密云盘关联的 KMS 加密密钥失效,导致 ECS 实例无法重启。这时磁盘的数据无法正常的读写,侧面证明了用户数据在落盘的时候是加密的。

可能这里也有同学会问什么是 KMS 自选密钥,接下来我们详细展开了解一下。使用 KMS 自选密钥创建加密云盘。
万字干货教你如何保证业务数据全流程安全_第19张图片
用户首次使用 ECS 创建加密盘时,会为用户在 KMS 创建一个服务密钥,每个用户在每个地域的服务密钥是唯一的,用户无法管理服务密钥的生命周期。服务密钥可以帮助用户获得最基本的数据保护能力。但是对有高安全要求级别的客户,还有可能存在一些密钥管理上的一些短板,例如不能自主管理密钥的生命周期,不能设定自动轮转,保护级别仅仅为软件密钥等等。

因此,用户可以选择自己创建或者上传主密钥到 KMS,并且直接管理自选密钥的生命周期。使用自选密钥,用户可以获得更多的安全能力。用户可以禁用或者启用密钥控制 ECS 加解密数据能力,用户可以配置授权策略控制 ECS 加解密数据能力,用户可以通过 KMS 导入自带的密钥,进一步增强了密钥生命周期管理能力和控制 ECS 数据加解密的能力。

对于 KMS 自选密钥,用户还可以选择将密钥托管在硬件安全模块中,利用硬件机制保护密钥的明文材料不会离开安全边界,密码计算过程也会在硬件中进行,为用户的主密钥提高了更高层次的保护,从而保护用户密钥的机密性。因为用户自选密钥是用户的资产,ECS 必须得到用户的 RAM 角色授权才可以使用数据进行加解密,用户也可以随时取消相应的自选密钥的授权,达到对数据加解密操作的可控。请注意,当选择自选密钥和上述安全能力的时候,也意味着用户需要有更多的考虑己方的责任,管理好密钥的授权以及生命周期。
万字干货教你如何保证业务数据全流程安全_第20张图片
KMS 自选密钥还支持密钥轮转的能力,建议客户开启密钥轮转能力。密钥轮转加强密钥使用的安全性,以提升业务数据的安全性。

密钥轮转有很多优点,减少每一个密钥加密的数据量,降低密码分析的攻击的风险。一个密钥的安全性以它被加密的数据量呈负相关关系。数据量通常是指一个密钥加密的数据总质结束。通过定期轮转密钥,可以使每个密钥具有更小的密码分析攻击面,使加密方案整体具有更高的安全性,提前具备响应安全事件能力。在系统设计和实现时,引入密钥的轮转功能,使密钥轮转作为常规的系统安全管理事务,这样可以使系统在特定安全事件发生的时候具备实际执行能力,减小破坏密钥的时间窗口。

如果在定期轮转密钥的基础上,在旧密钥加密的密文数据用新密钥重新加密。则轮转周期即为一个密钥的一个破解的窗口,这意味着恶意者只能在两次密钥轮转之间完成破解才能拿到数据,对保护数据不受密码分析攻击风险具有很强的实际意义。另外,满足合规要求密钥的周期性轮转功能可以方便企业符合各种合规规范。密钥轮转的实现原理是密钥支持多个密钥版本。

同一个密钥下,多个密钥版本在密码学上互不相关。KMS 通过生成一个新的密钥版本来实现密钥的轮转。密钥创建后,KMS 生成初始密钥版本,并将其设置为主版本,轮转后会生成一个新的密钥版本,并将新的版本设置为主版本。密钥轮转仅新增密钥版本,密钥 ID、密钥 ARN、别名等属性不会改变。KMS 不会删除任何密钥版本,密钥版本紧随密钥的删除而删除。
万字干货教你如何保证业务数据全流程安全_第21张图片
使用 KMS 自选密钥创建加密云盘时也存在一些限制。创建自选密钥时,KMS 加密密钥必须为对称密钥,比如 AES-256、SM4。使用自选密钥的时候,仅对称密钥支持密钥轮转的能力。使用自选密钥的时候,必须授予 ECS 云资源 KMS 加密密钥相关访问权限。KMS 加密密钥必须是有效状态的,禁用、过期、计划、删除等状态无法正常使用,失效状态下密钥关联的加密 ECS 资源无法保证可靠性。

除了数据存储机密性之外,一些是在数据传输机密性上也提供了很多产品安全能力,会从以下三个维度详细展开,使用安全加固模式访问实例元数据,使用 VPN 网关安全访问,使用 HTTPS 访问 ECS 资源。
万字干货教你如何保证业务数据全流程安全_第22张图片
首先来看一下加固模式访问实例元数据。什么是实例元数据,ECS 实例元数据是指在 ECS 内部通过访问元数据服务 Metadata Service 获取实例的属性信息。实例元数据可以用来配置或者管理正在运行的 ECS 实例,ECS 实例的 IP 地址、网卡、Mac 地址、操作系统属性等等都是属于元数据信息。

普通模式访问与加固模式访问有什么区别,在普通模式访问 Metadata Service 查看实例元数据时没有任何身份验证。如果实例或者实例元数据中包含敏感信息,容易在传输链路中遭到窃听或者泄露。如果 ECS 的服务存在 SSRF 漏洞,攻击者可以利用 Metaserver 的数据获取 STS token,导致类似AK泄露的风险。相比于普通模式,加固模式基于token的鉴权访问实例数据对SSRF攻击有更好的防范效果。

加固模式具有三个特点,一是短时效性,访问凭证有效期最短为一秒,最长为六个小时,超过有效期将自动失效,需要进行重新获取,第二是绑定实例,仅适用于一台实例,如果将凭证复制到其他实例中使用,会被拒绝访问。第三是不接受代理访问,请求图中包含X-Forwarded-For 元数据访问服务器信息会拒绝签发访问凭证。因此,强烈建议用户使用加固模式来访问 Metaserver 获取元数据信息。

这里访问 Metaserver 需要分两步,第一步是获取元数据服务访问凭证,可以通过传递参数来设置 token 的访问有效期,例子中为 30 秒钟,超过有效期后需要重新颁发凭证,否则无法获取实例元数据。第二步使用访问凭证获取 ECS 实例元数据。
万字干货教你如何保证业务数据全流程安全_第23张图片
开启加固模式访问 ECS 实例数据的方法也很简单,可以通过 Open API 开启加固模式访问元数据。后续也可以通过控制台开启仅加固模式。对于新创建实例可以通过RunInstances 接口指定 HttpTokens 参数为 required 进行开启,对已有实例也可以 ModifyInstanceMetadataOptions 接口指定 HttpTokens 参数为 required 开启。

不过需要注意的是,使用仅加固模式也存在一些限制,仅加固模式访问实例元数据要求镜像支持 cloud-init 23.2.2 以上版本。当前支持仅加固模式的镜像版本,像 Alma Linux8/9、Centos Stream8/9、Rocky8/9、Debian12、Fedora38 等等。对于不支持镜像版本开启仅加固模式,可能导致 cloud-init 初始阶段初始化内容失败、实例启动失败、修改密码失败等等问题。

除了加固模式访问实例元数据之外,还可以使用 VPN 保证数据传输的机密性。
万字干货教你如何保证业务数据全流程安全_第24张图片
什么是 VPN 网关?VPN 网关可以通过建立加密隧道的方式实现企业本地数据、企业办公网络、互联网客户端,以阿里云专有网络 VPC 之间的一个安全可靠的私网连接。VPN 使用网络密钥交互和 IP 协议层安全结构 IPsec 协议对传输数据进行加密,从合保护数据的安全可信。

VPN 网关主要提供两种网络连接方式,IPsec-VPN 和 SSL-VPN,IPsec-VPN 主要用于本地数据中心和阿里云之间的流量加密,SSL-VPN 主要用于客户端与阿里云之间的流量。它们分别实现的原理是什么。
万字干货教你如何保证业务数据全流程安全_第25张图片
IPsec-VPN 常在本地数据中心与阿里云之间传输,进行加密。它的实现原理是每一个待传输的数据包在传输数据之前都使用 IPsec 协议对数据进行加密、数据认证,确保数据的完整性。数据的加密算法采用了是 AES、DES 等国际行业标准的加密算法,使用 SHA、MD5 等等国际行业标准的哈希函数进行身份认证。也可以选择指定的加密算法以及认证算法。

SSL-VPN 通常是在客户端与阿里云之间进行传输加密的,它的实现原理是通过客户端安装 SSL 证书实现客户端 VPN 网关之间建立。链接通过 SSL 链接传输的流量会使用 SSL 协议加密,最终达到数据加密、身份认证、确保数据完整性的目的。SSL-VPN连接默认支持 AES-128-CBC 加密算法,也可以选择 AES-192-CBC 和 AES-256-CBC 加密算法。

数据传输机密性上,刚刚讲了使用加固模式访问实例元数据、使用 VPN 网关安全访问,另外一个重要的点是使用 HTTPS 访问 ECS 资源。
万字干货教你如何保证业务数据全流程安全_第26张图片
HTTP 协议无法加密数据,数据传输时可能产生泄露、篡改、钓鱼攻击等等问题。使用 HTTPS 协议加密连接可以为您的网站进行安全加锁,保证数据安全传输,同时满足对应 APP 市场或者应用生态安全合规要求。

ECS 控制台使用 HTTPS 进行加密传输,并且支持 HTTPS 的 API 访问点,并提供 256 位密钥的传输加密强度,满足敏感信息加密的传输要求。使用 ECS 会话管理登录实例会使用 SSH 密钥对登录实例,使用云助手对实例进行远程访问均已使用 TLS加密。

您需要负责使用传输层、安全性等加密协议在客户端与 ECS 实例之间传输的敏感信息进行加密。阿里云提供了acs:SecureTransport配置方案,开启配置后,用户只允许通过 HTTPS 访问 ECS。如右图所示的通过配置 RAM  Policy 策略,您可以限制子账号或 RAM 角色只能通过 HTTPS 访问 ECS 资源,我们强烈建议您开启acs:SecureTransport限制子账号只允许 HTTPS 访问,并且建议您使用 TLS1.2 以上版本与 ECS 资源进行通信。
万字干货教你如何保证业务数据全流程安全_第27张图片
阿里云还提供了 SSL 证书服务,由权威机构颁发的可信证书,具备网站身份认证、加密传输双重功能。阿里云的 SSL 证书服务支持包括 SSL 证书的协助部署、SSL 证书部署到阿里云产品以及第三方平台 SSL 证书管理、域名监控、多年期 SSL 证书订阅模式等等功能。

除了数据存储的机密性、数据传输的机密性之外,数据运行态计算环境的机密性也是至关重要的。
万字干货教你如何保证业务数据全流程安全_第28张图片
ECS 计算安全实例通过技术手段,包括硬件加密、隔离、用户审计能力,提供安全可靠的隔离技术环境,并且在这个基础上提供了不同等级的安全保护能力。当前 ECS 的计算安全实例主要提供了默认内存加密的规格实例、可信计算规格的规格实例、机密计算的规格实例这三种。

默认内存加密规格实例,内存加密可以加强内存数据的抗物理攻击能力,进一步提升ECS 数据的安全性。您无需对操作系统以及应用进行任何改动,即可享受更高一级等级的安全防护。

可信计算规格实例,可信实例底层物理服务器搭载可信平台模块 TPM 作为硬件可信跟实现服务器的可信启动确保零篡改,并且在虚拟化层面支持虚拟可信的 vTPM,提供实例可信启动核心组件的校验能力。机密计算能力:通过 CPU 硬件加密及隔离能力,机密计算规格可以通过 CPU 硬件加密及隔离的能力,提供了可信执行环境,保护数据不受未授权第三方的修改。此外,您还可以通过远程证明服务等方式验证云平台实例是否处于预期的安全状态。

机密计算规格实例,主要包括两种安全能力,Enclave 安全能力以及机密虚拟机安全能力。阿里云基于 Intel SGX 2.0 与阿里云的虚拟化业务提供了机密计算能力,这个能力可以将可信根大大减小,降低业务可能受攻击的影响范围,可支持用户打造更高安全等级的一个机密计算环境。机密虚拟机安全能力,机密虚拟机可以在没有任何应用代码更改的情况下,将原有的敏感业务以加密预算的方式运行在云上,可以满足对敏感信息保护的要求。当前阿里云是基于英特尔 TDX、AMD SEV 和海光 CSV 的机密虚拟机能力。
万字干货教你如何保证业务数据全流程安全_第29张图片
可信计算用于实现云租户计算环境的底层高等级安全的主要功能之一,通过在硬件平台上引入可信平台模块 TPM,构建涵盖了系统启动和用户指定应用的信任链,并实现远程证明机制,为用户提供了针对环境启动阶段和运行阶段的全方位可信保证,在系统和应用中加入可信验证,能够减少由于使用未知或遭到篡改的系统软件攻击的可能性。

可信计算实现的原理如右图所示的,可信实例基于硬件的 TPM 可信根,通过 UEFI 安全固件,软件层面实现了虚拟可行平台的 vTPM 远程证明服务实例,实现启动度量和完整性校验,从而保证了实例的安全可信。可信计算为您的 ECS 实例提供了可验证的完整性,以确保实例未受到启动级或内核级恶意软件或 Rootkit 的侵害。
万字干货教你如何保证业务数据全流程安全_第30张图片
除了可信计算规格实例外,我们还提供了丰富的机密计算实力规格,包含 Intel® SGX、Intel® TDX、AMD SEV、海光 CSV 虚拟化技术以及虚拟化 Enclave 技术的安全增强实力规格。

Intel® SGX 与硬件安全保障信息安全,不依赖固件软件的安全动态为用户提供物理级的机密计算环境。SGX 通过新的指令级扩展和访问控制机制,实现 SGX 程序的隔离运行,保证关键代码和数据的机密性与完整性不受恶意软件的破坏。不同于其他安全技术,SGX 的可信根仅包括硬件,避免了基于软件的可信根可能自身存在的安全漏洞的缺陷,极大的提升了系统安全保障能力。

Intel® TDX 是一项基于 CPU 硬件的 ECS 保护技术。TDX 实现的是 CPU 寄存器、内存数据中断处理等经受 CPU 硬件的保护,云厂商和外部攻击无法监控和篡改 TDX实例内的运行状态,包括运行的进程、计算中的敏感数据。

海光安全加密虚拟化 CSV 是一项基于海光国产 CPU 硬件的 ECS 保护技术。CSV 实例的运行状态,如内存数据均受 CPU 硬件的机密保护,云厂商和外部攻击者均无法监控和定向篡改 CSV 实例的内部运行状态,包括运行的进程、计算中的敏感数据。

虚拟化 Enclave 在 ECS 实例内部提供了一个可信的隔离环境,将合法软件的安全操作分装在 Enclave 中,保护您的代码和数据的机密性和完整性,不受恶意攻击者的攻击。虚拟化 Enclave 提供的安全性有多个方面组成,底层基于带有 TPM 芯片的第三代神农架构,且为 EVM 提供了 vTPM 设备带来的增强安全性、可信能力,上层提供了高兼容性的 SDK,方便您快速搭建 Enclave 环境并使用。在可信证明能力方面,您可以对运行的机密计算环境的代码进行验证,例如借助 SDK 机密应用在运行生成证明材料,再通过远程证明服务验证证明材料的有效性。

当主 VM 切分资源给 EVM 边时,并且 EVM 开始运行时,底层会执行资源访问隔离。确保主 VM 无法访问这些已经分出去的为 CPU 和内存资源,保护 EVM 的正常运行和私密性。
万字干货教你如何保证业务数据全流程安全_第31张图片
刚刚提到了远程证明服务,什么是远程证明服务?阿里云远程证明服务是以背调模型为基础,可以验证阿里云安全增强型 ECS 实例的安全状态和可信。具体证明如右图所示的,证明者在 ECS 实例中收集和生成证据。证明者将证据传递给依赖方,依赖方将其直接转发给验证方,验证方将证据与其评估策略进行比较,验证方将证明结果返回给依赖方,依赖方将证明结果与自己的评估策略进行比较。

在验证过程中,证明结果由可信的验证方通过安全性到传递给依赖方,因此安全性较高。在基于背调模型的阿里云远程证明服务设计中,除了支持依赖方中转证据以外,还支持证明服务者直接将证据传递给证明服务,依赖方可以随时向远程证明服务查询特定的实体的证明结果。

这种方式可以大大降低依赖方的负载,并有利于管理员集中管理所有实体的状态。介绍了数据运行态机密计算环境,包括了内存加密、可信计算、机密计算、远程证明服务。如果您对数据运行态机密计算环境的感兴趣,在后续的安全 topic 中,会由我的其他同事进行专项分享。

总结

万字干货教你如何保证业务数据全流程安全_第32张图片
前面从信息安全的三要素完整性、可用性、机密性展开,介绍了很多数据安全的产品、安全能力以及建议。

数据完整性上,介绍了云平台自身如何保证数据的完整性,包括了数据安全擦除机制。数据安全擦除机制中,分布式快速组系统中已删除的数据一定会被完全擦除,保证数据擦除的完整性,数据全链路的 CRC 完整性校验,且会定期对存储介质中的数据进行完整性的扫描,以保证数据全链路的完整性,通过云盘三副本技术实现在部分物理硬件故障时,ECS 实例依旧保持九个九的数据可靠性。

数据可用性上,我们建议客户对关键业务数据备份以恢复以保证数据的可用性。具体方案是使用快照、自动快照策略、主动备份硬盘数据,并利用快照回滚硬盘、快照创建新盘的方式恢复数据,使用自定义镜像对整机数据包括操作系统、预装软件、云盘数据等进行备份,并通过镜像创建新的 ECS 实例以达到恢复数据的目的。使用数据盘分区数据丢失恢复方案,恢复分区以及恢复数据。但是这是处理数据丢失问题的最后一道防线,并不能保证一定能够找回。使用多可能区部署架构与确保在单个节点发生故障时整体服务依旧不受影响,达到容灾恢复的一个效果。

数据机密性上,建议客户数据在存储、传输、计算前链路进行加密,以保证数据的机密性。具体的方案是使用加密云盘以保证数据的隐私性和自主性,为业务数据提供安全边界,使用 KMS 自选密钥实现自主管理密钥的生命周期,密钥自动轮转以及提高密钥保护级别,使用加固模式访问实例元数据,防止被 SSRF 攻击后实例元数据被获取的风险。使用 VPN 网关对企业本地数据中心、企业办公网络、互联网客户端与阿里云的 VPC 之间数据进行加密,保证数据的安全可信。另外,启用 SecureTransport 配置,并使用可信的 HTTPS 协议连接访问的 ECS 资源,保证数据的安全传输。使用基于硬件 TPM/TCM 可信根的可信规格实例,实现实例启动度量和完整性校验,从而保障实例的安全可信,使用基于 CPU 硬件加密及隔离能力的机密计算实例规格,提供可信计算环境,保护数据不受未授权第三方的修改,使用远程服务证明平台的可信度和平台中运行代码的完整性。

数据安全从来不是一个点的安全,需要多维度的纵深安全防御。

以上就是本节课程的全部内容。

你可能感兴趣的:(阿里云)