云服务器内容精选

  • 使用建议 为BMS实例添加安全组规则时遵循最小授权原则。例如: 选择开放具体的端口,而不是端口范围,如80端口。 谨慎授权0.0.0.0/0(全网段)源地址。 不建议使用一个安全组管理所有应用,不同的分层一定有不同的隔离诉求。 不建议为每台BMS实例单独设置一个安全组,您可以将具有相同安全保护需求的实例加入同一个安全组。 建议您设置简洁的安全组规则。例如,如果您给一台BMS实例分配了多个安全组,该实例可能会同时遵循数百条安全组规则,任何一个规则变更都可能引起网络不通的故障。
  • 响应示例 { "security_group_rules": [ { "remote_group_id": "1d8b19c7-7c56-48f7-a99b-4b40eb390967", "direction": "ingress", "remote_ip_prefix": null, "protocol": null, "tenant_id": "6c9298ec8c874f7f99688489ab65f90e", "port_range_max": null, "security_group_id": "1d8b19c7-7c56-48f7-a99b-4b40eb390967", "port_range_min": null, "ethertype": "IPv6", "description": null, "id": "07adc044-3f21-4eeb-bd57-5e5eb6024b7f", "project_id": "6c9298ec8c874f7f99688489ab65f90e", "created_at": "2018-09-20T02:15:34", "updated_at": "2018-09-20T02:15:34", "remote_address_group_id": null }, { "remote_group_id": null, "direction": "egress", "remote_ip_prefix": null, "protocol": null, "tenant_id": "6c9298ec8c874f7f99688489ab65f90e", "port_range_max": null, "security_group_id": "328fb454-a2ee-4a11-bdb1-ee19bbdfde43", "port_range_min": null, "ethertype": "IPv6", "description": null, "id": "09358f83-f4a5-4386-9563-a1e3c373d655", "project_id": "6c9298ec8c874f7f99688489ab65f90e", "created_at": "2018-09-20T02:15:34", "updated_at": "2018-09-20T02:15:34", "remote_address_group_id": null }, { "remote_group_id": "4c763030-366e-428c-be2b-d48f6baf5297", "direction": "ingress", "remote_ip_prefix": null, "protocol": null, "tenant_id": "6c9298ec8c874f7f99688489ab65f90e", "port_range_max": null, "security_group_id": "4c763030-366e-428c-be2b-d48f6baf5297", "port_range_min": null, "ethertype": "IPv6", "description": null, "id": "219a6f56-1069-458b-bec0-df9270e7a074", "project_id": "6c9298ec8c874f7f99688489ab65f90e", "created_at": "2018-09-20T02:15:34", "updated_at": "2018-09-20T02:15:34", "remote_address_group_id": null } ], "security_group_rules_links": [ { "rel": "previous", "href": "https://{Endpoint}/v2.0/ security-group-rules?marker=07adc044-3f21-4eeb-bd57-5e5eb6024b7f&page_reverse=True" } ] }
  • URI GET /v2.0/security-group-rules 样例: GET https://{Endpoint}/v2.0/security-group-rules?security_group_id={security_group_id}&remote_group_id={remote_group_id}&direction={direction}&remote_ip_prefix={remote_ip_prefix}&protocol={protocol}&port_range_max={port_range_max}&port_range_min={port_range_min}ðertype={ethertype}&tenant_id ={tenant_id} 分页查询样例: GET https://{Endpoint}/v2.0/networks?limit=2&marker=07adc044-3f21-4eeb-bd57-5e5eb6024b7f&page_reverse=False 参数说明请参见表1 表1 参数说明 名称 是否必选 参数类型 说明 id 否 String 按照安全组规则对应的id过滤查询结果 description 否 String 按照description过滤查询结果 remote_group_id 否 String 按照与此安全组规则关联的远端安全组ID过滤查询结果 security_group_id 否 String 按照与此安全组规则所属的安全组ID过滤查询结果 direction 否 String 按照安全组规则的方向过滤查询结果,支持ingress和egress进行过滤 protocol 否 String 按照安全组规则的IP协议过滤查询结果 remote_ip_prefix 否 String 按照与此安全组规则匹配的远端IP网段过滤查询结果 ethertype 否 String 按照网络类型过滤查询结果 port_range_max 否 Integer 按照最大端口过滤查询结果 port_range_min 否 Integer 按照最小端口过滤查询结果 tenant_id 否 String 按照项目ID过滤查询结果 marker 否 String 分页查询的起始资源ID,表示从指定资源的下一条记录开始查询。 marker需要和limit配合使用: 若不传入marker和limit参数,查询结果返回第一页全部资源记录。 若不传入marker参数,limit为10,查询结果返回第1~10条资源记录。 若marker为第10条记录的资源ID,limit为10,查询结果返回第11~20条资源记录。 若marker为第10条记录的资源ID,不传入limit参数,查询结果返回第11条及之后的所有资源记录。 limit 否 Integer 分页查询每页返回的记录个数,取值范围为0~intmax(2^31-1),默认值2000。 limit需要和marker配合使用,详细规则请见marker的参数说明。
  • 响应参数 表2 响应参数 参数名称 类型 说明 security_group_rules Array of Security Group Rule objects security group rule对象列表。请参见表3。 security_group_rules_links Array of SecurityGroupRulesLink objects 分页信息。 只有在使用limit过滤,并且资源个数超过limit或者资源个数超过2000时(limit默认值),该参数的rel和href取值才会显示为next和其对应的link。 表3 Security Group Rule对象 属性 类型 说明 id String 安全组规则id 使用说明:查询安全组规则非必选 description String 安全组规则描述 security_group_id String 所属安全组id remote_group_id String 所属安全组的对端id direction String 规则方向 remote_ip_prefix String 对端ip网段 protocol String 协议类型或直接指定IP协议号 port_range_max Integer 最大端口,当协议类型为ICMP时,该值表示ICMP的code port_range_min Integer 最小端口,当协议类型为ICMP时,该值表示ICMP的type。 protocol为tcp和udp时,port_range_max和port_range_min必须同时输入,且port_range_max应大于等于port_range_min。 protocol为icmp时,指定ICMP code(port_range_max)时,必须同时指定ICMP type(port_range_min)。 ethertype String 网络类型 支持IPv4,IPv6 tenant_id String 项目ID remote_address_group_id String 功能说明:远端IP地址组ID。 约束:和remote_ip_prefix,remote_group_id互斥。 project_id String 项目ID,请参见获取项目ID。 created_at String 资源创建时间,UTC时间 格式:yyyy-MM-ddTHH:mm:ss updated_at String 资源更新时间,UTC时间 格式:yyyy-MM-ddTHH:mm:ss 表4 SecurityGroupRulesLink对象 参数名称 类型 说明 href String API链接 rel String API链接与该API版本的关系
  • 响应参数 表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。
  • 响应示例 { "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的获取及企业项目特性的详细信息,请参见《企业管理用户指南》。
  • 响应示例 状态码: 201 POST操作正常返回,更多状态码请参见状态码。 { "security_group_rules" : [ { "id" : "abef369b-d646-4b8a-9f44-fcd248a6c421", "project_id" : "5f6387106c2048b589b369d96c2f23a2", "security_group_id" : "15457509-18f9-4387-bae6-d4ed1898b301", "direction" : "ingress", "protocol" : "tcp", "description" : "", "created_at" : "2023-04-28T04:08:52.000+00:00", "updated_at" : "2023-04-28T04:08:52.000+00:00", "ethertype" : "IPv4", "remote_ip_prefix" : "117.78.12.122/32", "multiport" : 22, "action" : "allow", "priority" : 1, "remote_group_id" : null, "remote_address_group_id" : null } ], "request_id" : "f1ae2c6f9e94babf077cd3b3e1570c81" }
  • 请求示例 在安全组15457509-18f9-4387-bae6-d4ed1898b301中创建入方向规则,忽略重复规则,两条规则相同。 POST https://{Endpoint}/v3/{project_id}/vpc/security-groups/15457509-18f9-4387-bae6-d4ed1898b301/security-group-rules/batch-create { "ignore_duplicate" : true, "security_group_rules" : [ { "direction" : "ingress", "description" : "", "protocol" : "tcp", "action" : "allow", "priority" : 1, "ethertype" : "IPv4", "multiport" : "22", "remote_ip_prefix" : "117.78.12.122/32" }, { "direction" : "ingress", "description" : "", "protocol" : "tcp", "action" : "allow", "priority" : 1, "ethertype" : "IPv4", "multiport" : "22", "remote_ip_prefix" : "117.78.12.122/32" } ] }
  • URI GET /v3/{project_id}/vpc/security-groups 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID。 获取方式请参见获取项目ID。 表2 Query参数 参数 是否必选 参数类型 描述 limit 否 Integer 功能说明:每页返回的个数。 取值范围:0-2000。 marker 否 String 分页查询起始的资源ID,为空时查询第一页。 id 否 Array of strings 功能说明:安全组资源ID。可以使用该字段精确过滤安全组,支持多个ID。 name 否 Array of strings 功能说明:安全组名称。可以使用该字段精确过滤满足条件的安全组,支持传入多个name过滤。 description 否 Array of strings 功能说明:安全组描述新增。可以使用该字段精确过滤安全组,支持传入多个描述进行过滤。 enterprise_project_id 否 String 功能说明:企业项目ID。可以使用该字段过滤某个企业项目下的安全组。 取值范围:最大长度36字节,带“-”连字符的UUID格式,或者是字符串“0”。“0”表示默认企业项目。 约束:若需要查询当前用户所有有权限查看企业项目绑定的安全组,请传参all_granted_eps。
  • 响应示例 状态码: 200 GET操作正常返回,更多状态码请参见状态码。 { "request_id" : "d31cb32ca06f3c1a294fa24e6cbc5a56", "security_groups" : [ { "id" : "0552091e-b83a-49dd-88a7-4a5c86fd9ec3", "name" : "sg-test", "project_id" : "060576782980d5762f9ec014dd2f1148", "description" : "test", "enterprise_project_id" : 0, "created_at" : "2019-10-16T11:11:14.000+00:00", "updated_at" : "2020-03-25T10:53:46.000+00:00", "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:11.000+00:00", "updated_at" : "2019-12-03T09:02:11.000+00:00", "tags" : [ ] } ], "page_info" : { "previous_marker" : "0552091e-b83a-49dd-88a7-4a5c86fd9ec3", "current_count" : 2 } }
  • 安全组 安全组是一个逻辑上的分组,为具有相同安全保护需求并相互信任的云服务器提供访问策略。安全组创建后,用户可以在安全组中定义各种访问规则,当云服务器加入该安全组后,即受到这些访问规则的保护。 您也可以根据需要创建自定义的安全组,或使用默认安全组,系统会为每个用户默认创建一个默认安全组,默认安全组的规则是在出方向上的数据报文全部放行,入方向访问受限,安全组内的云服务器无需添加规则即可互相访问。默认安全组您可以直接使用,详情请参见默认安全组和规则。 安全组需在网络互通的情况下生效。若实例属于不同VPC,但同属于一个安全组,则此安全组不生效,您可以使用对等连接等产品建立VPC连接互通。VPC连接请参见VPC连接。
  • 请求示例 查询安全组资源实例,action为filter时请求体。 POST https://{Endpoint}/v2.0/{project_id}/security-groups/resource_instances/action { "offset" : "0", "limit" : "100", "action" : "filter", "matches" : [ { "key" : "resource_name", "value" : "resource1" } ], "tags" : [ { "key" : "key1", "values" : [ "*value1", "value2" ] } ] } example-2:action为count时请求体 POST https://{Endpoint}/v2.0/{project_id}/security-groups/resource_instances/action { "action" : "count", "tags" : [ { "key" : "key1", "values" : [ "value1", "value2" ] }, { "key" : "key2", "values" : [ "value1", "value2" ] } ], "matches" : [ { "key" : "resource_name", "value" : "resource1" } ] }
  • 响应示例 状态码: 200 请求体action为filter时返回资源tag列表,action为count时返回tag总数 { "resources" : [ { "resource_id" : "cdfs_cefs_wesas_12_dsad", "resource_name" : "resouece1", "tags" : [ { "key" : "key1", "value" : "value1" }, { "key" : "key2", "value" : "value1" } ] } ], "total_count" : 1000 }