云服务器ECS安全组实践(三)Tips篇

在使用安全组的过程中,一个常见的错误是将所有的云服务器放置在一个安全组之中,这样虽然减少了初期配置的工作量,但是长期来看将会使得您的业务系统网络交互变得复杂和不可控,在执行安全组变更的时候没办法明确的知道添加和删除规则的影响范围。

合理的规划和区分不同安全组将使得您的系统更加便于调整,同时可以梳理应用的提供的服务和不同的应用进行分层。所以我们推荐您对不同的业务规划不同的安全组,设置不同的安全组规则。

例如对于是否提供公网访问和内网的应用使用不同的安全组,避免不小心疏忽暴露了不需要的服务到公网。同时要对测试环境和生产环境使用不同的安全组,这样讲使得发布和变更更加安全,避免测试环境的业务影响线上的稳定性。本文将着重介绍一些在应用中创建和使用安全组的一些规则。

区分不同的的安全组

提供公网服务的云服务器和内网服务器尽量属于不同的安全组

是否对外提供公网服务,包括主动暴漏某些端口对外访问,例如80、443等,被动的提供例如云服务器具有公网IP、EIP、NAT端口转发规则等都会导致自己的应用可能被公网访问到。

这两种场景的云服务器所属的安全组规则要采用最严格的规则,我们建议是拒绝优先,默认情况下应当关闭所有的端口和协议,仅仅暴露对外提供需要服务的端口,例如80、443。同时由于仅仅属于对外公网访问的服务器编组,我们调整安全组的规则的时候也比较容易控制。

对于对外提供的服务器编组的职责应该比较明晰和简单,避免在同样的服务器上对外提供其它的服务例如MySQL、Redis之类的,建议将这些服务安装在没有公网访问权限的云服务器上,然后通过安全组的组组授权来访问。

如果当前有公网云服务器已经和其它的应用在同一个安全组SG_CURRENT。您可以通过下面的方法来进行变更。

  • 首先梳理当前提供的公网服务暴漏的端口和协议,例如80、443。
  • 新创建一个安全组例如SG_WEB, 然后添加相应的端口和规则。授权策略:允许,协议类型:ALL, 端口: 80/80, 授权对象: 0.0.0.0/0, 授权策略:允许,协议类型:ALL, 端口: 443/443 授权对象: 0.0.0.0/0。
  • 选择安全组SG_CURRENT, 然后添加一条安全组规则,组组授权,允许SG_WEB中的资源访问SG_CURRENT。授权策略:允许,协议类型:ALL, 端口: -1/-1, 授权对象:SG_WEB, 优先级: 按照实际情况自定义[1-100],
  • 将一台需要切换安全组的实例 ECS_WEB_1 添加到新的安全组中,【ECS控制台】-【安全组管理】- 选择SG_WEB -【管理实例】-【添加实例】,选择实例 ECS_WEB_1 加入新的安全组SG_WEB,确认ECS_WEB_1实例的流量和网络工作正常。
  • 将ECS_WEB_1从原来的安全组中移出,【ECS控制台】-【安全组管理】- 选择SG_CURRENT -【管理实例】-【移出实例】,选择ECS_WEB_1 ,从SG_CURRENT移除,测试网络连通性,确认流量和网络工作正常。如果不正常将ECS_WEB_1仍然加回到安全组SG_CURRENT中,检查设置的SG_WEB暴漏的端口是否符合预期。然后继续变更。
  • 执行其它的服务器安全组变更。

不同的应用使用不同的安全组

在我们的生产环境中,不同的操作系统大部分情况下不会属于同一个应用分组来提供负载均衡服务,提供不同的服务意味着需要暴露的端口和拒绝的端口是不同的,建议不同的操作系统尽量归属于不同的安全组。

例如对于我们常见的Windows和Linux,对于Linux操作系统,我们可能需要暴露TCP(22)端口来实现SSH,对于Windows可能需要开通TCP(3389)远程桌面连接。

其实不只是不同的操作系统属于不同的安全组,即便同一个镜像类型,提供不同的服务,如果之间不需要通过内网进行访问的话,最好也划归不同的安全组,这样方便解耦和未来的安全组规则变更,做到职责单一。

在规划和新增应用的时候,除了考虑划分不同的虚拟交换机配置子网,也应该同时合理的规划安全组。使用网段+安全组约束自己的作为服务提供者和消费者的边界。

具体的变更流程参见上面的操作步骤。

生产环境和测试环境使用不同的安全组

为了更好的做系统的隔离,在实际开发过程中,我们可能会构建多套的测试环境和一套线上环境。为了更合理的做网络隔离,我们需要对不同的环境配置使用不通的安全策略,避免因为测试环境的变更刷新到了线上影响线上的稳定性。

通过创建不同的安全组,限制应用的访问域,避免生产环境和测试环境联通。同时也可以对不同的测试环境分配不同的安全组,避免多套测试环境之间互相干扰,提升开发效率。

