腾讯云安全组使用最佳实践

安全组是一种有状态的包过滤功能虚拟防火墙,用于设置单台或多台云服务器的网络访问控制,是腾讯云提供的重要的网络安全隔离手段。

安全组是一个逻辑上的分组,可以将同一地域内具有相同网络安全隔离需求的基础网络云服务器或弹性网卡实例加到同一个安全组内。通过安全组策略对实例的出入流量进行安全过滤,修改安全组规则后新规则立即生效。

下图展示了子网ACL和安全组的关系:

本文阐述了使用安全组的一些最佳实践。

1. 注意安全组规则限制

  • 安全组区分地域和项目,CVM 只能与相同地域、相同项目中的安全组进行绑定。
  • 安全组适用于任何处在 网络环境 下的 CVM 实例。
  • 每个用户在每个地域每个项目下最多可设置 50 个安全组。
  • 一个安全组入站方向或出站方向的访问策略,各最多可设定 100 条。
  • 一个 CVM 可以加入多个安全组,一个安全组可同时关联多个 CVM ,数量无限制。

2. 安全组的优先级

实例绑定多个安全组时的优先级为:数字越小,优先级越高。

安全组内规则的优先级为:位置越上,优先级越高。

3.使用VPC FLOW LOG

网络流日志(Flow logs)提供 全时、全流、非侵入 的弹性网卡流量采集,可将网络流量进行实时的存储、分析,可以用于解决故障排查、合规审计、架构优化、安全检测 等问题。

利用 VPC 流日志可捕获传入 / 传出 VPC 中弹性网卡 IP 流量。流日志的主要应用场景有:

  • 快速定位问题根源的云服务器,如:广播风暴、带宽的过度使用的云服务器。
  • 快速定位云服务器不可访问是否为安全组或 ACL 设置不合理。

具体使用方法可以参考流日志的官方文档

4.使用合适的命名规范

每家公司都有自己的命名规范,建议安全组的也遵循相关的命名规范,方便后续进行管理。例如,可以遵循如下的命名规范:

“腾讯云地域 + 环境代码 + 操作系统类型 + 系统分层 + 应用代码”

腾讯云地域: BJ(华北),SH(华东),GZ(华南)

环境代码:P-Production(生产环境) , Q-QA, T-testing(测试环境), D-Development(开发环境)

操作系统类型: L -Linux, W-Windows

系统分层: W-Web, A-App, C-Cache, D-DB

应用代码:= A001

举例:安全组命名: BJ-P-L-W-A001, 代表:北京地域、生产环境、Linux系统、Web层、应用A001的安全组

5.安全组的个数

对一个多层的web APP,通常会有多少个安全组?

选择1:一个安全组用于多层是最简单的配置,但是对于生产环境不推荐这样的配置;

选择2:对每个主机分别配置安全组,运维起来太复杂,也不推荐这样的配置;

选择3:对于每层应用分别配置安全组, 例如 CLB 安全组,Web安全组,业务逻辑安全组, DB安全组, Cache层安全组。

建议选择第三种方式。

6.不要轻易开放0.0.0.0/0

在安全组中设置规则,除非一定需要,否则不要对0.0.0.0/0开放某一个端口。

通常情况下只有web server对外提供服务,443和80端口需要对0.0.0.0/0开放。

0.0.0.0/0,TCP, 80, 允许任意IP访问HTTP

0.0.0.0/0,TCP, 443, 允许任意IP访问HTTPS

7. 限制子账号修改安全组

对子账号做权限控制时,建议取消安全组全读写权限。只开放安全组只读权限。QcloudDFWReadOnlyAccess。

只对管理员开放安全组读写权限QcloudDFWFullAccess。

子账号的配置方法,请参考文档:访问管理

8.SSH/RDP 公网连接只对跳板机开放

云主机的公网SSH/RDP连接应该使用安全组规则禁用掉, 只允许通过跳板机SSH/RDP连接到云主机。

跳板机是唯一允许公网SSH/RDP连接的云主机。

9.关闭不需要的系统端口

只开放对外提供服务的端口,例如对web server开放80,443, 对MySQL开放3306端口。 其他不需要的端口建议都关闭掉。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券