ECS技术专家教你如何保证业务数据全流程安全

简介: 本文内容整理自【弹性计算技术公开课——ECS安全季】中阿里云弹性计算技术专家陈怀可带来的课程《如何保证业务数据的全流程安全》。


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



一、数据安全的基本概念


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


用户的云上数据安全是用户的生命线,也是云上安全整体能力最重要的表现,平台有责任和义务帮助客户保障数据的安全性。



数据的安全性,数据安全的要求可以用信息安全基本三要素——机密性、完整性、可用性来概括。机密性是指受保护数据只可以被合法的用户访问,主要实现手段包括数据的访问控制,数据加密和密钥管理手段。完整性是保证只有合法的用户才能够修改数据,主要通过访问控制实现,同时在数据的传输和存储中可以通过校验算法来保证用户数据的完整性。可用性主要体现在数据的容灾备份能上。


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


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


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


接下来详细了解云平台如何保证自身数据的完整性。



ECS在保证自身数据完整性上做了很多努力,比如云盘在数据传输和数据存储的层面上覆盖了全链路的数据校验功能,在数据写入和读取数据的过程中,有全链路的CRC校验,确保网络传输数据持久化的过程中数据完整,没有损坏。也会定期对持久化介质中的数据进行CRC校验和冗余一致性校验扫描,确保介质中的数据完整,没有损坏。另外,除了数据全链路的CRC功能之外,在数据擦除上使用了数据擦除机制,保证数据擦除的完整性。


具体的实现原理是云盘底层基于顺序追加写实现删除云盘逻辑空间的时候,操作元数据记录,逻辑空间读操作的时候,存储系统会返回全部零,从物理磁盘上底层前置永久删除。云盘释放的时候,物理存储空间被释放,再次分配数据是清零过的,并且在首次使用写数据之前,云盘读取全部返回是零。



另外,云盘三副本技术通过分布式文件系统为ECS提供了稳定、高效、可靠的数据随机访问能力,为ECS实例实现了9个9的数据可靠性保证。当数据节点损坏或者某个数据节点上的部分硬盘发生故障的时候,会自动发起数据复制的同步任务。


具体的实现原理是,数据存储平台中有三类角色,Master、Chunk Server、Client,Client在收到写请求之后,计算出三个副本存放的数据节点,Client向三个副本存放的数据节点发出写操作,只有三个节点的数据都写成功的时候才能够返回成功。同时,为了防止一个机架上的故障导致数据不可用,Master会保证三个副本分布在不同的机架下。不过需要注意的是,云盘三副本技术无法防止数据由于病毒感染、人为误删除、黑客入侵、软故障等原因造成的数据丢失问题。下面来看一个真实的国外安全事件。



去年的九月份,斯里兰卡国家政务云被黑了,而且还丢失了四个月的重要数据。


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


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


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


首先来看一下快照备份与恢复。



什么是快照,云上快照指的是云盘数据在某个时间的完整拷贝或镜像。阿里云的快照服务是一种无代理的数据备份方式,可以为单个云盘或者云盘组上的数据块创建某一个时刻或者多个时刻的完整拷贝。云盘创建的第一份快照是所有数据快的全量快照,后续创建的快照是增量快照。快照是一种重要的容灾手段,当云盘数据丢失或者异常的时候,可以通过快照将云盘数据完整的恢复到某一个时间点。



快照是云盘在某个或者多个时间点的数据备份。快照分为全量快照和增量快照。全量快照和增量快照的元信息中都会存储全量的数据块信息,所以使用任意一个快照回滚云盘的时候,都可以恢复对应时间点之前的所有数据。


快照的创建原理如图所示的第一次创建快照是云盘的全量快照,后续每次创建的快照都是增量快照,不管云盘新增数据还是删除数据,增量快照只记录以最近一次快照对比云盘新增的数据。和创建快照相反的是,删除快照需要根据快照包含数据块以及云盘数据块的引用关系来进行释放。快照的删除原理如图所示,第一份全量快照删除以后,全量快照的属性会顺延到后面的第一个增量快照,同时该全量快照只保留当前有磁盘引用关系的数据。云盘历史已删除的数据不会在最新的全量快照中。



