云服务器内容精选

  • 响应示例 状态码为 200 时: OK { "request_id": "80747d36e3376c0894ba8f9a9156355d", "security_group_rules": [ { "id": "f626eb24-d8bd-4d26-ae0b-c16bb65730cb", "project_id": "060576782980d5762f9ec014dd2f1148", "security_group_id": "0552091e-b83a-49dd-88a7-4a5c86fd9ec3", "remote_group_id": null, "direction": "ingress", "protocol": "tcp", "description": "security group rule description", "created_at": "2020-08-13T07:12:36Z", "updated_at": "2020-08-13T07:12:36Z", "ethertype": "IPv4", "remote_ip_prefix": "10.10.0.0/16", "multiport": "333", "remote_address_group_id": null, "action": "allow", "priority": 1 } ] }
  • URI GET /v3/{project_id}/vpc/security-group-rules 表1 参数说明 名称 是否必选 参数类型 说明 project_id 是 String 项目ID。 获取方法请参见获取项目ID。 表2 Query参数 参数 是否必选 参数类型 描述 limit 否 Integer 功能说明:每页返回的个数。 取值范围:0-2000 marker 否 String 分页查询起始的资源ID,为空时查询第一页。 id 否 Array of strings 功能说明:安全组规则ID,支持多个ID。 security_group_id 否 Array of strings 功能说明:安全组规则所属安全组ID,支持多个ID过滤。 protocol 否 Array of strings 功能说明:安全组规则协议,支持多条过滤。 description 否 Array of strings 功能说明:安全组描述新增。可以使用该字段精确过滤安全组,支持传入多个描述进行过滤。 remote_group_id 否 Array of strings 功能说明:远端安全组ID,支持多ID过滤。 direction 否 String 功能说明:安全组规则方向。 取值范围:ingress表示入方向,egress表示出方向 action 否 String 功能说明:安全组规则生效策略。 remote_ip_prefix 否 String 功能说明:远端IP地址。 取值范围:cidr格式。
  • URI GET /v3/{project_id}/vpc/security-groups 表1 参数说明 名称 是否必选 参数类型 说明 project_id 是 String 项目ID。 获取方法请参见获取项目ID。 表2 Query参数 参数 是否必选 参数类型 描述 limit 否 Integer 功能说明:每页返回的个数。 取值范围:0-2000。 marker 否 String 分页查询起始的资源ID,为空时查询第一页。 id 否 String 功能说明:安全组资源ID。可以使用该字段精确过滤安全组,支持多个ID。 name 否 Array of strings 功能说明:安全组名称。可以使用该字段精确过滤满足条件的安全组,支持传入多个name过滤。 description 否 Array of strings 功能说明:安全组描述新增。可以使用该字段精确过滤安全组,支持传入多个描述进行过滤。 enterprise_project_id 否 String 功能说明:企业项目ID。可以使用该字段过滤某个企业项目下的安全组。 取值范围:最大长度36字节,带“-”连字符的UUID格式,或者是字符串“0”。“0”表示默认企业项目。 约束:若需要查询当前用户所有有权限查看企业项目绑定的安全组,请传参all_granted_eps。
  • 响应示例 状态码为 200 时: OK { "request_id": "d31cb32ca06f3c1a294fa24e6cbc5a56", "security_groups": [ { "id": "0552091e-b83a-49dd-88a7-4a5c86fd9ec3", "name": "Sys-FullAccess--", "project_id": "060576782980d5762f9ec014dd2f1148", "description": "~!@#¥", "enterprise_project_id": "0", "created_at": "2019-10-16T11:11:14Z", "updated_at": "2020-03-25T10:53:46Z" }, { "id": "0b8cb773-197c-4c91-94f1-e051f0563e5a", "name": "test-sg", "project_id": "060576782980d5762f9ec014dd2f1148", "description": "通用Web服务器,默认放通22、3389、80、443端口和ICMP协议。适用于需要远程登录、公网ping及用于网站服务的云服务器场景。", "enterprise_project_id": "0", "created_at": "2019-12-03T09:02:11Z", "updated_at": "2019-12-03T09:02:11Z" } ], "page_info": { "previous_marker": "0552091e-b83a-49dd-88a7-4a5c86fd9ec3", "current_count": 2 } }
  • 默认安全组和规则 默认安全组规则说明如下: 入方向规则:入方向流量受限,只允许安全组内实例互通,拒绝来自安全组外部的所有请求进入实例。 出方向规则:出方向流量放行,允许所有请求从安全组内实例流出。 如图1所示。 图1 默认安全组 默认安全组名称为default,默认安全组和您创建的自定义安全组均不收取费用。 您无法删除默认安全组,可以在默认安全组内修改已有规则或者添加新的规则。 默认安全组是为了简化您初次创建实例的流程,系统为您自动创建的。默认安全组拒绝所有外部请求,如果您需要登录实例,请参见通过本地服务器远程登录云服务器添加安全组规则。 默认安全组规则如表1所示: 表1 默认安全组规则 方向 策略 类型 协议端口 源地址/目的地址 描述 入方向 允许 IPv4 全部 源地址:默认安全组(default) 针对全部IPv4协议,允许安全组内的实例可使用任何协议和端口互相通信,确保安全组内实例网络互通。 入方向 允许 IPv6 全部 源地址:默认安全组(default) 针对全部IPv6协议,允许安全组内的实例可使用任何协议和端口互相通信,确保安全组内实例网络互通。 出方向 允许 IPv4 全部 目的地址:0.0.0.0/0 针对全部IPv4协议,允许所有流量从安全组内实例流出,即实例可访问外部任意IP和端口。 出方向 允许 IPv6 全部 目的地址:::/0 针对全部IPv6协议,允许所有流量从安全组内实例流出,即实例可访问外部任意IP和端口。 首次创建弹性云服务器时,系统会自动新建虚拟私有云vpc-default,同时对安全组进行如下操作: 新增Sys-WebServer安全组 新增Sys-FullAccess安全组 在默认安全组default中新增安全组规则 表2 默认default安全组规则 规则方向 策略 类型 协议端口 源地址/目的地址 描述 入方向规则 允许 IPv4 TCP: 3389 源地址:0.0.0.0/0 针对全部IPv4协议,允许所有IP地址通过默认Windows远程桌面连接到Windows云服务器。 入方向规则 允许 IPv4 TCP: 22 源地址:0.0.0.0/0 针对全部IPv4协议,允许所有IP地址通过SSH远程连接到Linux云服务器。 入方向规则 允许 IPv4 全部 源地址:默认安全组(default) 针对全部IPv4协议,允许本安全组内实例的请求进入,即该条规则确保安全组内的实例网络互通。 入方向规则 允许 IPv6 全部 源地址:默认安全组(default) 针对全部IPv6协议,允许本安全组内实例的请求进入,即该条规则确保安全组内的实例网络互通。 出方向规则 允许 IPv4 全部 目的地址:0.0.0.0/0 针对全部IPv4协议,允许安全组内的实例可访问外部IP的所有端口。 出方向规则 允许 IPv6 全部 目的地址:::/0 针对全部IPv6协议,允许安全组内的实例可访问外部IP的所有端口。 表3 Sys-WebServer安全组规则 规则方向 策略 类型 协议端口 目的地址/源地址 描述 入方向规则 允许 IPv4 ICMP: 全部 源地址:0.0.0.0/0 针对全部IPv4协议,允许在云服务器上使用ping命令验证网络的连通性。 入方向规则 允许 IPv4 全部 源地址:当前安全组(Sys-WebServer) 针对全部IPv4协议,允许本安全组内实例的请求进入,即该条规则确保安全组内的实例网络互通。 入方向规则 允许 IPv4 TCP: 443 源地址:0.0.0.0/0 针对全部IPv4协议,允许所有IP地址通过HTTPS协议访问云服务器上搭建的网站。 入方向规则 允许 IPv4 TCP: 80 源地址:0.0.0.0/0 针对全部IPv4协议,允许所有IP地址通过HTTP协议访问云服务器上搭建的网站。 入方向规则 允许 IPv4 TCP: 22 源地址:0.0.0.0/0 针对全部IPv4协议,允许所有IP地址通过SSH远程连接到Linux云服务器。 入方向规则 允许 IPv4 TCP: 3389 源地址:0.0.0.0/0 针对全部IPv4协议,允许所有IP地址通过默认Windows远程桌面连接到Windows云服务器。 入方向规则 允许 IPv6 全部 源地址:当前安全组(Sys-WebServer) 针对全部IPv6协议,允许本安全组内实例的请求进入,即该条规则确保安全组内的实例网络互通。 出方向规则 允许 IPv4 全部 目的地址:0.0.0.0/0 针对全部IPv4协议,允许安全组内的实例可访问外部IP的所有端口。 出方向规则 允许 IPv6 全部 目的地址:::/0 针对全部IPv6协议,允许安全组内的实例可访问外部IP的所有端口。 表4 Sys-FullAccess安全组规则 规则方向 策略 类型 协议端口 目的地址/源地址 说明 入方向规则 允许 IPv4 全部 源地址:当前安全组(Sys-FullAccess) 针对全部IPv4协议,允许本安全组内实例的请求进入,即该条规则确保安全组内的实例网络互通。 入方向规则 允许 IPv6 全部 源地址:当前安全组(Sys-FullAccess) 针对全部IPv6协议,允许本安全组内实例的请求进入,即该条规则确保安全组内的实例网络互通。 入方向规则 允许 IPv4 全部 源地址:0.0.0.0/0 针对全部IPv4协议,允许所有入站流量的数据报文通过。 入方向规则 允许 IPv6 全部 源地址:::/0 针对全部IPv6协议,允许所有入站流量的数据报文通过。 出方向规则 允许 IPv4 全部 目的地址:0.0.0.0/0 针对全部IPv4协议,允许安全组内的实例可访问外部IP的所有端口。 出方向规则 允许 IPv6 全部 目的地址:::/0 针对全部IPv6协议,允许安全组内的实例可访问外部IP的所有端口。 父主题: 安全组
  • 安全组 安全组是一个逻辑上的分组,为具有相同安全保护需求并相互信任的云服务器提供访问策略。安全组创建后,用户可以在安全组中定义各种访问规则,当云服务器加入该安全组后,即受到这些访问规则的保护。 您也可以根据需要创建自定义的安全组,或使用默认安全组,系统会为每个用户默认创建一个默认安全组,默认安全组的规则是在出方向上的数据报文全部放行,入方向访问受限,安全组内的云服务器无需添加规则即可互相访问。默认安全组您可以直接使用,详情请参见默认安全组和规则。 云上一分钟,了解什么是安全组。 安全组需在网络互通的情况下生效。若实例属于不同VPC,但同属于一个安全组,则此安全组不生效,您可以使用对等连接等产品建立VPC连接互通。VPC连接请参见VPC连接。
  • 安全组的使用限制 为了确保良好的网络性能体验,建议一个实例最多关联5个安全组。 建议一个安全组关联的实例数量不应超过6000个,否则会引起安全组性能下降。 在一个安全组中,对于入方向规则来说,源地址是安全组的规则数量+源地址是IP地址组的规则数量+端口是不连续端口号的规则数量 ≤ 128条,否则超过数量的安全组规则将不生效。出方向的限制和入方向一致。 源地址是安全组时,包括本安全组和其他安全组。 不连续端口号取值示例为22,25,27。 如果您添加安全组规则时,使用IP地址组或者不连续端口,那么该安全组规则对不同规格云服务器的生效情况存在差异,为了避免您的安全组规则不生效,请您查看表1了解详情。 表1 安全组规则限制 安全组规则 云服务器类型 添加安全组规则时,“源地址”和“目的地址”可选择“IP地址组” 不支持的X86云服务器规格如下: 通用计算型(S1型、C1型、C2型 ) 内存优化型(M1型) 高性能计算型(H1型) 磁盘增强型( D1型) GPU加速型(G1型、G2型) 超大内存型(E1型、E2型、ET2型) 添加安全组规则时,“协议端口”可配置为不连续端口号 不支持的X86云服务器规格如下: 通用计算型(S1型、C1型、C2型 ) 内存优化型(M1型) 高性能计算型(H1型) 磁盘增强型( D1型) GPU加速型(G1型、G2型) 超大内存型(E1型、E2型、ET2型) 所有鲲鹏云服务器规格不支持配置不连续端口。 如果您在鲲鹏云服务器中添加安全组规则时,使用了不连续端口号,那么除了该条规则不会生效,该规则后的其他规则也不会生效。比如: 您先配置了安全组规则A(不连续端口号22,24),再配置了下一条安全组规则B(独立端口号9096),则安全组规则A和B均不会生效。 X86云服务器规格详情,请参见规格清单(X86)。 鲲鹏云服务器规格详情,请参见规格清单(鲲鹏)。 当您的组网中存在以下情况时,来自ELB和VPCEP的流量不受网络ACL和安全组规则的限制。 ELB实例的监听器开启“获取客户端IP”功能时,不受限制。 比如规则已明确拒绝来自ELB实例的流量进入后端云服务器,此时该规则无法拦截来自ELB的流量,流量依然会抵达后端云服务器。 VPCEP实例类型为“专业型”时,不受限制。
  • 结果验证 安全组规则配置完成后,我们需要验证对应的规则是否生效。假设您在实例上部署了网站,希望用户能通过TCP(80端口)访问到您的网站,您添加了一条入方向规则,如表3所示。 表3 安全组规则 方向 优先级 策略 类型 协议 端口/范围 源地址 入方向 1 允许 IPv4 TCP 80 0.0.0.0/0 Linux实例上验证该安全组规则是否生效的步骤如下所示。 登录实例。 运行如下命令查看TCP 80端口是否被监听。 netstat -an | grep 80 如果返回结果如图1所示,说明TCP 80端口已开通。 图1 Linux TCP 80端口验证结果 在浏览器地址栏里输入“http://实例的弹性公网IP地址”。 如果访问成功,说明安全组规则已经生效。
  • 云服务器提供数据库访问服务 安全组默认拒绝所有来自外部的请求,如果您在云服器上部署了数据库服务,允许其他实例通过内网访问数据库服务,则您需要在部署数据库服务器所在的安全组内,添加入方向规则,放通对应的端口,实现其他实例通过内网获取数据库数据的请求。常见的数据库类型机器对应的端口如下: MySQL(3306) Oracle(1521) MS SQL(1433) PostgreSQL(5432) Redis(6379) 表9 云服务器提供数据库访问服务 方向 优先级 策略 类型 协议端口 源地址 描述 入方向 1 允许 IPv4 自定义TCP: 3306 安全组:sg-A 允许安全组sg-A内云服务器访问MySQL数据库服务。 入方向 1 允许 IPv4 自定义TCP: 1521 安全组:sg-B 允许安全组sg-B内云服务器访问Oracle数据库服务。 入方向 1 允许 IPv4 自定义TCP: 1433 IP地址:172.16.3.21/32 允许私网IP地址为172.16.3.21的云服务器访问MS SQL数据库服务。 入方向 1 允许 IPv4 自定义TCP: 5432 IP地址:192.168.0.0/24 允许私网IP地址属于192.168.0.0/24网段的云服务器访问PostgreSQL数据库服务。 入方向 1 允许 IPv4 自定义TCP: 6379 IP地址组:ipGroup-A 允许私网IP地址属于IP地址组ipGroup-A范围内的云服务器访问Redis数据库服务。 本示例中源地址提供的配置仅供参考,请您根据实际需求设置源地址。
  • 在本地服务器远程连接云服务器上传或者下载文件(FTP) 安全组默认拒绝所有来自外部的请求,如果您需要在本地服务器远程连接云服务器上传或者下载文件,那么您需要开通FTP(20、21)端口。 表5 在本地服务器远程连接云服务器上传或者下载文件 方向 优先级 策略 类型 协议端口 源地址 入方向 1 允许 IPv4 自定义TCP: 20-21 IP地址:0.0.0.0/0 您需要在弹性云服务器上先安装FTP服务器程序,再查看20、21端口是否正常工作。安装FTP服务器的操作请参见搭建FTP站点(Windows)、搭建FTP站点(Linux)。
  • 在云服务器上搭建网站对外提供Web服务 安全组默认拒绝所有来自外部的请求,如果您在云服务器上搭建了可供外部访问的网站,则您需要在安全组入方向添加对应的规则,放通对应的端口,例如HTTP(80)、HTTPS(443)。 表6 在云服务器上搭建网站对外提供Web服务 方向 优先级 策略 类型 协议端口 源地址 入方向 1 允许 IPv4 自定义TCP: 80 IP地址:0.0.0.0/0 入方向 1 允许 IPv4 自定义TCP: 443 IP地址:0.0.0.0/0
  • 验证网络连通性 ICMP协议用于网络消息的控制和传递,因此在进行一些基本测试操作之前,需要开通ICMP协议访问端口。比如,您需要在某个个人PC上使用ping命令来验证云服务器的网络连通性,则您需要在云服务器所在安全组的入方向添加以下规则,放通ICMP端口。 表7 使用ping命令验证网络连通性 方向 优先级 策略 类型 协议端口 源地址 入方向 1 允许 IPv4 ICMP: 全部 IP地址:0.0.0.0/0 入方向 1 允许 IPv6 ICMP: 全部 IP地址:::/0
  • 实现不同安全组的实例内网网络互通 同一个VPC内,位于不同安全组内的实例网络不通。如果您需要在同一个VPC内的实例之间共享数据,比如安全组sg-A内的云服务器访问安全组sg-B内的MySQL数据库,您需要通过在安全组sg-B中添加一条入方向规则,允许来自安全组sg-A内云服务器的内网请求进入。 表8 实现不同安全组的实例网络互通 方向 优先级 策略 类型 协议端口 源地址 入方向 1 允许 IPv4 自定义TCP: 3306 安全组:sg-A 如果您通过中间网络实例在不同子网的实例之间转发流量,如安全组应用示例中的示例二,子网Subnet-A的ECS通过虚拟IP和子网Subnet-B的ECS互相通信。由于存在中间网络实例,此时安全组规则的源地址选择实例所在的安全组时,无法放通中间网络实例转发的流量,源地址必须设置成中间网络实例的私有IP地址或者子网网段。
  • 限制云服务器访问外部网站 安全组的出方向规则一般默认全部放通,默认规则如表11所示。如果您需要限制服务器只能访问特定网站,则按照如下要求配置: 首先,您需要遵循白名单规则,在安全组出方向规则中添加指定的端口和IP地址。 表10 限制云服务器访问外部网站 方向 优先级 策略 类型 协议端口 目的地址 描述 出方向 1 允许 IPv4 自定义TCP: 80 IP地址:132.15.XX.XX 允许安全组内云服务器访问指定的外部网站,网站地址为http://132.15.XX.XX:80。 出方向 1 允许 IPv4 自定义TCP: 443 IP地址:145.117.XX.XX 允许安全组内云服务器访问指定的外部网站,网站地址为https://145.117.XX.XX:443。 其次,删除安全组出方向中原有放通全部流量的规则,如表11所示。 表11 安全组默认出方向规则 方向 优先级 策略 类型 协议端口 目的地址 描述 出方向 1 允许 IPv4 全部 0.0.0.0/0 针对全部IPv4协议,允许安全组内的实例可访问外部任意IP和端口。 出方向 1 允许 IPv6 全部 ::/0 针对全部IPv6协议,允许安全组内的实例可访问外部任意IP和端口。
  • 使用须知 在配置安全组规则之前,您需要先了解以下信息: 不同安全组之间的实例默认网络隔离,无法互相访问。 安全组默认拒绝所有来自外部的请求,即本安全组内的实例网络互通,外部无法访问安全组内的实例。 您需要遵循白名单原则添加安全组入方向规则,允许来自外部的特定请求访问安全组内的实例。 安全组的出方向规则一般默认全部放通,即允许安全组内的实例访问外部。 如果出方向规则被删除,将会导致安全组内实例无法正常访问外部,您可以参考表1重新添加规则。 表1 安全组默认出方向规则 方向 优先级 策略 类型 协议端口 目的地址 描述 出方向 1 允许 IPv4 全部 0.0.0.0/0 针对全部IPv4协议,允许安全组内的实例可访问外部任意IP和端口。 出方向 1 允许 IPv6 全部 ::/0 针对全部IPv6协议,允许安全组内的实例可访问外部任意IP和端口。