全部产品
云服务器 ECS

应用案例

更新时间:2017-09-19 16:24:42   分享:   

创建安全组和添加安全组规则的详细操作,请参考文档:创建安全组添加安全组规则。常用端口的安全组规则配置,请参考 安全组规则的典型应用

本文档介绍的案例仅适用于经典网络。如果您需要适用于 专有网络(VPC)的安全组应用案例,请参考 专有网络 (VPC) 文档里的 ECS实例公网访问控制

除了提供安全保障,您还可以使用安全组实现:

案例 1:实现内网互通

在经典网络下,您可以使用安全组实现不同 ECS 实例间的内网互通。有两种情况:

  • 场景 1:实例属于同一个地域、同一个账号
  • 场景 2:实例属于同一个地域、不同账号

场景 1:同一地域、同一账号

同一地域、同一账号的 2 个实例:

  • 如果在同一个安全组内,默认内网互通,不需要设置。
  • 如果不属于同一个安全组,默认内网不通。您需要在实例各自所在安全组中分别添加一条安全组规则,授权另一个安全组内的实例访问本安全组内的实例,实现内网互通。
网卡类型 规则方向 授权策略 协议类型 端口范围 优先级 授权类型 授权对象
内网 入方向 允许 全部 -1/-1 1 安全组访问(本账号授权) 选择允许访问的实例所在的安全组 ID

场景 2:同一地域、不同账号

同一个地域内、不同账号下,经典网络下可以通过安全组访问实现不同 ECS 实例之间内网互通。比如:

  • UserA 用户在 华东 1 有一台经典网络的 ECS 实例 InstanceA(内网 IP:A.A.A.A),InstanceA 所属的安全组为 GroupA。
  • UserB 用户在 华东 1 有一台经典网络的 ECS 实例 InstanceB(内网 IP:B.B.B.B),InstanceB 所属的安全组为 GroupB。

安全组规则如下:

在 GroupA 中添加安全组规则,授权 InstanceB 内网访问 InstanceA

网卡类型 规则方向 授权策略 协议类型 端口范围 授权类型 授权对象 优先级
内网 入方向 允许 全部 -1/-1 安全组访问(跨账号授权) GroupB 的 ID,并在 账号 ID 里添加 UserB 的 ID 1

在 GroupB 中添加安全组规则,授权 InstanceA 内网访问

网卡类型 规则方向 授权策略 协议类型 端口范围 授权类型 授权对象 优先级
内网 入方向 允许 全部 -1/-1 安全组访问(跨账号授权) GroupA 的 ID,并在 账号 ID 里添加 UserA 的 ID 1

注意: 出于安全性的考虑,经典网络的内网入方向规则,授权类型优先选择 安全组访问;如果选择 地址段访问,则仅支持单 IP 授权,授权对象的格式只能是 a.b.c.d/32,其中 IP 地址应根据您的实际需求设置,仅支持 IPv4,子网掩码必须是 /32

案例 2:屏蔽、拦截、阻断特定 IP 对 ECS 实例或实例特定端口的访问

如果需要使用安全组屏蔽、拦截、阻止特定 IP 对您的 ECS 实例的访问,或者屏蔽 IP 访问 ECS 实例的特定端口(如本例中的 TCP 22 端口),您可以根据需要添加以下规则:

添加安全组规则,拒绝特定 IP 地址段对 ECS 的访问

网卡类型 规则方向 授权策略 协议类型 端口范围 授权类型 授权对象 优先级
公网 入方向 拒绝 全部 -1/-1 地址段访问 待屏蔽的 IP 地址段,格式为 a.b.c.d/e,比如 1.2.3.4/5。 1

添加安全组规则,拒绝特定 IP 地址段对 ECS 特定端口(如 TCP 22 端口)的访问

网卡类型 规则方向 授权策略 协议类型 端口范围 授权类型 授权对象 优先级
公网 入方向 拒绝 SSH(22) 22/22 地址段访问 待屏蔽的 IP 地址段,格式为 a.b.c.d/e,比如 1.2.3.4/5。 1

案例 3:只允许特定 IP 远程登录到实例

如果您只想让某些特定 IP 远程登录到实例,您需要在实例所在安全组里添加以下 2 条规则:(以 Linux 服务器为例,设置只让特定 IP 访问 TCP 22 端口)

添加一条安全组规则:允许特定 IP 访问 TCP 22 端口,优先级为 1,优先级最高,最先执行