快照通常有以下几种使用场景。快照回滚云盘,当云盘它因为误删除、误修改或者因为勒索病毒的原因造成数据丢失的事故的时候,使用云盘的历史快照可以对云盘进行回滚操作,从而使云盘的数据恢复到创建快照的时候的状态。


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


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


快照也有一些使用限制。快照无法导出,但系统盘创建的快照可以使用快照创建自定义镜像,用户可以导出自定义镜像。不过要注意的是,数据盘快照是无法创建自定义镜像的。另外,历史系统盘快照也不能用于回滚新的系统盘。还有本地盘无法支持创建快照。



使用快照备份关键业务数据是非常有意义的。但是通过手工打快照的方式,是很容易造成数据遗漏、不及时等等问题,这时就需要使用自动快照策略。自动快照功能通过自动快照策略实现,自动快照可以在预设的时间点周期性的创建快照,保护系统盘和数据盘的数据。


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


除了使用快照备份数据之外,也可以使用镜像。



镜像是ECS实例的装机盘,为ECS实例提供了操作系统初始化的应用数据、预装软件。创建ECS实例时必须选择镜像,镜像相当于副本文件,副本文件中可以包含一块或者多块硬盘的所有数据,通过云盘可以是单块系统盘,也可以是系统盘和数据盘的组合。


镜像按照来源去区分,主要是分公共镜像,自定义镜像、共享镜像、云市场镜像、社区镜像这五种,公共镜像是阿里云官方提供的操作系统镜像,都有正版的授权,而且提供了阿里云官方的安全与稳定性测试。自定义镜像,顾名思义就是您自己创建管理的镜像,来源可以通过实例快照创建或者使用OSS导入,也可以从本地导入。共享镜像是其他账号共享给的镜像,云市场镜像是阿里云或者第三方ISV提供的,镜像中会包含一些预安装的一些软件,社区镜像是任意的阿里云用户在镜像社区发布的公开镜像。



自定义镜像可以包括系统盘和数据盘的所有数据,比如实例的配置、操作系统、安装的软件以及全量的数据的备份,所以可以通过自定义镜像对ECS实例数据进行备份。需要注意的是,镜像备份只能通过手动触发。镜像备份完成以后,可以使用备份的镜像创建新的ECS实例,快速部署相同的操作系统和数据环境的ECS实例,以达到数据恢复的效果。


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


除了使用快照镜像备份恢复数据之外,也支持数据盘分区数据丢失的恢复方案。



在处理磁盘相关问题时,您可能会碰到操作系统中数据盘分区丢失的情况。Linux实例下可以使用fdisk等对应的一些工具,有些是Linux系统会默认安装的,有些是您可以自己安装。像fdisk、partprobe工具主要用于恢复Linux系统的磁盘分区和数据,Linux系统不会默认安装,需要自己安装。


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


像使用快照、使用镜像、数据盘分区数据恢复的方案,都是数据在丢失之后事后的恢复方案,也可以通过多可用区部署架构,实现在事中的数据容灾恢复。



以同城两个可用区机房部署ECS机型为例,ECS实例通过多可用区部署架构实现应用的高可用性和容错能力。通过在应用前端购买的SLB产品部署多台ECS服务器,使用弹性伸缩技术,您可以实现ECS的容灾恢复。即使其中一台ECS服务器故障或者因为资源利用率超负荷,服务器仍可以对外持续提供服务,从而保障业务的连续性和可用性。


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


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


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


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


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


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



首先我们来看一下使用加密云盘。



什么是加密云盘?云盘加密是指在创建ECS实例的时候,或者创建单独的数据盘的时候,用户为云盘勾选加密选项,ECS采用行业标准的AES-256加密算法对云盘进行加密。创建完加密盘后,系统将会从ECS实例传输到硬盘的数据在宿主机上的存储进行自动的加密,并且在读取数据的时候自动进行解密。用户对这系列的行为在GuestOS内数据是否加密是无感的,用户无需自建和维护密钥管理的基础设施,就可以保护数据的隐私性和自主性,为业务数据提供了安全边界。


ECS使用了对应的阿里云密钥管理服务KMS密钥管理。所以使用加密云盘前,用户需要先开通KMS密钥管理服务,才能使用ECS云盘加密功能,ECS默认使用服务密钥为用户数据进行加密,也支持用户在KMS上自选密钥为用户数据进行加密。



