【ECS】ECS安全组实践——入方向规则的最佳实践

简介: 本文介绍配置安全组的入方向规则的最佳实践。您可以通过配置安全组规则,允许或禁止安全组内的ECS实例对公网或私网的访问。

安全组实践建议

您在云端安全组提供类似虚拟防火墙功能,用于设置单台或多台ECS实例的网络访问控制,是重要的安全隔离手段。创建ECS实例时,您必须选择一个安全组。您还可以添加安全组规则,对某个安全组下的所有ECS实例的出方向和入方向进行网络控制。

在使用安全组前,您应先了解以下实践建议:

  • 最重要的规则:安全组应作为白名单使用。
  • 开放应用出入规则时应遵循最小授权原则。例如,您可以选择开放具体的端口,如80端口。
  • 不应使用一个安全组管理所有应用,因为不同的分层一定有不同的需求。
  • 对于分布式应用来说,不同的应用类型应该使用不同的安全组,例如,您应对Web层、Service层、Database层、Cache层使用不同的安全组,暴露不同的出入规则和权限。
  • 避免为每台实例单独设置一个安全组,控制管理成本。
  • 优先考虑专有网络VPC。
  • 不需要公网访问的资源不应提供公网IP。
  • 尽可能保持单个安全组的规则简洁。因为一台实例最多可以加入五个安全组,一个安全组最多可以包括200条安全组规则,所以一台ECS实例可能同时应用数百条安全组规则。您可以聚合所有分配的安全规则以判断是否允许流入或流出,但是,如果单个安全组规则很复杂,就会增加管理的复杂度。
  • 阿里云的控制台提供了克隆安全组和安全组规则的功能。如果您想要修改线上的安全组和规则,您应先克隆一个安全组,再在克隆的安全组上进行调试,避免直接影响线上应用。
    说明 调整线上的安全组的出入规则是比较危险的动作。如果您无法确定,不应随意更新安全组出入规则的设置。


避免设置0.0.0.0/0授权对象

允许全部入网访问是经常犯的错误。使用0.0.0.0/0意味着所有的端口都对外暴露了访问权限。这是非常不安全的。正确的做法是,先拒绝所有的端口对外开放。安全组应该是白名单访问。例如,如果您需要暴露Web服务,默认情况下可以只开放80、8080和443之类的常用TCP端口,其它的端口都应关闭。

{ "IpProtocol" : "tcp", "FromPort" : "80", "ToPort" : "80", "SourceCidrIp" : "0.0.0.0/0", "Policy": "accept"} ,
{ "IpProtocol" : "tcp", "FromPort" : "8080", "ToPort" : "8080", "SourceCidrIp" : "0.0.0.0/0", "Policy": "accept"} ,
{ "IpProtocol" : "tcp", "FromPort" : "443", "ToPort" : "443", "SourceCidrIp" : "0.0.0.0/0", "Policy": "accept"} ,


关闭不需要的入网规则

如果您当前使用的入规则已经包含了0.0.0.0/0,您需要重新审视自己的应用需要对外暴露的端口和服务。如果确定不想让某些端口直接对外提供服务,您可以加一条拒绝的规则。例如,如果您的服务器上安装了MySQL数据库服务,默认情况下您不应该将3306端口暴露到公网,此时,您可以添加一条拒绝规则,如下所示,并将其优先级设为100,即优先级最低。

{ "IpProtocol" : "tcp", "FromPort" : "3306", "ToPort" : "3306", "SourceCidrIp" : "0.0.0.0/0", "Policy": "drop", Priority: 100} ,


上面的调整会导致所有的端口都不能访问3306端口,极有可能会阻止您正常的业务需求。此时,您可以通过授权另外一个安全组的资源进行入规则访问。


以安全组为授权对象添加规则

不同的安全组按照最小原则开放相应的出入规则。对于不同的应用分层应该使用不同的安全组,不同的安全组应有相应的出入规则。

例如,如果是分布式应用,您会区分不同的安全组,但是,不同的安全组可能网络不通,此时您不应该直接授权IP或者CIDR网段,而是直接授权另外一个安全组ID的所有的资源都可以直接访问。例如,您的应用对Web、Database分别创建了不同的安全组:sg-web和sg-database。在sg-database中,您可以添加如下规则,授权所有的sg-web安全组的资源访问您的3306端口。

{ "IpProtocol" : "tcp", "FromPort" : "3306", "ToPort" : "3306", "SourceGroupId" : "sg-web", "Policy": "accept", Priority: 2} ,