仅对需要公网访问子网或者云服务器分配公网IP

不论是经典网络还是专有网络(VPC)中,合理的分配公网IP可以让系统更加方便的做公网管理,同时减少系统受攻击的风险。在专有网络的场景下,创建虚拟交换机的时候,我们也建议您尽量将需要公网访问的服务区的IP区间放在固定的几个交换机(子网CIDR)之中,这样方便审计和区分,避免不小心暴漏公网访问。

在分布式应用中,大多数应用都有不同的分层和分组,对于不提供公网访问的云服务器尽量不提供公网IP,如果是有多台服务器提供公网公网访问,建议您配置公网流量分发的负载均衡服务(SLB)来公网服务,提升系统的可用性,避免单点。

对于不需要公网访问的云服务器尽量不要分配公网IP。专有网络中当您的云服务器需要访问公网的时候,优先建议您使用NAT网关,用于为VPC内无公网IP的ECS实例提供访问互联网的代理服务,您只需要配置相应的SNAT规则即可为具体的CIDR网段或者子网提供公网访问能力,具体配置SNAT参见。避免因为只需要访问公网的能力而在分配了公网IP(EIP)之后也向公网暴露了服务。

最小原则

安全组应该是白名单的性质的,所以需要尽量开放和暴露最少的端口同时尽量少的分配公网IP。如果想要访问线上机器进行任务日志或错误排查的时候直接分配公网IP或者挂载EIP虽然简便,但是毕竟会将整个机器暴露在公网之上,更安全的策略是建议通过跳板机来管理。

使用跳板机

跳板机由于其自身的权限巨大,除了通过工具做好审计记录。在专有网络中,建议将跳板机分配在专有的虚拟交换机之中,对其提供相应的EIP或者NAT端口转发表。

首先创建专有的安全组SG_BRIDGE,例如开放相应的端口例如 Linux TCP(22) 或者 Windows RDP(3389)。为了限制安全组的入网规则,可以限制可以登录的授权对象为企业的公网出口范围,减少被登陆和扫描的概率。

然后将作为跳板机的云服务器加入到这个安全组之中。为了能让这个机器能访问相应的云服务器,可以配置相应的组组授权,例如在SG_CURRENT 添加一条规则允许SG_BRIDGE 访问某些端口和协议。

使用跳板机SSH的时候,建议您优先使用SSH 密钥对而不是密码登陆。

总结

合理的安全组规划会使得您在扩容应用的时候更加的游刃有余,同时让您的系统更加的安全。回顾下上文中总结到的实践主要为:

  • 提供公网服务的云服务器和内网云服务器尽量属于不同的安全组
  • 不用的应用使用不同的安全组,尤其是不同的操作系统
  • 生产环境和测试环境使用不同的安全组隔离
  • 仅对需要从公网进行访问的实例分配公网IP
  • 使用跳板机约束和审计可访问生产环境的权限

本篇是安全组实践的第三篇,您可以通过查看下面的文章了解更多的安全组的细节。您可以留言提出关于安全组的问题,谢谢!

  • 云服务器ECS安全组实践(一)
  • 云服务器ECS安全组实践(二)
  • 安全组设置内网互通的方法
时间: 2024-12-21 02:35:29

云服务器ECS安全组实践(三)Tips篇的相关文章

云服务器ECS安全组实践(一)

应用上云除了对资源生命周期管理和应用交付是一个转变,更重要是思维方式的转变.本篇文章就简单介绍下上云的一个重要概念安全组(Security Group).本文是安全组系列的第一篇,主要介绍安全组的基本概念.约束和如何配置入网规则. 安全组的基本概念和约束 安全组在云端提供类似虚拟防火墙功能,用于设置单个或多个 ECS 实例的网络访问控制,它是重要的安全隔离手段.在创建 ECS 实例时,必须选择一个安全组.您还可以添加安全组规则,对该安全组下的所有 ECS 实例的出方向和入方向进行网络控制. 安全

云服务器ECS安全组实践(二)

云服务器ECS安全组实践(一)中我们简单介绍了安全组的一些规则和约束和实践,在创建一台云服务的时候,它作为几个必选参数之一,可见它的重要性.本文将继续安全组的介绍,本篇涉及到下面的几个内容: 授权和撤销安全组规则 加入安全组和离开安全组 阿里云的网络类型分为经典网络和VPC,他们对安全组支持不同的设置规则.对于经典网络你可以设置下面的几个规则: 内网入方向.内网出方向.公网入方向.公网出方向.对于VPC网络可以设置: 内网入方向.内网出方向. 在开始本篇之前描述几个安全组内网通讯的概念: 默认情

【推荐】如何使用好阿里云的网络安全隔离?深入分享阿里云ECS安全组实践经验