云盘加密中,密钥主要分为两层,并通过信封加密的机制实现对数据的加密,第一层为客户的主密钥,第二层为根据主密钥生成的数据密钥。其中,主密钥是对数据密钥进行加解密的操作和保护,数据密钥对真实数据进行加解密操作和保护。


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


整个信封加密过程中,主密钥的明文不会在KMS托管的密码机之外进行存储和使用。同时,数据密钥明文仅会在用户使用的服务实例所在宿主机的内存中进行使用,永远不会以明文形式存储在任何存储介质上。ECS的云盘加密功能为用户当前使用地域在KMS上自动创建一个用户主密钥,也就是服务密钥。服务密钥的生命周期由ECS管理,用户可以查询到该密钥,但不能删除,不能禁用,也不能进管理操作。



存储加密的常规使用场景包括创建加密的数据盘,随实例创建加密数据盘和系统盘。如右图所示的用户创盘或者创实例时,可以选择加密密钥,也可以直接使用快照或者镜像中自带的密钥创建加密盘。需要注意的是,以快照方式创建数据盘或者创建系统盘的时候,磁盘的类型是约束限制的,并不是所有的云盘类型都支持,用户可以优先选择使用ESSD类型云盘。


另外,也支持更换加密系统盘,快照、镜像的加密拷贝,加密快照与镜像的共享,在ECS全生命周期内都支持加密能力。对于部分高安全合规要求的企业或者客户,针对企业账号下所有子账号可能要求必须要使用加密以保护数据的机密性,可以使用账号云盘默认加密的能力,或者使用RAM Policy的策略方案,限制子账号、RAM角色必须创建加密云盘,账号云盘默认加密的能力目前还在灰度阶段,可以联系产品开启试用。接下来来详细了解一下RAM Policy强制创建加密云盘的方案的一些细节。



账号配置RAM Policy策略,强制子账号或者RAM角色创建加密云盘的具体实现原理。首先,用户需要在事前为子账号或RAM角色配置policy策略。该policy策略的逻辑需要明确定义接口的一些行为,如右图所示的RunInstances、CreateInstance、CreateDisk接口请求参数中系统盘、数据盘存在非加密云盘时,policy策略配置返回deny。配置RAM Policy策略以后,用户在ECS新购实例以及新购云盘的时候,由ECS后台判断当前新购系统盘或者数据盘是否为加密云盘,并把判断结果返回RAM平台进行鉴权。


如图所示的会将系统盘、数据盘是否加密的结果返回RAM平台进行鉴权。ECS根据RAM平台返回的结果进行判断,若权限通过,允许继续执行,若RAM返回权限鉴权失败,终止创建流程。通过配置RAM Policy的权限策略可以限制子账号、RAM角色创建云盘时必须创建加密云盘,以满足企业的安全合规要求。



需要注意的是,加密云盘也存在一些限制。首先,加密行为不可逆,一旦创建为加密云盘,无法转化为非加密云盘。加密属性也是继承的,加密云盘创建的快照、镜像将自动继承云盘的加密属性。加密密钥一旦删除,关联的加密云盘、加密快照、加密镜像都不可恢复,数据无法找回。另外,本地盘目前还不支持加密能力。


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


可能这里也有同学会问什么是KMS自选密钥,接下来我们详细展开了解一下。使用KMS自选密钥创建加密云盘。



用户首次使用ECS创建加密盘时,会为用户在KMS创建一个服务密钥,每个用户在每个地域的服务密钥是唯一的,用户无法管理服务密钥的生命周期。服务密钥可以帮助用户获得最基本的数据保护能力。但是对有高安全要求级别的客户,还有可能存在一些密钥管理上的一些短板,例如不能自主管理密钥的生命周期,不能设定自动轮转,保护级别仅仅为软件密钥等等。


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


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



KMS自选密钥还支持密钥轮转的能力,建议客户开启密钥轮转能力。密钥轮转加强密钥使用的安全性,以提升业务数据的安全性。


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


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


同一个密钥下,多个密钥版本在密码学上互不相关。KMS通过生成一个新的密钥版本来实现密钥的轮转。密钥创建后,KMS生成初始密钥版本,并将其设置为主版本,轮转后会生成一个新的密钥版本,并将新的版本设置为主版本。密钥轮转仅新增密钥版本,密钥ID、密钥ARN、别名等属性不会改变。KMS不会删除任何密钥版本,密钥版本紧随密钥的删除而删除。