网卡类型 规则方向 授权策略 协议类型 端口范围 授权类型 授权对象 优先级
公网 入方向 允许 SSH(22) 22/22 地址段访问 允许远程连接的 IP 地址,格式为 a.b.c.d,比如 1.2.3.4。 1

再添加一条安全组规则:拒绝其他 IP 访问 TCP 22 端口,优先级为 2,低于优先级为 1 的规则

网卡类型 规则方向 授权策略 协议类型 端口范围 授权类型 授权对象 优先级
公网 入方向 拒绝 SSH(22) 22/22 地址段访问 0.0.0.0/0 2

完成设置后:

  • 来自 IP 1.2.3.4 访问 TCP 22 端口优先执行优先级为 1 的规则,允许访问。
  • 来自其他 IP 访问 22 端口优先执行优先级为 2 的规则,拒绝访问。

案例 4:只允许实例访问外部特定 IP

如果您只想让实例访问特定的 IP,您需要在实例所在安全组里添加以下 2 条规则:

先添加一条安全组规则:禁止访问任何公网 IP,优先级(如本例中的 2)应低于允许访问的规则

网卡类型 规则方向 授权策略 协议类型 端口范围 授权类型 授权对象 优先级
公网 出方向 拒绝 全部 -1/-1 地址段访问 0.0.0.0/0 2

再添加一条安全组规则:允许访问特定公网 IP,优先级(如本例中的 1)应高于拒绝访问的安全组规则的优先级

网卡类型 规则方向 授权策略 协议类型 端口范围 授权类型 授权对象 优先级
公网 出方向 允许 全部 -1/-1 地址段访问 允许实例访问的特定公网 IP 地址,格式为 x.x.x.x,比如 1.2.3.4。 1

添加了安全组规则后,在实例内部进行 ping、telnet 等测试,除了指定允许访问的 IP 地址外其他 IP 地址均不通,说明安全组规则已经生效。

案例 5:允许远程登录到实例

在经典网络里,允许远程登录到 ECS 实例分为两种情况:

  • 场景 1:允许公网远程登录到指定实例
  • 场景 2:允许内网其他账号某个 ECS 实例或所有 ECS 实例远程登录到指定实例

场景 1:允许公网远程登录到实例

如果您需要允许公网远程登录到实例,需要添加如下表所示的安全组规则:

网卡类型 规则方向 授权策略 协议类型 端口范围 授权类型 授权对象 优先级
公网 入方向 允许 Windows:RDP(3389) RDP:3389/3389 地址段访问 如果允许任意公网 IP 登录,填写 0.0.0.0/0。如果只允许特定 IP 远程登录,填写指定的 IP 地址。 1
Linux:SSH(22) SSH:22/22
自定义 TCP 自定义

自定义远程连接端口的操作,参考文档:服务器默认远程端口修改

场景 2:允许内网其他账号某个安全组内的 ECS 实例远程登录到您的实例

如果您要允许内网其他账号的某个安全组内的 ECS 实例远程登录到实例,在确保实例内网互通后,您需要添加如下表所示的安全组规则。

允许内网其他账号某个实例 IP 登录您的实例

网卡类型 规则方向 授权策略 协议类型 端口范围 授权类型 授权对象 优先级
内网 入方向 允许 Windows:RDP(3389) RDP:3389/3389 地址段访问 x.x.x.x,如 10.10.10.1/32 1
Linux:SSH(22) SSH:22/22
自定义 TCP 自定义

允许内网其他账号某个安全组里的所有 ECS 实例登录您的实例

网卡类型 规则方向 授权策略 协议类型 端口范围 授权类型 授权对象 优先级
内网 入方向 允许 Windows:RDP(3389) 3389/3389 安全组访问(跨账号授权) ECS 实例所属的安全组 ID,并填写对方账号 ID 1
Linux:SSH(22) 22/22
自定义 TCP 自定义

案例 6:允许公网通过 HTTP、HTTPS 等服务访问实例

如果您在实例上架设了一个网站,希望您的用户能通过 HTTP 或 HTTPS 服务访问到您的网站,您需要在实例所在安全组中添加以下安全组规则。

网卡类型 规则方向 授权策略 协议类型 端口范围 授权类型 授权对象 优先级
公网 入方向 允许 HTTP(80) 80/80 地址段访问 0.0.0.0/0 1
HTTPS(443) 443/443
自定义 TCP 自定义,如 8080/8080

说明

本文导读目录
本文导读目录
以上内容是否对您有帮助?