曾经在《游戏云间之六:数据安全》这篇文章中,通过物理底层、网络安全、平台、系统/应用安全等方面框架性介绍过云端安全,本文会进一步细化及深入的跟大家分享云端安全最佳实践经验。
言归正传,怎么样保障我们的业务在云端是高安全的呢。我们要从以下几个方面重点考虑及规划:
最佳实践之一:云平台的选择
云平台的选择,是安全保障的基石。当前在云计算领域,亚马逊算是做的最好的。在国内,阿里云处于绝对领先地位,当然腾讯云、ucloud在行业内也占有一席之地。所以成熟/稳定的云平台,当前是安全保障的基石。值得注意的是,云平台和传统虚拟化技术是有很大区分。最大区别就是云平台是基于分布式,而传统虚拟化是基础单机版。如虚拟化出来的vps服务器,数据方面都是单机存储。而云平台的数据,都是分布式多副本冗余存储,所以安全性得到很大保障。
在选择云计算服务平台后,我们要考虑的是根据业务特点,我们要选择对应的部署模式:
公有云部署:传统互联网的业务,面对业务的高速发展、高速迭代,选择公有云租用的弹性模式,是个最优选择。分布式的隔离机制、多副本冗余等机制,保障了数据安全。但传统互联网业务里面,有个比较特殊的行业,那就是金融行业。由于保险、证券、银行等业务,对安全级别要求更高。在当前云平台方面,也有专门针对金融领域的金融云解决方案。从技术角度来讲,金融云的部署采用单独的物理集群部署,所以底层的存放在物理硬件上的数据跟传统客户的数据是物理隔离的。另外在安全策略方面也会有更多高级别的限制,如常用端口默认限制、管理账号的需绑定虚拟MFA设备等。
私有化部署:在政务类行业中,面对“数据不能出省”、“信息安全等级保护”等安全要求,所以政务类业务一般不会部署在公有云上。传统类型政务业务,都是自建数据中心与公网隔离的模式来部署及维护。随着云计算发展,云计算在政务行业的应用,采用的是将云平台私有化部署在自建的数据中心。
混合云部署:混合云是公有云和私有化结合的一种模式,说到混合云部署的模式,我认为,随着云计算的发展,公有云才是大的趋势。因为在未来的互联网公司,我们不会再接触到数据中心、IDC及对应物理服务器等硬件设备。比如当前,在我们公司,所有业务都是部署在云平台中,包括企业内部的OA、ERP等内部系统。在我们公司内部,是完全看不到一台物理服务器的。也许有人会问,OA、ERP部署在公网,安全性怎么保障,其实通过VPN对应技术手段完全可以解决我们对于安全的需求。当然要想整个行业达到这一阶段,必然会经过一段时间的发展,所以当前很多客户的内部系统,依然采用私有化的手段部署在内网中。
最佳实践之二:云端安全架构
资源选择的安全性考虑
大家应该都知道“鸡蛋不能放在一个篮子里”的道理吧,所以在对安全性较高的应用中,我们尽量将自己的应用部署在不同地域的不同机房中。比如,在阿里云上的部署,我们可以把业务部署在上海地域节点、北京地域节点,前端通过DNS轮询来做负载均衡。通过多地域部署,可以有效避免由于自然灾害导致地域机房大规模宕机的问题。比如在2016年武汉洪水,导致阿里云武汉节点大规模机房受损的问题(当初是联系客户,将数据手动迁移至其他地域)。
另外在很多常规应用中,我们一般在某个地域部署单个SLB,后端再部署多个ECS,保障业务的高可用性。值得注意的是,在SLB后端的ECS,我们可以选择不同可用区的ECS。阿里云的可用区的概念,就是同个地域下不同机房的概念。选择不同可用区的ECS,可以有效避免掉由于某个机房的故障,导致业务完全不可用的问题。
产品使用的安全性考虑
1ã 通过SLB最大限度保障ECS安全性。
经常有客户会问,为什么单台ECS的应用前段要加台SLB,这不是多此一举吗?
第一方面,在安全性方面,在ECS前端加个SLB:
SLB可以有效屏蔽掉后端ECS的公网ip(即DNS的域名解析ip直接是SLB ip),起到有效安全保护作用。
SLB是集群,抗攻击耐打性比ECS更加强悍。
第二方面,在性能方面,SLB+ECS的组合,比单纯的ECS的组合性能更好。主要体现在带宽方面,单台ECS的带宽峰值是200Mbps,而SLB的带宽峰值是1Gbps。
第三方面,在扩展性方面,SLB+ECS的组合更加灵活快捷。常规模式下,DNS的域名解析ip是ECS公网ip。后续面对性能不足,还需要增加服务器,这将变得非常被动及麻烦。SLB+ECS的组合,DNS的域名解析ip是SLB公网ip。后续面对性能不足,还需要增加服务器的时候,我们只需要将服务器增加到SLB后端即可,完全无缝水平扩展。
2ã 开启云产品对应的白名单机制,可以有效减少安全风险。
安全组(防火墙)对协议、ip、端口进行对应安全控制,是在云端非常有效及必要安全保障。
数据库rds方面,一方面需要禁用公网相关的访问。另外一方面,需要设置客户端连接数据库的白名单机制。
Oss存储方面,我们需要通过oss的读写权限(建议私有读写)、防盗链等安全设置(建议指定http
referer白名单配置),保障oss的安全性。
云端安全网络规划
在开始云端部署,网络环境选择经典网络,还是vpc虚拟网络,这整体决定了部署环境的安全性。面对企业级应用,我们默认优先考虑使用vpc虚拟网络。虚拟网络的网段划分,可以有效对业务服务进行隔离划分。另外通过虚拟路由+vpn,能够把线上环境和线下环境内网打通,这块在安全应用中是比较成熟的解决方案。另外,VPC环境支撑SNAT等功能,这块也是经典网络不具备的。
云盾安全产品的使用
在云端,使用阿里云的“十年攻防,一朝成盾”的云盾,是最有效的防御手段之一。
在应用层,通过waf有效解决了应用层方面的安全性。比如,sql注入、跨站脚本功能、上传漏洞等。
在网络层,通过ddos防御有效解决了网络层的流量攻击问题。
在系统层,通过安骑士有效解决了系统层的木马、病毒、漏洞等问题。
在业务层,通过数据风控、反欺诈等服务,有效解决了业务层的安全性问题。
最佳实践之三:云端安全运维体系
通过上述,我们解决了云端安全架构方面问题。但在云端安全实践中,云端安全运维体系是云端安全性保障的最直接体现。
远程控制:
堡垒机是远程控制的必要安全手段,即我们需通过堡垒机来对服务器进行远程管理。堡垒机具备安全审计、权限管理等核心安全管理功能。
用户管理:
使用普通用户登录,sudo成root的方式维护
指定系统用户才能远程登录
程序采用非root用户用户
密码管理:
禁用明文方式传输密码等敏感信息。如在email、doc、Excel等文件中直接明文传输密码。
密码的存储、传输,统一采用keepass工具。
密码定期修改策略
密码强口令策略:即对应密码设置必须采用8位/16位/32位随机强密码。
防火墙管理:
在云端,我们需要通过安全组+防火墙结合的方式,来保障访问连接的安全性。
公网安全性管理:
1、关于ECS公网安全性管理:
默认禁用一切ECS的公网访问(因为需要远程管理,堡垒机除外),对外的业务,通过SLB+ECS部署方式来提供对外服务。
对应的服务端口,需要默认绑定到内网ip上,禁用对应的服务端口绑定在”0.0.0.0”上。
2、关于数据库安全性管理:禁用数据库的公网访问,另外访问数据库需设置白名单机制。
安全巡检:
定期进行安全巡检,及时进行安全补丁更新、漏洞修复。必要时候采用安全渗透测试,来对业务及系统进行更加深入的安全评估。
最佳实践之四: 云端安全管理及培训
在《云端安全之二:面临的挑战》中也提到过,最大的安全问题,并不是黑客技术有多么的高超,而是我们的安全意识有多么的低下。例如,总有人把密码设置为123456、自己的生日、自己的手机号等,总有人把所有服务器的密码都设置一样,总有人把密码放在excel/word/邮件中传送等等。
结合云端安全架构、云端安全运维体系,我们需要制定完善的安全体系规范及制度。
然后通过管理的手段,如定期安全培训、定期安全巡检等,来提升人员的安全意识,提升人员的安全专业能力。
杜绝抄袭,支持开源,我为自己呐喊,百分百原创作者:乔锐杰