近期针对安全的话题非常火爆.特别邀请阿里云专家撰写一组文章,深入分享阿里云ECS安全组实践经验. 阿里云的ECS有经典网络和专有网络(VPC)两种网络类型.经典网络基于阿里云基础网络,通过安全组(类似虚拟防火墙)的一系列数据链路层.网络层访问控制策略实现资源隔离.安全组策略是白名单的方式,不同租户的服务器会处于不同的安全组,默认情况下安全组仅会放行同租户同安全组内的访问请求. 因此安全组和防火墙一样,一般建议配置最小开放原则,关闭不需要外部访问的端口,仅放行必要的入网地址,避免配置的过于开放而给

云服务器 ECS 安全 > ECS安全组实践(三)

ECS安全组实践(三) 在安全组的使用过程中,通常会将所有的云服务器放置在同一个安全组中,从而可以减少初期配置的工作量.但从长远来看,业务系统网络的交互将变得复杂和不可控.在执行安全组变更时,您将无法明确添加和删除规则的影响范围. 合理规划和区分不同的安全组将使得您的系统更加便于调整,梳理应用提供的服务并对不同应用进行分层.这里推荐您对不同的业务规划不同的安全组,设置不同的安全组规则. 区分不同的安全组 公网服务的云服务器和内网服务器尽量属于不同的安全组 是否对外提供公网服务,包括主动暴露某些端

云服务器 ECS 安全:ECS安全组实践(一)

ECS安全组实践(一) 在云端安全组提供类似虚拟防火墙功能,用于设置单个或多个 ECS 实例的网络访问控制,是重要的安全隔离手段.创建 ECS 实例时,您必须选择一个安全组.您还可以添加安全组规则,对某个安全组下的所有 ECS 实例的出方向和入方向进行网络控制. 本文主要介绍如何配置安全组的入网规则. 安全组相关的信息 在配置安全组的入网规则之前,您应已经了解以下安全组相关的信息: 安全组限制 安全组默认规则 设置安全组 In 方向的访问权限 设置安全组 Out 方向的访问权限 安全组实践的基本

云服务器 ECS 安全:ECS安全组实践(二)

ECS安全组实践(二) 本文将介绍安全组的以下几个内容: 授权 和 撤销 安全组规则. 加入安全组 和 离开安全组. 阿里云的网络类型分为 经典网络 和 VPC,它们对安全组支持不同的设置规则: 如果是经典网络,您可以设置以下几个规则:内网入方向.内网出方向.公网入方向和公网出方向. 如果是 VPC 网络,您可以设置:入方向 和 出方向. 安全组内网通讯的概念 本文开始之前,您应知道以下几个安全组内网通讯的概念: 默认只有同一个安全组的 ECS 实例可以网络互通.即使是同一个账户下的 ECS 实

云服务器 ECS 安全 > ECS数据安全最佳实践

ECS数据安全最佳实践 本文档从云服务器ECS使用的角度出发,结合相关产品和运维架构经验,介绍如何打造云端的数据安全. 适用对象 本文档适用于刚开始接触阿里云的个人或者中小企业用户. 主要内容 定期备份数据 合理设计安全域 安全组规则设置 登录口令设置 服务器端口安全 系统漏洞防护 应用漏洞防护 安全情报收集 定期备份数据 数据备份是容灾的基础,目的是降低因系统故障.操作失误.以及安全问题而导致数据丢失的风险.云服务器ECS自带有快照备份的功能,合理运用ECS快照功能即可满足大部分用户数据备份的

云服务器 ECS 数据恢复:磁盘空间满的问题处理(Windows /Linux ) 及最佳实践

磁盘空间满的问题处理(Windows /Linux ) 及最佳实践 磁盘空间满的问题处理(Windows /Linux)及最佳实践 本文主要介绍window.Linux系统磁盘空间不足时对应的处理方法. 适用对象 适用于使用阿里云ECS的用户. 主要内容 云服务器 ECS Linux磁盘空间满排查处理 云服务器 ECS window磁盘空间满排查处理 ECS Linux磁盘空间满排查处理 Windows磁盘空间满排查处理 解决Windows磁盘空间满的问题,有以下处理方式: 释放磁盘空间 扩充磁

云服务器 ECS 镜像迁移:应用迁云之镜像迁移-(5)阿里云上跨VPC和区域、账号镜像迁移实践

应用迁云之镜像迁移-(5)阿里云上跨VPC和区域.账号镜像迁移实践 目前,阿里云上的镜像迁移主要需求场景如下: 跨VPC迁移ECS实例比如从VPC A迁移到VPC B环境中. 跨区域迁移ECS实例比如从上海区域迁移到杭州区域. 跨账号迁移ECS实例比如从账号A迁移到账户B. 阿里云提供ECS实例快照和自定义镜像,支持系统盘和数据盘的功能,并且自定义镜像可以跨区域复制和共享给其他账号使用.基于这些功能特性,您可以实现跨VPC.跨区域.跨账号的镜像迁移. 跨VPC镜像迁移流程如下: 跨区域镜像迁移流