基于安全组实现访问控制策略

安全域、DMZ防火墙方案、应用系统多层架构是是常见的边界安全措施,在这些架构下,需要经过若干层网络保护才能访问敏感性逐级提高的数据。本最佳实践点要解决的主要问题是云计算环境中如何实现安全访问控制策略。
云中没有网段和网络边界,每个云服务器在网络中都处于同一层次,但可以利用安全组和安全规则来模拟传统网络体系中的各个层次。阿里云云服务器的安全组特性提供了类似防火墙的访问控制功能,通过设定各安全组之间的安全规则,可搭建复杂的多层访问控制体系,达到系统整体安全。
云服务器安全组具有如下特性:
1. 可按安全组、源IP、目的端口、内外网访问等条件进行访问控制。
2. 位于同城不同机房中的云服务器,只要内网连通,可以工作在同一个安全组中。
3. 一个安全组可以包含多个云服务器,但一个云服务器只能属于一个安全组。
4. 同一安全组中的云服务器,默认互通。
5. 不论是否属于同一安全组,云服务器都不能以任何方式查看其它服务器的网络流量。
6. 安全组是云服务器的属性,如果RDS也想实现访问控制功能,可以设置RDS的“允许访问的IP名单”。

除了提供类似防火墙的功能外,使用安全组还有以下好处:
1. 可方便地从外部网络通过SSH或其它安全链接直接访问每台云服务器。因为这些访问必须符合特定的安全规则,所达到的安全性与传统方案类似。
2. 由于安全规则的虚拟性,入侵者不容易像攻击物理防火墙那样,选定一个明确的目标来发动攻击。
3. 因为安全规则通过远程控制,不会出现误删除网络规则,而把所有人都屏蔽到网段外的情况。

目前安全组只能通过API方式进行控制,将来会提供管理控制台操作的服务。安全组相关的API如下,详细使用方式请参考阿里云ECS API文档http://dev.aliyun.com/read.php?tid=41。
l CreateSecurityGroup (创建安全组)
l AuthorizeSecurityGroup (授权安全组权限)
l DescribeSecurityGroupAttribute (查询安全组规则)
l DescribeSecurityGroups (查询安全组列表)
l RevokeSecurityGroup (撤销安全组规则)
l DeleteSecurityGroup (删除安全组)
下面我们将通过一个案例来阐述如何基于安全组来实现访问控制的最佳实践。以某社区论坛网站为例,该网站架构在阿里云平台之上,使用了多台云服务器,采用二层架构,分为Web层和数据库层。从安全角度分析,该网站使用的云服务器可分为三类:Web服务器、数据库服务器和管理服务器。Web服务器提供公网HTTP访问;数据库服务器存储各种论坛数据,例如发言和评论等;管理服务器是完成各种日常管理功能,同时起到跳板机的作用,例如应用升级、数据备份、后台管理等。网站架构示意图如下所示:

网站架构示意图

基于这样一种架构,我们可以设置如下的安全组及规则,从而达到安全访问控制的目的。

安全组 安全规则
Web安全组 1.     允许80端口的所有外网访问
2.     允许管理安全组的内网访问请求
3.     其它流量全部禁止
数据库安全组 1.     允许来自Web安全组的内网访问
2.     其它流量全部禁止
管理安全组 1.     允许来自22或3389端口的外网访问

说明:从稳定性、可靠性和性能等角度,推荐使用RDS而不是在云服务器上搭建数据库。

该系统与论坛用户的唯一接口是Web服务器,该服务器上公网只开放80端口;管理员的访问路径是从管理安全组到Web安全组,最后才到数据库安全组。该方案的安全效果是:要想访问网站数据库,首先要通过管理安全组这一关,然后通过Web安全组,最后才能访问数据库安全组中某台机器上的数据库应用。

 

基于安全组实现访问控制策略:等您发表观点呢!

发表评论


快捷键:Ctrl+Enter