以IP地址段为授权对象添加规则

经典网络中,因为网段不太可控,建议您使用安全组ID来授信入网规则。

VPC网络中,您可以自己通过不同的vSwitch设置不同的IP域,规划IP地址。所以,在VPC网络中,您可以默认拒绝所有的访问,再授信自己的专有网络的网段访问,直接授信可以相信的CIDR网段。

{ "IpProtocol" : "icmp", "FromPort" : "-1", "ToPort" : "-1", "SourceCidrIp" : "10.0.0.0/24", Priority: 2} ,
{ "IpProtocol" : "tcp", "FromPort" : "0", "ToPort" : "65535", "SourceCidrIp" : "10.0.0.0/24", Priority: 2} ,
{ "IpProtocol" : "udp", "FromPort" : "0", "ToPort" : "65535", "SourceCidrIp" : "10.0.0.0/24", Priority: 2} ,


变更安全组规则步骤

变更安全组规则可能会影响您的实例间的网络通信。为了保证必要的网络通信不受影响,您应先尝试以下方法放行必要的实例,再执行安全组策略收紧变更。


说明 执行收紧变更后,应观察一段时间,确认业务应用无异常后再执行其它必要的变更。


  • 新建一个安全组,将需要互通访问的实例加入这个安全组,再执行变更操作。
  • 如果授权类型为安全组访问,则将需要互通访问的对端实例所绑定的安全组ID添加为授权对象。
  • 如果授权类型为地址段访问,则将需要互通访问的对端实例内网IP添加为授权对象。

具体操作指引请参见添加安全组规则

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
弹性计算 前端开发 JavaScript
高校学生在家实践ECS弹性云服务器
简单谈谈我这几周使用ECS弹性云服务器的体验感
|
16天前
|
弹性计算 前端开发 JavaScript
高校学生在家实践ECS弹性云服务器
简单谈谈我这几周使用ECS弹性云服务器的体验感
|
4天前
|
缓存 负载均衡 监控
性能优化:Node.js高效服务器开发技巧与最佳实践
【10月更文挑战第29天】在Node.js服务器开发中,性能优化至关重要。本文介绍了几种高效开发的最佳实践,包括使用缓存策略、采用异步编程、实施负载均衡和性能监控。通过示例代码展示了如何实现这些技术,帮助开发者构建更快、更稳定的Node.js应用。
18 2
|
10天前
|
存储 弹性计算 NoSQL
"从入门到实践,全方位解析云服务器ECS的秘密——手把手教你轻松驾驭阿里云的强大计算力!"
【10月更文挑战第23天】云服务器ECS(Elastic Compute Service)是阿里云提供的基础云计算服务,允许用户在云端租用和管理虚拟服务器。ECS具有弹性伸缩、按需付费、简单易用等特点,适用于网站托管、数据库部署、大数据分析等多种场景。本文介绍ECS的基本概念、使用场景及快速上手指南。
40 3
|
14天前
|
弹性计算 前端开发 JavaScript
高校学生在家实践ECS弹性云服务器
简单谈谈我这几周使用ECS弹性云服务器的体验感
|
14天前
|
弹性计算 前端开发 JavaScript
高校学生在家实践ECS弹性云服务器
简单谈谈我这几周使用ECS弹性云服务器的体验感
|
17天前
|
弹性计算 前端开发 JavaScript
高校学生在家实践ECS弹性云服务器
简单谈谈我这几周使用ECS弹性云服务器的体验感
|
19天前
|
弹性计算 前端开发 JavaScript
高校学生在家实践ECS弹性云服务器
简单谈谈我这几周使用ECS弹性云服务器的体验感
|
29天前
|
存储 数据库 虚拟化
无缝过渡:企业级服务器迁移的策略与最佳实践
【10月更文挑战第4天】随着企业数字化转型的加速,服务器迁移成为企业IT基础设施升级的重要环节。本文从架构与规划的视角,探讨了企业级服务器迁移的策略与最佳实践,旨在帮助企业实现无缝过渡,降低迁移风险,提高迁移效率。
112 4
|
29天前
|
SQL 安全 网络安全
守护数字资产:服务器迁移期间的安全挑战与对策
【10月更文挑战第4天】在数字化转型的浪潮中,服务器迁移成为企业不可避免的任务。然而,迁移过程中的安全挑战不容忽视。本文从安全考量的角度,探讨了服务器迁移期间可能遇到的安全问题,并提供了相应的对策和代码示例。
43 3