简介: 本次内容由阿里云智能技术专家王帝(丞浩)为你们介绍如何正确使用安全组、最佳实践以及新特性;详细了解安全组为什么是云端的虚拟防火墙,以及为什么是重要的网络隔离手段。数据库
演讲嘉宾简介:王帝(丞浩),阿里云技术专家,2017年10月加入阿里云弹性计算团队,主要负责网络安全组的优化和演进。缓存
如下内容根据演讲视频以及PPT整理而成。观看回放
更多课程请进入“玩转ECS详情页”了解安全
使用过ECS的朋友必定不会对安全组陌生,他是ECS实例的虚拟防火墙。配置安全组是建立ECS实例或者发生网络属性变动必不可少的一步。下面我就为你们分享一下安全组的相关内容。服务器
本次分享主要围绕如下三个部分,安全组的简介,基本操做和最佳实践。网络
ECS网络访问控制架构
首先什么是安全组,阿里云ECS的网络访问控制,是由子网ACL和安全组两层实现的。你们知道阿里云提供VPC专有网络,是用户独有的云上私有网络。VPC专用网络为用户独立出一块网络区域,使得用户能够自行规划本身的网段,在没有配置公网IP的状况下,VPC是彻底与外界隔离的。分布式
交换机绑定网络ACL,ACL会对应一些控制规则,全部通过交换机的网络流量都需通过这些规则,通常配置的是黑名单规则(固然也支持指定白名单),例如不容许哪些网端的数据包流入或流出。测试
再往下一层就是咱们今天要讲的安全组,相对于子网ACL是生效在交换机上,安全组实例级别的防火墙,生效在ECS上面。全部通过用户的ECS网络流量都需通过安全组。优化
安全组是一种虚拟防火墙,具有状态检测和数据包过滤能力,用于在云端划分安全域。经过配置安全组规则,您能够控制安全组内ECS实例的入流量和出流量。阿里云
安全组是一个逻辑上的分组,由同一地域内具备相同安全保护需求并相互信任的实例组成。此外,安全组与子网ACL之间的明显区别是安全组具备状态,安全组会自动容许返回的数据流不受任何规则的影响,简单来讲就是主动请求别人就必定会收到回包。而交换机则不是,入流量也会走一遍所设置的子网ACL规则,若是被拦截是收不到回包的。有些用户会将安全组与iptables对比,其实这二者是独立的。
阿里建议用户单独使用安全组,若是用户的场景须要配置iptables,ECS也是彻底支持的。相对于子网ACL的黑名单方式,安全组通常是白名单。
ECS或弹性网卡必须至少属于一个安全组,安全组组内默认互通能够配置规则控制网络联通。
下面再给你们分享一下在阿里云ECS控制台是如何操做管理安全组的。
为了方便理解,咱们把对安全组的操做暂时分为两类,组的操做和规则的操做。
组的操做是针对安全组自己的操做,好比建立、删除、更名字,以及可能致使安全组内IP发生变化的操做,还有组内添加实例网卡、替换组等。规则的操做则是改变组内规则的操做,好比添加,删除,修改,克隆等操做。
先说组的操做,好比组内加减实例,网卡等操做比较简单,咱们就不特别介绍了,重点介绍一下替换组。
替换组:实例能够从组A替换到组B,在替换过程当中不会发生网络闪断或抖动的状况,用户只需保证新老组的规则是兼容的,在整个替换过程当中不会对网络有任何的影响和抖动。
再说规则的操做,咱们重点介绍一下还原,导出导入,Classic Link和克隆组。
**
规则还原:**对两组规则进行合并或替换,通常在作实验性质的网络变动以前能够先克隆出一个组,测试后能够经过规格还原功能恢复成原来的样子。下图为规格还原的页面,展现出哪些规格为新增哪些为删除。
导出导入:将安全组下载成JSON文件或是CSV文件用于备份。
Classic Link:经过添加一条安全组规则实现VPC和经典网络之间的网络联通。
克隆组:克隆组支持跨地域或跨网络类型的安全组复制,能够从经典网络到VPC或是到一个新Regen并快速复制一个组。
最后再给你们介绍一下比较好的安全组配置实践,好比如何合理的配置规则,如何使用五元组,如何基于安全组作断网演练。
安全组规则格式
首先先介绍一下安全组规则配置有两种方式:
CIDR:图中示例展现,受权192.168.0.0/24的地址DR机器访问22端口。
组织受权:图中示例展现,拒绝另外一组访问的全部端口,彻底切断两组之间的流量。
以上两个示例都为入方向规则,通常状况下不知道对方使用哪一个端口接连本身,因此不限制,区别在于本身任选哪一个端口对外暴露给任意对象。
相对于上图的四元组,阿里也支持五元组。
五元组为五个参数:源地址、源端口、目的地址、目的端口、传输层协议,相比四元组多了目的地址。以入方向规则为例,使用五元组能够实现不放行整个组,可单独放行某一个IP段,这样某些平台内网络服务为了防范第三方产品对用户ECS的实例发起非法访问,须要在安全组内设置五元组规则,更精确的控制出和入的流量。另外,若是用户组内联通策略是拒绝场景,想精确控制组内ECS之间的联通策略也须要使用五元组。五元组场景较为特殊,而绝大多数场景四元组是能够胜任的。
规则配置建议
先规划对于分布式应用来讲,不一样的应用类型应放到不一样组中。使用白名单方式管理安全组,不建议用户使用先加一条低优先级全通,再逐条拒绝的方式。要慎用0.0.0.0/0全通策略。遵照规则最小化配置原则。尽可能使用CIDR段,由于单组容量有限,并且CIDR地址段更容易扩展和维护。不限制协议使用all,不是每一个协议都配一遍。安全组规则变动很是高危,要认真写好备注以便于后续的维护。
潜在高危安全组概览
阿里云ECS会按期检查用户的实例,若是实例暴露在公共环境而且开放高危端口,阿里会对用户作出预警,且用户在资源概览页面中能够查看本身的高危安全组。
如何给应用划分安全组
为了不测试环境和正式环境之间互相干扰,阿里会将测试环境和正式环境放在不一样VPC中进行隔离。将有公网服务放在一组内网服务放在一组。不一样应用类型应使用不一样安全组,例如Web服务、应用服务、数据库或缓存,都应该放在不一样安全组中。下图中的示例,因为都需使用跳板机,因此都受权了跳板机组G1,Web服务器须要联通应用服务器,应用服务器又须要联通数据库,因此分别作了组组受权。这样作完网络安全组的规划使得应用分层清晰,便于后续的维护,同时也知足了隔离性和安全性的要求。
使用安全组进行断网演练
基于安全组可进行断网演练用于高可用容灾或混沌工程等场景,以下图中case,演练数据挂掉时系统的表现,能够将此DB加入专门的断网组,断网组+全阻断规格来实现快速规模化断网。
拆解断网过程
建立断网组:由于组内默认联通策略是组内互通的,因此先改成组内不互通。
加入实例:先将演练数据库加入断网组内,这时对业务无任何影响且正常运行。
添加规则:当真正进行断网演练时须要执行该步骤,给断网组出和入各加一条全阻断规则,加完后此时服务器的流量就会彻底被切断。
删除规则:当演练完毕后,须要将全阻断规则删除,便可恢复业务。
若是须要不按期作容灾演练,只需重复步骤3、四便可。
企业级安全组
传统安全组组内容量上限是2000IP,如要进行更大规模则需使用企业组,企业组支持单组60000以上的IP,将来支持的容量会更多。
典型的企业组场景例如阿里云的容器服务ACK或是用户自建K8s集群,其实ECS只是做为S层,ECS之间只需网络互通便可。容器的网络访问控制并非安全组实现的,而是经过Network Policy等方式来实现的。下图中的示例显示是较为常见的部署方式,VPC下挂两个虚拟交换机分别在两个可用区作跨地域容灾,将全部实例放入一个组中,无需复杂的规则配置,只需配置内网全通和出方向全通就可实现VPC内互通。下图中只配置了三条规则,两条入方向全通和一条出方向全通,这是较为常见的容器服务安全组架构。若是用户不须要组组受权而且对组内的实例规模有要求,那么请使用企业级安全组。若是当前传统组想切换至企业组,有两种方式可实现,第一种新建一个企业组后采用替换组的方式将实例逐个挪入到企业组中,第二种是阿里协助用户将原来的传统组升级成企业组。
云产品托管安全组
用户在使用阿里云云产品时,如云防火墙、NAT网关等,云产品都会替用户建立安全组,为了不用户误操做形成产品不可用,阿里采用了托管模式,托管组即用户可建不可操做,避免产生问题。
以上是对本次分享的所有,但愿对你们有所帮助,谢谢各位。
原文连接本文为阿里云原创内容,未经容许不得转载。