关于安全组
IBM Cloud® VPC安全组为您提供了一种便捷的方式,可根据虚拟服务器实例的目标IP地址应用规则,建立过滤。 安全组的目标包括虚拟服务器实例网络接口、端点网关和负载均衡器。 创建安全组时,应对其进行配置,以创建所需的网络流量模式。
缺省情况下,将使用拒绝所有入站流量并允许所有出站流量的规则来设置安全组。 将新规则添加到安全组时,新规则将重新定义允许的入站或出站流量的作用域。
规则是有_状态的_。 要使 有状态 规则意味着当您创建允许单向流量的规则时,该规则会自动允许逆向流量。 例如,如果创建规则以允许端口 80 上的入站 TCP 流量,那么安全组还允许将端口 80 上的出站 TCP 流量回复回发端主机,而不需要其他规则。
安全组的作用域限定为单个 VPC。 这种范围意味着安全组可以附加到同一 VPC 内的任何安全组目标。 您可以设置安全组规则以允许安全组的所有成员之间的流量。
创建 VPC 时,会为其分配一个默认安全组。 您可以修改缺省安全组设置以及各个安全组的规则。
创建使用安全组且未指定安全组的资源时,该资源的主网络接口将连接到该资源的 VPC 的 缺省 安全组。
更新 缺省 安全组的规则是一个与更新缺省安全组不同的过程。 如果编辑缺省安全组的规则,那么这些编辑后的规则将应用于组中的所有当前和未来的服务器。 有关更多信息,请参阅 更新缺省安全组规则。
您不能将安全组嵌套在一起,但可以引用远程安全组。 在规则中引用远程安全组,会将该规则应用到该规则所连接的所有引用安全组目标。
安全组无法在同一区域的不同专区中引用其他安全组。
安全组目标
目标是您将安全组连接到安全组或从中拆离安全组的任何资源。 安全组的目标包括虚拟服务器实例网络接口、端点网关和负载均衡器。
可以发送和接收流量的每个资源都可以为其配置安全组。 这可能包括虚拟服务器接口,裸机服务器,负载均衡器,数据路径上的任何端点网关等。
您可以将安全组与数据路径中的任何资源相关联。
安全组与网络 ACL
安全组与资源绑定,而网络访问控制表 (NACL) 与子网绑定。
NACL 在子网级别适用,因此子网中具有关联 NACL 的任何资源都将遵循 NACL 的规则。 但是,安全组的情况并非如此。 必须将安全组显式分配给资源。 此外,与 NACL 不同,安全组可以应用于跨子网甚至跨专区的多个资源。
NACL 为 无状态。
因为 NACL 不是 _有状态_的,所以如果要允许目标上的两种方式的流量,必须设置两个规则。
定义安全组规则
每个安全组都由一组规则组成。 安全组在允许任何流量进入或离开实例之前检查其所有规则。 用于控制入站流量的规则独立于用于控制出站流量的规则。
创建新的安全组时,最初会限制所有入站流量,并且允许出站流量。 因此,必须向组添加规则以允许传入流量并对出站流量应用限制。
由于一个资源可以有多个与之关联的安全组,因此与该资源关联的每个安全组中的所有规则都将组合在一起以形成单个规则集。 此规则集用于确定是应该拒绝流量还是允许流量进出资源。 对于添加到安全组的每个安全规则,必须指定以下字段的值:
-
Direction-要强制实施的流量方向 (入站或出站)。
-
Protocol-指示此规则适用的协议。 值为
tcp
,udp
,icmp
或all
。- 如果其值为
all
,那么表示此规则适用于所有协议。 然后,指定端口范围(PortMin, PortMax)是无效的。 - 如果协议是
tcp
或udp
,则规则还可以包含端口范围(PortMin, PortMax )。 您必须同时设置这两个端口,也不能同时设置这两个端口。 如果两者都未设置,那么将允许所有端口上的流量。 对于单个端口,必须将两个端口都设置为相同的值。 - 当协议为
icmp
时,您可以选择指定type
属性。 如果指定,那么仅允许指定 ICMP 类型的 ICMP 流量。 此外,如果指定type
,那么可以选择指定代码属性以仅允许指定 ICMP 代码的流量。
- 如果其值为
-
远程-描述此规则允许流量的网络接口集 (或出站规则允许流量的网络接口集)。 可以将此值指定为 IP 地址,CIDR 块或单个安全组的所有标识 (标识,CRN 和名称)。 如果省略此值,那么将使用
0.0.0.0/0
的 CIDR 块来允许来自任何源 (或针对出站规则的任何源) 的流量。
有关使用 CLI 设置安全组规则的更多信息,请参阅 命令列表备忘单。 有关使用 API 设置安全组规则的更多信息,请参阅 使用 API 为虚拟服务器实例设置安全组。
入门
首先,决定是否要为资源创建新的安全组,然后 创建安全组。
安全组用例
创建安全组是用户应用用于过滤进出其资源的网络流量模式的规则的标准方法。 您执行以下操作的能力取决于您在帐户中的授权级别。 如果您对帐户授权有疑问,请与管理员联系。
用例 1: 更改资源的缺省安全组
每个 VPC 都有一个缺省安全组,这是为用户创建的安全组。 该缺省安全组还具有缺省规则。 此缺省规则是在通过添加或除去规则来定制安全组的设置之前分配给您创建的安全组的相同缺省规则。
缺省安全组与新安全组的缺省规则不同。 您可以定制缺省安全组上的规则以及分配给新安全组的缺省规则。
例如,假设您是组织的一部分,并且有权访问组织帐户的人员会将缺省安全组的规则修改为与创建新安全组时获取的缺省规则不同。 您的团队成员是非常有安全意识的客户,他们会更改缺省安全组设置以拒绝所有入站和出站网络流量。
在此示例中,如果创建新资源,那么最初会将其分配给 VPC 的缺省安全组。 此缺省安全组的规则会拒绝所有入站和出站网络流量,因为您的安全意识团队成员设置了拒绝规则。 因此,进出新资源的流量将应用此拒绝行为。
继续此示例,如果您对团队成员设置的缺省安全组规则感到不满,那么一个解决方案是使用定制设置创建新的安全组并将其应用于资源。 另一个解决方案是更改缺省安全组上的规则。 使用定制设置创建新的安全组是最简单的解决方案,因为您可以创建适用于要影响的单个资源的规则。 如果更改缺省安全组的规则,那么这些更改不仅将应用于要影响的资源,还将应用于已分配给缺省安全组的所有其他资源。
您在缺省安全组上创建的任何新规则都将应用于分配给缺省安全组的所有当前资源和未来资源。
有关更新缺省安全组的更多信息,请参阅 更新缺省安全组规则。
用例 2: 在创建新资源时定制安全组和规则
下图说明了创建新资源时的潜在定制选项。 如果用户创建新资源,并且不再执行任何进一步的操作来指定要将其附加到的安全组,那么会将其新资源分配给 VPC 的缺省安全组。 此缺省安全组将采用缺省安全组规则,或者遵循先前由帐户成员配置的定制规则。
如果用户决定将新资源分配给新安全组,那么会自动将缺省安全组规则分配给新安全组。 然后,用户可以选择不执行进一步操作,或者选择定制规则以针对其新安全组创建定制安全组规则。 这些新规则也适用于创建并分配给新安全组的新资源:
用例 3: 允许安全组成员之间的流量
设置安全组的更常规方法是使用按 IP 地址和端口过滤的特定规则来控制进出目标的流量。
可以更动态地设置安全组的方法是允许来自其他目标 (也是安全组的一部分) 的所有入站流量。 当您允许安全组成员之间的流量时,当从安全组添加或删除资源时,不必在每个当前成员与安全组的每个新成员之间设置单独的许可权。
例如,假设您在安全组中有主机 A 和主机 B,并添加新的主机 C。 通常,在将主机 C 添加到安全组之后,必须执行维护以允许主机 A 和主机 B 发送与主机 C 之间的流量。
为了使此过程更容易,您可以定义一个规则,在此规则中,只要来自组的另一个成员,就允许所有流量。 然后,当您在组中添加或除去成员时,规则会自动更改以允许该组的成员在彼此之间发送流量。
以下是用于在安全组中定义规则以允许该安全组的成员之间的所有流量的 UI 指示信息:
- 从浏览器中,打开 IBM Cloud 控制台。
- 选择导航菜单
,然后单击基础架构 > 网络 > 安全组。
- 在安全组中,选择要修改的安全组对象。
- 单击 入站规则 表右上角的 创建 + 按钮。 此时将显示“创建入站规则”窗口。
- 在 协议 部分中,选择 全部。
- 在 源类型 部分中,选择 安全组。
- 单击 创建 以应用这些更改。