云服务器内容精选

  • 响应示例 { "security_group": { "id": "16b6e77a-08fa-42c7-aa8b-106c048884e6", "name": "qq", "description": "", "vpc_id": "3ec3b33f-ac1c-4630-ad1c-7dba1ed79d85", "enterprise_project_id": "0aad99bc-f5f6-4f78-8404-c598d76b0ed2", "security_group_rules": [ { "id": "f11a3824-ac19-4fad-b4f1-c5f4a6dd0a80", "tenant_id": "060576782980d5762f9ec014dd2f1148", "security_group_id": "69c999ad-d9ef-4d79-94fd-35e6ceb75325", "remote_group_id": "69c999ad-d9ef-4d79-94fd-35e6ceb75325", "direction": "ingress", "protocol": null, "description": "", "ethertype": "IPv6", "remote_ip_prefix": null, "remote_address_group_id": null, "port_range_max": null, "port_range_min": null }, { "id": "3d6480e8-9ea4-46dc-bb1b-8db190cd5677", "tenant_id": "060576782980d5762f9ec014dd2f1148", "security_group_id": "69c999ad-d9ef-4d79-94fd-35e6ceb75325", "remote_group_id": null, "direction": "egress", "protocol": null, "description": "", "ethertype": "IPv6", "remote_ip_prefix": null, "remote_address_group_id": null, "port_range_max": null, "port_range_min": null }, { "id": "9581f18c-1fdd-43da-ace9-7758a56ef28a", "tenant_id": "060576782980d5762f9ec014dd2f1148", "security_group_id": "69c999ad-d9ef-4d79-94fd-35e6ceb75325", "remote_group_id": null, "direction": "egress", "protocol": null, "description": "", "ethertype": "IPv4", "remote_ip_prefix": null, "remote_address_group_id": null, "port_range_max": null, "port_range_min": null }, { "id": "a3ba270e-e58b-432d-a912-aeb7eace9fb8", "tenant_id": "060576782980d5762f9ec014dd2f1148", "security_group_id": "69c999ad-d9ef-4d79-94fd-35e6ceb75325", "remote_group_id": "69c999ad-d9ef-4d79-94fd-35e6ceb75325", "direction": "ingress", "protocol": null, "description": "", "ethertype": "IPv4", "remote_ip_prefix": null, "remote_address_group_id": null, "port_range_max": null, "port_range_min": null } ] } }
  • 请求示例 创建一个安全组,命名为sg-01,所在vpc id为3ec3b33f-ac1c-4630-ad1c-7dba1ed79d85。 POST https://{Endpoint}/v1/{project_id}/security-groups { "security_group": { "name": "sg-01", "vpc_id": "3ec3b33f-ac1c-4630-ad1c-7dba1ed79d85", "enterprise_project_id": "0aad99bc-f5f6-4f78-8404-c598d76b0ed2" } }
  • 请求参数 表2 请求参数 名称 是否必选 参数类型 说明 security_group 是 security_group object 安全组对象,请参见表3。 表3 security_group字段说明 名称 是否必选 参数类型 说明 name 是 String 功能说明:安全组名称。 取值范围:1-64个字符,支持数字、字母、中文、_(下划线)、-(中划线)、.(点)。 vpc_id 否 String 安全组所在的vpc的资源标识。 说明: 当前该参数只作提示用,不约束安全组在此vpc下,不建议继续使用。 enterprise_project_id 否 String 功能说明:企业项目ID。创建安全组时,给安全组绑定企业项目ID。 取值范围:最大长度36字节,带“-”连字符的UUID格式,或者是字符串“0”。“0”表示默认企业项目。 说明: 关于企业项目ID的获取及企业项目特性的详细信息,请参见《企业管理用户指南》。
  • 响应参数 表4 响应参数 名称 参数类型 说明 security_group security_group object 安全组对象,请参见表5。 表5 security_group字段说明 名称 参数类型 说明 name String 安全组名称。 description String 安全组描述。 id String 安全组唯一标识。 vpc_id String 安全组所在的vpc的资源标识。 说明: 当前该参数只作提示用,不约束安全组在此vpc下,不建议继续使用。 security_group_rules Array of security_group_rule objects 默认安全组规则列表,保证安全组内互通。 enterprise_project_id String 功能说明:企业项目ID。创建安全组时,给安全组绑定企业项目ID。 取值范围:最大长度36字节,带“-”连字符的UUID格式,或者是字符串“0”。“0”表示默认企业项目。 说明: 关于企业项目ID的获取及企业项目特性的详细信息,请参见《企业管理用户指南》。 表6 security_group_rule对象 名称 参数类型 说明 id String 安全组规则标识。 description String 功能说明:安全组规则描述。 取值范围:0-255个字符,支持数字、字母、中文字符。 security_group_id String 安全组标识。 direction String 功能说明:出入控制方向。 取值范围: egress:出方向 ingress:入方向 ethertype String 功能说明:IP协议类型。 取值范围:IPv4,IPv6 protocol String 功能说明:协议类型。 取值范围:icmp、tcp、udp、icmpv6、IP协议号(0~255)(如gre协议号为47)。 约束:为空表示支持所有协议。 port_range_min Integer 功能说明:起始端口值。 取值范围:1~65535 约束:不能大于port_range_max的值,为空表示所有端口,如果协议是icmp类型,取值范围请参见安全组规则icmp协议名称对应关系表。 port_range_max Integer 功能说明:结束端口值。 取值范围:1~65535 约束:协议不为icmp时,取值不能小于port_range_min的值,为空表示所有端口,如果协议是icmp类型,取值范围请参见安全组规则icmp协议名称对应关系表。 remote_ip_prefix String 功能说明:远端IP地址,当direction是egress时为虚拟机访问端的地址,当direction是ingress时为访问虚拟机的地址。 取值范围:IP地址,或者cidr格式 约束:和remote_group_id,remote_address_group_id互斥。 remote_group_id String 功能说明:对端安全组id。 约束:和remote_ip_prefix,remote_address_group_id互斥。 remote_address_group_id String 功能说明:远端IP地址组ID。 约束:和remote_ip_prefix,remote_group_id互斥。 tenant_id String 功能说明:安全组规则所属项目ID。
  • 操作场景 安全组类似防火墙功能,是一个逻辑上的分组,用于设置网络访问控制。用户可以在安全组中定义各种访问规则,当云耀云服务器加入该安全组后,即受到这些访问规则的保护。 入方向:入方向规则放通入方向网络流量,指从外部访问安全组规则下的云耀云服务器。 出方向:出方向规则放通出方向网络流量。指安全组规则下的云耀云服务器访问安全组外的实例。 默认安全组规则请参见默认安全组和规则。常用的安全组规则配置示例请参见安全组配置示例。
  • 结果验证 安全组规则配置完成后,我们需要验证对应的规则是否生效。假设您在云耀云服务器上部署了网站,希望用户能通过HTTP(80端口)访问到您的网站,您添加了一条入方向规则,如表3所示。 表3 安全组规则 方向 协议/应用 端口 源地址 入方向 TCP 80 0.0.0.0/0 Linux云耀云服务器 Linux云耀云服务器上验证该安全组规则是否生效的步骤如下所示。 登录云耀云服务器。 运行如下命令查看TCP 80端口是否被监听。 netstat -an | grep 80 如果返回结果如图3所示,说明TCP 80端口已开通。 图3 Linux TCP 80端口验证结果 在浏览器地址栏里输入“http://云耀云服务器的弹性公网IP地址”。 如果访问成功,说明安全组规则已经生效。
  • 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", "tags": [] }, { "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", "tags": [] } ], "page_info": { "previous_marker": "0552091e-b83a-49dd-88a7-4a5c86fd9ec3", "current_count": 2 } }
  • 限制云服务器访问外部网站 安全组的出方向规则一般默认全部放通,默认规则如表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和端口。
  • 云服务器提供数据库访问服务 安全组默认拒绝所有来自外部的请求,如果您在云服器上部署了数据库服务,允许其他实例通过内网访问数据库服务,则您需要在部署数据库服务器所在的安全组内,添加入方向规则,放通对应的端口,实现其他实例通过内网获取数据库数据的请求。常见的数据库类型机器对应的端口如下: 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
  • 使用ping命令验证网络连通性 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的E CS 通过虚拟IP和子网Subnet-B的ECS互相通信。由于存在中间网络实例,此时安全组规则的源地址选择实例所在的安全组时,无法放通中间网络实例转发的流量,源地址必须设置成中间网络实例的私有IP地址或者子网网段。
  • 使用须知 在配置安全组规则之前,您需要先了解以下信息: 不同安全组之间的实例默认网络隔离,无法互相访问。 安全组默认拒绝所有来自外部的请求,即本安全组内的实例网络互通,外部无法访问安全组内的实例。 您需要遵循白名单原则添加安全组入方向规则,允许来自外部的特定请求访问安全组内的实例。 安全组的出方向规则一般默认全部放通,即允许安全组内的实例访问外部。 如果出方向规则被删除,将会导致安全组内实例无法正常访问外部,您可以参考表1重新添加规则。 表1 安全组默认出方向规则 方向 优先级 策略 类型 协议端口 目的地址 描述 出方向 1 允许 IPv4 全部 0.0.0.0/0 针对全部IPv4协议,允许安全组内的实例可访问外部任意IP和端口。 出方向 1 允许 IPv6 全部 ::/0 针对全部IPv6协议,允许安全组内的实例可访问外部任意IP和端口。