使用KMS自选密钥创建加密云盘时也存在一些限制。创建自选密钥时,KMS加密密钥必须为对称密钥,比如AES-256、SM4。使用自选密钥的时候,仅对称密钥支持密钥轮转的能力。使用自选密钥的时候,必须授予ECS云资源KMS加密密钥相关访问权限。KMS加密密钥必须是有效状态的,禁用、过期、计划、删除等状态无法正常使用,失效状态下密钥关联的加密ECS资源无法保证可靠性。


除了数据存储机密性之外,一些是在数据传输机密性上也提供了很多产品安全能力,会从以下三个维度详细展开,使用安全加固模式访问实例元数据,使用VPN网关安全访问,使用HTTPS访问ECS资源。



首先来看一下加固模式访问实例元数据。什么是实例元数据,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实例元数据。



开启加固模式访问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保证数据传输的机密性。



什么是VPN网关?VPN网关可以通过建立加密隧道的方式实现企业本地数据、企业办公网络、互联网客户端,以阿里云专有网络VPC之间的一个安全可靠的私网连接。VPN使用网络密钥交互和IP协议层安全结构IPsec协议对传输数据进行加密,从合保护数据的安全可信。


VPN网关主要提供两种网络连接方式,IPsec-VPN和SSL-VPN,IPsec-VPN主要用于本地数据中心和阿里云之间的流量加密,SSL-VPN主要用于客户端与阿里云之间的流量。它们分别实现的原理是什么。



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资源。



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资源进行通信。



阿里云还提供了SSL证书服务,由权威机构颁发的可信证书,具备网站身份认证、加密传输双重功能。阿里云的SSL证书服务支持包括SSL证书的协助部署、SSL证书部署到阿里云产品以及第三方平台SSL证书管理、域名监控、多年期SSL证书订阅模式等等功能。


除了数据存储的机密性、数据传输的机密性之外,数据运行态计算环境的机密性也是至关重要的。



ECS计算安全实例通过技术手段,包括硬件加密、隔离、用户审计能力,提供安全可靠的隔离技术环境,并且在这个基础上提供了不同等级的安全保护能力。当前ECS的计算安全实例主要提供了默认内存加密的规格实例、可信计算规格的规格实例、机密计算的规格实例这三种。


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


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


机密计算规格实例,主要包括两种安全能力,Enclave安全能力以及机密虚拟机安全能力。阿里云基于Intel SGX 2.0与阿里云的虚拟化业务提供了机密计算能力,这个能力可以将可信根大大减小,降低业务可能受攻击的影响范围,可支持用户打造更高安全等级的一个机密计算环境。机密虚拟机安全能力,机密虚拟机可以在没有任何应用代码更改的情况下,将原有的敏感业务以加密预算的方式运行在云上,可以满足对敏感信息保护的要求。当前阿里云是基于英特尔TDX、AMD SEV和海光CSV的机密虚拟机能力。



可信计算用于实现云租户计算环境的底层高等级安全的主要功能之一,通过在硬件平台上引入可信平台模块TPM,构建涵盖了系统启动和用户指定应用的信任链,并实现远程证明机制,为用户提供了针对环境启动阶段和运行阶段的全方位可信保证,在系统和应用中加入可信验证,能够减少由于使用未知或遭到篡改的系统软件攻击的可能性。


可信计算实现的原理如右图所示的,可信实例基于硬件的TPM可信根,通过UEFI安全固件,软件层面实现了虚拟可行平台的vTPM远程证明服务实例,实现启动度量和完整性校验,从而保证了实例的安全可信。可信计算为您的ECS实例提供了可验证的完整性,以确保实例未受到启动级或内核级恶意软件或Rootkit的侵害。



除了可信计算规格实例外,我们还提供了丰富的机密计算实力规格,包含 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的正常运行和私密性。



刚刚提到了远程证明服务,什么是远程证明服务?阿里云远程证明服务是以背调模型为基础,可以验证阿里云安全增强型ECS实例的安全状态和可信。具体证明如右图所示的,证明者在ECS实例中收集和生成证据。证明者将证据传递给依赖方,依赖方将其直接转发给验证方,验证方将证据与其评估策略进行比较,验证方将证明结果返回给依赖方,依赖方将证明结果与自己的评估策略进行比较。


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


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


