Skip to content

用安全组控制入站和出站流量

最后更新 查看 Markdown

安全组是绑定在网络接口上的一份"只加白名单"规则集。每条规则放行特定的入站或出站流量,没有被任何规则匹配到的流量,按安全组的默认策略处理。面板顶部有一条常驻提示:"安全组只添加允许规则;未匹配的入站流量默认拒绝,出站流量默认允许。"

给一张网络接口绑定安全组,可能让整台实例的入站流量都切换为默认拒绝——包括没有绑定任何安全组的其他网络接口。 默认策略作用在整台实例上,不是逐张网络接口生效。对多网卡实例来说,只给私网网卡绑定安全组,也可能在绑定生效的那一刻连带切断公网网卡的入站流量。在给任何网络接口绑定安全组之前,先看清楚本页后面"绑定安全组到网络接口"一节里绑定会做什么。

界面示意图:VPC 详情页的安全组面板:顶部常驻的说明提示、安全组列表(含规则数和已绑定网络接口数列)、以及新建安全组按钮

开始之前

  • 列出目标实例上的每一张网络接口,确认哪些已经绑定了安全组。绑定影响的是整台实例,不只是下拉框里选中的那一张。
  • 先把需要放行的端口——SSH、RDP 或其他管理端口——加入规则,再执行绑定,不要反过来。
  • 明白解绑最后一张网络接口会把整机防火墙彻底关闭。 这不是部分回退,详见下文"解绑安全组"。

创建安全组

  1. 在 VPC 详情页,进入安全组面板。
  2. 点击新建安全组。
  3. 填写名称,描述为可选项。
  4. 点击保存。

新建的安全组规则数为零,也没有绑定到任何网络接口。创建本身不会影响任何实例——风险从绑定这一步才开始,不是从创建开始。

添加允许规则

  1. 在安全组列表中,点击目标安全组的编辑图标。
  2. 点击添加规则。
  3. 选择协议。选择 TCP 或 UDP 会出现起始和结束端口字段;其他协议不需要填写端口。
  4. 如果出现端口字段,填写起始端口和结束端口。起始端口不在 1-65535 之间会被拒绝并提示"起始端口必须在 1-65535 之间";结束端口小于起始端口或大于 65535 会被拒绝并提示"结束端口必须不小于起始端口,且不超过 65535"。
  5. 选择远程来源:CIDR 或 IP List,二选一。两者都不填会阻止保存,提示"请选择 CIDR 或 IP List"。
  6. 点击保存。
界面示意图:编辑安全组规则对话框:含协议、端口、远程来源列的规则表格、添加规则按钮、规则数计数器,以及规则列表为空时出现的警告横幅

一个安全组最多容纳 50 条规则,对话框里会实时显示当前计数。规则列表为空时点击保存或关闭,会出现警告"当前没有允许规则,入站将全部拒绝。"这条警告只出现在这里、也就是编辑规则的对话框里——它不会出现在真正触发绑定的网络接口下拉框上,所以看到这条警告本身不是危险时刻,把一个空安全组绑定到网络接口上才是。

绑定安全组到网络接口

绑定用的下拉框没有二次确认:选中即生效。

在选择安全组之前,先看下面这张表,了解会发生什么:

对象 会发生什么 不会发生什么
该实例的防火墙 整机被启用,入站默认策略改为拒绝,出站默认策略保持允许 变化不会只停留在你选中的那张网络接口上
同一实例上的其他网络接口 只要自己没有绑定安全组,也会一起切换为入站默认拒绝 不会继续保持它们原来的开放状态
被绑定安全组的规则 作为入站放行的例外生效 规则列表为空不会等效于"全部放行"
出站流量 继续保持默认允许 不受本次绑定影响
生效方式 以异步工作请求执行,面板提示"绑定已更新,正在同步实例防火墙" 下拉框关闭的那一刻,新规则不保证已经生效

如果实例还没有完成配置,绑定只会更新记录本身。此时没有防火墙可同步,面板提示改为"绑定已更新"。

  1. 在 VPC 详情页,进入网络接口面板。
  2. 找到目标网络接口,打开它的安全组下拉框。
  3. 选择要绑定的安全组。
界面示意图:网络接口面板:某一行的安全组下拉框展开状态,显示可选安全组列表和用于解绑的空白选项

打开工作请求确认同步已经完成。

解绑安全组

解绑用的是同一个下拉框:选中空白选项,而不是某个安全组。

解绑一台实例上最后一张已绑定的网络接口之前,先看下面这张表:

对象 会发生什么 不会发生什么
被解绑的网络接口 不再受该安全组规则的过滤 不会停留在某种"部分开放"的中间状态
该实例上的其他部分,如果这是实例最后一张已绑定的网络接口 整机防火墙被彻底关闭,流量恢复为完全开放,等同于从未绑定过任何安全组的状态 不会以更安全、更收敛的形式保留原来的默认拒绝策略
该实例上的其他部分,如果其他网络接口仍绑定着安全组 保持默认拒绝,不受这次解绑影响 解绑一张网络接口不会连带关闭其他网络接口的防火墙

在多网卡实例上,单独解绑一张网络接口并不等于完整回退。只有当这台实例上不再有任何网络接口绑定安全组时,整机的默认拒绝策略才会关闭。

修改规则会影响所有绑定该安全组的实例

保存安全组的规则改动,会重新同步当前绑定它的每一张网络接口所在的防火墙,覆盖所有正在使用这个安全组的实例。如果多台实例共用同一个安全组——例如一个项目里的全部 Web 服务器——修改一条规则会在同一次操作里影响所有这些实例,不只是你正在查看的那一台。

删除安全组

  1. 在安全组列表中,点击目标安全组的删除图标。
  2. 确认对话框内容:确认删除安全组「{{name}}」?此操作无法撤销。
  3. 点击删除安全组确认。
界面示意图:安全组列表中处于禁用状态的删除图标及其提示文字,旁边是删除确认对话框

只要还有任何网络接口绑定着这个安全组,删除图标就会保持禁用,鼠标悬停会显示"请先从所有 ENI 解绑"。先把它从每一张网络接口上解绑,再执行删除。

绑定和解绑不会影响什么

  • 出站流量。 无论入站规则多少、无论是否绑定了安全组,出站始终保持默认允许。
  • 实例本身、其存储和正在运行的负载。 这是网络访问控制,不是电源或存储操作。
  • 控制台访问。 它走的是管理面,而不是实例的网络接口,所以即使入站网络流量被完全拒绝,控制台依然可用。
  • 没有执行绑定动作的实例。 新建但未绑定的安全组,在你把它挂到某张网络接口之前,不会影响任何实例。

操作被拒绝时

面板会用你的界面语言原样显示平台返回的提示,下面按提示分类列出,并说明处理方法。

获取安全组失败

获取安全组失败

面板未能拉取这个 VPC 下的安全组列表。刷新页面重试;如果持续失败,打开工作请求确认这个 VPC 本身状态正常。

创建、保存或删除安全组失败

创建安全组失败

保存安全组失败

删除安全组失败

创建、保存规则或删除请求本身失败——例如网络错误或登录状态过期。安全组在这次操作前的状态不受影响。重试该操作即可。

更新安全组绑定失败

更新安全组绑定失败

绑定或解绑请求在写入之前就失败了,下拉框会自动恢复为之前的值。重新选择一次即可。

相关文档

这篇文档对你有帮助吗?