五、总结



前面从信息安全的三要素完整性、可用性、机密性展开,介绍了很多数据安全的产品、安全能力以及建议。


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


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


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


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


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

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
监控 中间件 Java
后端技术:构建高效、稳定的服务器端应用
【10月更文挑战第5天】后端技术:构建高效、稳定的服务器端应用
84 0
|
2月前
|
监控 虚拟化 云计算
从物理到云:使用自动化工具简化服务器迁移流程
【10月更文挑战第4天】随着云计算的快速发展,越来越多的企业选择将物理服务器迁移到云环境以提高效率和降低成本。本文详细介绍了使用自动化工具简化从物理到云的服务器迁移流程的技术实现细节,并提供了代码示例。
130 6
|
11天前
|
安全 开发工具 Swift
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发。基础语法涵盖变量、常量、数据类型、运算符、控制流等,高级特性包括函数、闭包、类、结构体、协议和泛型。
21 2
|
15天前
|
弹性计算 安全 网络安全
阿里云服务器四种常见购买方式适用对象与购买流程参考
阿里云服务器有多种购买方式,不同的方式适合对象与购买流程不一样,常见的购买方式有自定义购买、一键购买、云市场购买和通过活动购买四种方式。本文为大家介绍这四种方式的区别、适合对象以及详细的流程,以供参考和选择。
|
2月前
|
存储 监控 网络协议
服务器压力测试是一种评估系统在极端条件下的表现和稳定性的技术
【10月更文挑战第11天】服务器压力测试是一种评估系统在极端条件下的表现和稳定性的技术
122 32
|
4天前
|
存储 运维 算法
服务器数据恢复—raid6阵列硬盘重组raid5阵列如何恢复raid6阵列数据?
服务器存储数据恢复环境: 存储中有一组由12块硬盘组建的RAID6阵列,上层linux操作系统+EXT3文件系统,该存储划分3个LUN。 服务器存储故障&分析: 存储中RAID6阵列不可用。为了抢救数据,运维人员使用原始RAID中的部分硬盘重新组建RAID并进行了初始化。 初始化开始一段时间后,运维人员察觉到情况有异后强制终止初始化,这个时候初始化已经完成一半以上。数据部分已被不可逆的破坏。
|
1月前
|
弹性计算 安全 网络安全
阿里云服务器租用流程,四种阿里云服务器租用方式图文教程参考
阿里云服务器可以通过自定义租用、一键租用、云市场租用和活动租用四种方式去租用,不同的租用方式适合不同的用户群体,例如我们只是想租用一款配置较低且可以快速部署应用的云服务器,通常可以选择一键租用或者云市场租用,本文为大家展示不同租用方式的适合对象以及租用流程,以供初次租用阿里云服务器的用户参考和选择。下面是阿里云服务器租用的图文操作步骤。
|
2月前
|
存储 数据挖掘
服务器数据恢复—用RAID5阵列中部分盘重建RAID5如何恢复原raid5阵列数据?
服务器数据恢复环境: 一台服务器挂接一台存储,该存储中有一组由5块硬盘组建的RAID5阵列。 服务器故障: 存储raid5阵列中有一块硬盘掉线。由于RAID5的特性,阵列并没有出现问题。工作一段时间后,服务器出现故障,用户方请人维修。维修人员在没有了解故障磁盘阵列环境的情况下,用另外4块硬盘(除去掉线的硬盘)重新创建了一组全新的RAID5阵列并完成数据同步,导致原raid5阵列数据全部丢失。
|
2月前
|
NoSQL Linux PHP
|
2月前
|
监控 安全 Java
linux服务器上启动framework应用程序流程
【10月更文挑战第17天】在Linux服务器上启动Framework应用程序需经过准备工作、部署、启动、监控及访问五个步骤。首先确保服务器满足系统要求并安装依赖项;接着上传应用文件,编译构建,配置参数;然后通过脚本、命令行或系统服务启动应用;启动后检查日志,监控性能;最后确认访问地址,验证应用运行状态。具体操作应参照应用文档。

热门文章

最新文章

相关产品

  • 云服务器 ECS