华为云用户手册

  • 请求示例 创建ACL,命名为network_acl_test1。 POST https://{Endpoint}/v3/{project_id}/vpc/firewalls { "firewall": { "name": "network_acl_test1", "description": "network_acl_test1", "enterprise_project_id": "158ad39a-dab7-45a3-9b5a-2836b3cf93f9" } }
  • 响应示例 状态码: 201 ACL创建API的POST操作正常返回 { "firewall" : { "id" : "e9a7731d-5bd9-4250-a524-b9a076fd5629", "name" : "network_acl_test1", "description" : "network_acl_test1", "project_id" : "9476ea5a8a9849c38358e43c0c3a9e12", "created_at" : "2022-04-07T07:30:46", "updated_at" : "2022-04-07T07:30:46", "admin_state_up" : true, "enterprise_project_id" : "158ad39a-dab7-45a3-9b5a-2836b3cf93f9", "status" : "ACTIVE", "tags" : [ ], "ingress_rules" : [ ], "egress_rules" : [ ], "associations" : [ ] } }
  • 请求消息体(可选) 该部分可选。请求消息体通常以结构化格式(如JSON或XML)发出,与请求消息头中Content-Type对应,传递除请求消息头之外的内容。若请求消息体中的参数支持中文,则中文字符必须为UTF-8编码。 每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消息体为空),GET、DELETE操作类型的接口就不需要消息体,消息体具体内容需要根据具体接口而定。 对于管理员创建IAM用户接口,您可以从接口的请求部分看到所需的请求参数及参数说明,将消息体加入后的请求如下所示,其中加粗的字段需要根据实际值填写。 accountid为IAM用户所属的账号ID。 username为要创建的IAM用户名。 email为IAM用户的邮箱。 **********为IAM用户的登录密码。 POST https://iam.cn-north-4.myhuaweicloud.com/v3.0/OS-USER/users Content-Type: application/json X-Sdk-Date: 20240416T095341Z Authorization: SDK-HMAC-SHA256 Access=****************, SignedHeaders=content-type;host;x-sdk-date, Signature=**************** { "user": { "domain_id": "accountid", "name": "username", "password": "**********", "email": "email", "description": "IAM User Description" } } 到这里为止这个请求需要的内容就具备齐全了,您可以使用curl、Postman或直接编写代码等方式发送请求调用API。对于获取用户Token接口,返回的响应消息头中的“X-Subject-Token”就是需要获取的用户Token。有了Token之后,您就可以使用Token认证调用其他API。
  • 请求URI 请求URI由如下部分组成: {URI-scheme}://{Endpoint}/{resource-path}?{query-string} 尽管请求URI包含在请求消息头中,但大多数语言或框架都要求您从请求消息中单独传递它,所以在此单独强调。 表1 URI中的参数说明 参数 描述 URI-scheme 表示用于传输请求的协议,当前所有API均采用HTTPS协议。 Endpoint 指定承载REST服务端点的服务器域名或IP,不同服务不同区域的Endpoint不同,您可以从地区和终端节点获取。 例如IAM服务在“华北-北京四”区域的Endpoint为“iam.cn-north-4.myhuaweicloud.com”。 resource-path 资源路径,即API访问路径。从具体API的URI模块获取,例如“获取用户Token”API的resource-path为“/v3/auth/tokens”。 query-string 查询参数,是可选部分,并不是每个API都有查询参数。查询参数前面需要带一个“?”,形式为“参数名=参数取值”,例如“?limit=10”,表示查询不超过10条数据。 例如您需要获取IAM在“华北-北京四”区域的Token,则需使用“华北-北京四”区域的Endpoint(iam.cn-north-4.myhuaweicloud.com),并在管理员创建IAM用户的URI部分找到resource-path(/v3.0/OS-USER/users),拼接起来如下所示。 1 https://iam.cn-north-4.myhuaweicloud.com/v3.0/OS-USER/users 图1 URI示意图 为方便查看,在每个具体API的URI部分,只给出resource-path部分,并将请求方法写在一起。这是因为URI-scheme都是HTTPS,而Endpoint在同一个区域也相同,所以简洁起见将这两部分省略。
  • 请求方法 HTTP请求方法(也称为操作或动词),它告诉服务您正在请求什么类型的操作。 表2 HTTP方法 方法 说明 GET 请求服务器返回指定资源。 PUT 请求服务器更新指定资源。 POST 请求服务器新增资源或执行特殊操作。 DELETE 请求服务器删除指定资源,如删除对象等。 HEAD 请求服务器资源头部。 PATCH 请求服务器更新资源的部分内容。 当资源不存在的时候,PATCH可能会去创建一个新的资源。 在管理员创建IAM用户的URI部分,您可以看到其请求方法为“POST”,则其请求为: 1 POST https://iam.cn-north-1.myhuaweicloud.com/v3.0/OS-USER/users
  • 请求消息头 附加请求头字段,如指定的URI和HTTP方法所要求的字段。例如定义消息体类型的请求头“Content-Type”,请求鉴权信息等。 详细的公共请求消息头字段请参见表3。 表3 公共请求消息头 名称 描述 是否必选 示例 Host 请求的服务器信息,从服务API的URL中获取。值为hostname[:port]。端口缺省时使用默认的端口,https的默认端口为443。 否 使用AK/SK认证时该字段必选。 code.test.com or code.test.com:443 Content-Type 消息体的类型(格式)。推荐用户使用默认值application/json,有其他取值时会在具体接口中专门说明。 是 application/json Content-Length 请求body长度,单位为Byte。 否 3495 X-Project-Id project id,项目编号。请参考获取项目ID章节获取项目编号。 否 如果是专属云场景采用AK/SK认证方式的接口请求,或者多project场景采用AK/SK认证的接口请求,则该字段必选。 e9993fc787d94b6c886cbaa340f9c0f4 X-Auth-Token 用户Token。 用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头(Headers)中包含的“X-Subject-Token”的值即为Token值。 否 使用Token认证时该字段必选。 注:以下仅为Token示例片段。 MIIPAgYJKoZIhvcNAQcCo...ggg1BBIINPXsidG9rZ API同时支持使用AK/SK认证,AK/SK认证使用SDK对请求进行签名,签名过程会自动往请求中添加Authorization(签名认证信息)和X-Sdk-Date(请求发送的时间)请求头。 AK/SK认证的详细说明请参见认证鉴权的“AK/SK认证”。 对于管理员创建IAM用户接口,使用AK/SK方式认证时,添加消息头后的请求如下所示。 1 2 3 4 POST https://iam.cn-north-1.myhuaweicloud.com/v3.0/OS-USER/users Content-Type: application/json X-Sdk-Date: 20240416T095341Z Authorization: SDK-HMAC-SHA256 Access=****************, SignedHeaders=content-type;host;x-sdk-date, Signature=****************
  • 请求示例 关联路由表3d42a0d4-a980-4613-ae76-a2cddecff054和子网1a8b8c98-3976-401b-a735-8b058109268c。 POST https://{Endpoint}/v1/6fbe9263116a4b68818cf1edce16bc4f/routetables/3d42a0d4-a980-4613-ae76-a2cddecff054/action { "routetable": { "subnets": { "associate": [ "1a8b8c98-3976-401b-a735-8b058109268c" ] } } }
  • 响应示例 { "routetable": { "id": "3d42a0d4-a980-4613-ae76-a2cddecff054", "vpc_id": "ab78be2d-782f-42a5-aa72-35879f6890ff", "description": "abc", "routes": [ { "type": "ecs", "destination": "10.10.10.0/24", "nexthop": "7c50463d-d36c-4417-aa85-cc11fa10f341", "description": "abc" } ], "subnets": [ { "id": "8d4ce32f-d68a-4c4c-9f18-c68d8a5c7f2f" } ], "tenant_id": "6fbe9263116a4b68818cf1edce16bc4f", "created_at": "2022-12-15T02:56:40", "updated_at": "2022-12-15T03:05:10" } }
  • 请求参数 表2 请求参数 名称 是否必选 参数类型 说明 routetable 是 routetable object 路由表对象,参见表3。 表3 routetable字段说明 名称 是否必选 参数类型 说明 subnets 是 subnet object 功能说明:路由表所关联的子网。 约束:只能关联路由表所属vpc下的子网 表4 subnet字段说明 名称 是否必选 参数类型 说明 associate 否 Array of strings 路由表关联子网ID列表 disassociate 否 Array of strings 路由表解除关联子网ID列表
  • 响应示例 { "firewall_group": { "status": "ACTIVE", "public": false, "egress_firewall_policy_id": null, "name": "bobby_fwg1", "admin_state_up": true, "ports": [ "16e6d779-15e9-48fb-abc5-b86457792a15" ], "tenant_id": "23c8a121505047b6869edf39f3062712", "id": "a504a4cf-9300-40e0-b2d4-649bd157c55a", "ingress_firewall_policy_id": "fed2d88f-d0e7-4cc5-bd7e-c495f67037b6", "description": "test", "project_id": "23c8a121505047b6869edf39f3062712", "created_at": "2018-09-12T08:24:14", "updated_at": "2018-09-12T08:24:14" } }
  • 响应参数 表2 响应参数 参数名称 类型 说明 firewall_group firewall_group object firewall group对象。请参见表3。 表3 Firewall Group对象 属性 类型 说明 id String 网络ACL组的uuid标识。 name String 网络ACL组名称。 description String 网络ACL组描述。 tenant_id String 项目ID ingress_firewall_policy_id String 入方向网络ACL策略。 egress_firewall_policy_id String 出方向网络ACL策略。 ports Array of strings 网络ACL组绑定的端口列表。 public Boolean 是否支持跨租户共享。 status String 网络ACL策略的状态。 取值范围: ACTIVE:正常 INACTIVE:未激活 ERROR:错误 PENDING_CREATE:创建中 PENDING_UPDATE:更新中 PENDING_DELETE:删除中 admin_state_up Boolean 网络ACL的管理状态。 project_id String 项目ID,请参见获取项目ID。 created_at String 资源创建时间,UTC时间 格式:yyyy-MM-ddTHH:mm:ss updated_at String 资源更新时间,UTC时间 格式:yyyy-MM-ddTHH:mm:ss
  • 响应示例 { "port": { "id": "7204e0da-40de-4207-a536-6f59b84f6f0e", "name": "adc", "status": "DOWN", "admin_state_up": "true", "fixed_ips": [ { "subnet_id": "689156ca-038f-4478-b265-fd26aa8bbe31", "ip_address": "192.168.0.9" } ], "mac_address": "fa:16:3e:d7:f2:6c", "network_id": "b4152e98-e3af-4e49-bb7f-7766e2b5ec63", "tenant_id": "caa6cf4337ea47fb823b15709ebe8591", "device_id": "", "device_owner": "", "security_groups": [ "59b39002-e79b-4bac-8e27-aa884ab1beb6" ], "extra_dhcp_opts": [], "allowed_address_pairs": [], "binding:vnic_type": "normal", "enable_efi": false } }
  • 响应参数 表5 响应参数 名称 参数类型 说明 port port object 端口对象,请参见表6。 表6 port字段说明 名称 参数类型 说明 id String 端口唯一标识。 name String 功能说明:端口名称。 取值:默认为空,最大长度不超过255。 network_id String 功能说明:端口所属网络的ID。 约束:必须是存在的网络ID。 说明: 网络ID的获取方式: 方法1:登录虚拟私有云服务的控制台界面,单击VPC下的子网,进入子网详情页面,查找网络ID。 方法2:通过虚拟私有云服务的API接口查询,具体操作可参考查询子网列表 admin_state_up Boolean 功能说明:管理状态。 约束:默认为true。 mac_address String 功能说明:端口MAC地址。 约束:由系统分配,不支持指定。 fixed_ips Array of fixed_ip objects 功能说明:端口IP,请参见表7。例如:"fixed_ips": [{"subnet_id": "4dc70db6-cb7f-4200-9790-a6a910776bba", "ip_address": "192.169.25.79"}]。 约束:ipv4场景下,一个端口只支持一个fixed_ip,且不支持更新。ipv6场景下,一个端口最多可以支持两个fixed_ip,且不支持更新。 device_id String 功能说明:端口所属设备ID。 约束:不支持设置和更新,由系统自动维护。 device_owner String 功能说明:设备所属(DHCP/Router/ lb/Nova)。 取值范围:network:dhcp,network:router_interface_distributed,compute:xxx(xxx对应具体的可用区名称,例如compute:aa-bb-cc表示是被可用区aa-bb-cc上的ECS使用),neutron:VIP_PORT,neutron:LOADBALANCERV2,neutron:LOADBALANCERV3,network:endpoint_interface,network:nat_gateway,network:ucmp。 使用说明:不支持更新,只允许用户在创建虚拟IP端口时,为虚拟IP端口设置device_owner为neutron:VIP_PORT,当端口的该字段不为空时,仅支持该字段为neutron:VIP_PORT时的端口删除。 tenant_id String 项目ID。 status String 功能说明:端口状态,Hana硬直通虚拟机端口状态总为DOWN。 取值范围:ACTIVE、BUILD、DOWN。 security_groups Array of strings 安全组的UUID(扩展属性)。 allowed_address_pairs Array of allowed_address_pairs objects 功能说明:IP/Mac对列表,请参见表8。 约束:IP地址不允许为 “0.0.0.0/0”。 如果allowed_address_pairs配置地址池较大的CIDR(掩码小于24位),建议为该port配置一个单独的安全组。 如果allowed_address_pairs的IP地址为“1.1.1.1/0”,表示关闭源目地址检查开关。 如果allowed_address_pairs回显值为云服务器网卡IP地址,表示虚拟IP的端口处于绑定状态。 被绑定的云服务器网卡allowed_address_pairs的IP地址填“1.1.1.1/0”。 extra_dhcp_opts Array of extra_dhcp_opt objects DHCP的扩展Option(扩展属性),请参见表9。 binding:vif_details binding:vif_details object vif的详细信息,参见表10。 binding:profile Object 扩展属性:提供用户设置自定义信息。 【使用说明】 internal_elb字段,布尔类型,普通租户可见。只有在创建内网ELB的虚拟IP的网卡时设置为true。普通租户没有权限更改该字段,由系统维护。 举例: {"internal_elb": true} disable_security_groups字段,布尔类型,普通租户可见。默认为false高性能通信场景下,允许指定为true普通租户可见。仅支持创建port和读取时指定。当前仅支持指定为true,不支持指定为false。 举例: {"disable_security_groups":true }, 当前仅支持指定为true,不支持指定为false,指定为true时,FWaaS功能不生效。 仅对于“华北-北京二”区域:udp_srvports和tcp_srvports,字段,字符串类型,默认不设置udp_srvports和tcp_srvports字段。允许指定udp_srvports和tcp_srvports字段为端口号,表示这些端口的tcp报文和udp报文可支持高并发连接,但是此类报文不受ACL和安全组规则的限制。udp_srvports和tcp_srvports字段同时支持更新操作。 格式: {"tcp_srvports": "port1 port2 port3", "udp_srvports": "port1 port2 port3"} 端口号之间以空格间隔,最多允许指定的端口号总共为15个,端口号范围是1到65535。 示例: {"tcp_srvports": "80 443", "udp_srvports": "53"} 示例表示入方向目的端口为80或者443的tcp报文可支持高并发连接。入方向目的端口为53的udp报文可支持高并发连接。但是此类报文不受ACL和安全组规则的限制。 binding:vnic_type String 功能说明:绑定的vNIC类型。 取值范围:normal,软交换;direct,SRIOV硬直通(不支持)。 dns_assignment Array of dns_assignment objects 功能说明:主网卡默认内网域名信息。 约束:不支持设置和更新,由系统自动维护。 dns_name String 功能说明:主网卡默认内网DNS名称。 约束:不支持设置和更新,由系统自动维护。 instance_id String 功能说明:端口所属实例ID,例如RDS实例ID。 约束:不支持设置和更新,由系统自动维护。 instance_type String 功能说明:端口所属实例类型,例如“RDS”。 约束:不支持设置和更新,由系统自动维护。 port_security_enabled Boolean 功能说明:端口安全使能标记,如果不使能则安全组和dhcp防欺骗不生效。 zone_id String 端口所属的可用分区。 enable_efi Boolean 功能说明:是否使能efi,使能则表示端口支持vRoCE能力,默认为false。 ipv6_bandwidth_id String 功能说明:IPv6网卡绑定的共享带宽ID。 约束:只有IPv6网卡绑定了共享带宽,才会显示此参数。 表7 fixed_ip对象 名称 参数类型 说明 subnet_id String 功能说明:所属子网ID。 如果您使用管理控制台,此值即为子网详情中的“IPv4子网ID”或“IPv6子网ID”参数值。 约束:不支持更新。 ip_address String 端口IP地址。 表8 allowed_address_pairs对象 名称 参数类型 说明 ip_address String 功能说明:IP地址。 约束:不支持0.0.0.0/0。 如果allowed_address_pairs配置地址池较大的CIDR(掩码小于24位),建议为该port配置一个单独的安全组。 如果allowed_address_pairs的IP地址为“1.1.1.1/0”,表示关闭源目地址检查开关。 被绑定的云服务器网卡allowed_address_pairs的IP地址填“1.1.1.1/0”。 mac_address String MAC地址。默认使用本端口的MAC地址。 表9 extra_dhcp_opt对象 名称 参数类型 说明 opt_name String DHCP选项名称,目前仅支持填写“51”,表示DHCP租约时间。 opt_value String 功能说明:DHCP选项的值。 当“opt_name”为“51”时,参数格式为“Xh”,表示DHCP租约时间为X小时。 “X”的取值范围为1~30000或“-1”,“-1”表示DHCP租约时间无限长。 表10 binding:vif_details对象 名称 参数类型 说明 primary_interface Boolean 取值为true,表示是虚拟机的主网卡。 port_filter Boolean 表示该网络服务提供端口过滤特性,如安全组和反MAC/IP欺骗。 ovs_hybrid_plug Boolean 用于通知像nova这样的API消费者,应该使用OVS的混合插入策略。 表11 dns_assignment对象 名称 参数类型 说明 hostname String 端口hostname。 ip_address String 端口IP地址。 fqdn String 端口内网fqdn。
  • 请求参数 名称 是否必选 参数类型 说明 port 是 port object 端口对象,请参见表2。 更新操作时至少指定一项属性。 表2 port字段说明 名称 是否必选 参数类型 说明 name 否 String 功能说明:端口名称。 取值范围:默认为空,最大长度不超过255。 security_groups 否 Array of strings 扩展属性:安全组的UUID。 约束:不支持更新为空。 allowed_address_pairs 否 Array of allowed_address_pairs objects 功能说明:IP/Mac对列表,allow_address_pair参见表3。 约束:IP地址不允许为 “0.0.0.0/0”。 如果allowed_address_pairs配置地址池较大的CIDR(掩码小于24位),建议为该port配置一个单独的安全组。 如果allowed_address_pairs的IP地址为“1.1.1.1/0”,表示关闭源目地址检查开关。 为虚拟IP配置后端ECS场景,allowed_address_pairs中配置的IP地址,必须为ECS网卡已有的IP地址,否则可能会导致虚拟IP通信异常。 被绑定的云服务器网卡allowed_address_pairs的IP地址填“1.1.1.1/0”。 extra_dhcp_opts 否 Array of extra_dhcp_opt objects DHCP的扩展Option(扩展属性),请参见表4。 表3 allowed_address_pairs对象 名称 是否必选 参数类型 说明 ip_address 是 String 功能说明:IP地址。 约束:不支持0.0.0.0/0。 如果allowed_address_pairs配置地址池较大的CIDR(掩码小于24位),建议为该port配置一个单独的安全组。 如果allowed_address_pairs的IP地址为“1.1.1.1/0”,表示关闭源目地址检查开关。 被绑定的云服务器网卡allowed_address_pairs的IP地址填“1.1.1.1/0”。 如果填写allowed_address_pairs参数,则ip_address是必选参数。 mac_address 否 String MAC地址。默认使用当前端口的MAC地址。 表4 extra_dhcp_opt对象 名称 是否必选 参数类型 说明 opt_name 否 String DHCP选项名称,目前仅支持填写“51”,表示DHCP租约时间。 opt_value 否 String 功能说明:DHCP选项的值。 当“opt_name”为“51”时,参数格式为“Xh”,表示DHCP租约时间为X小时。 “X”的取值范围为1~30000或“-1”,“-1”表示DHCP租约时间无限长。
  • 响应示例 { "vpcs": [ { "id": "13551d6b-755d-4757-b956-536f674975c0", "name": "default", "description": "test", "cidr": "172.16.0.0/16", "status": "OK", "enterprise_project_id": "0", "routes": [], "tenant_id": "087679f0aa80d32a2f4ec0172f5e902b", "created_at": "2022-12-15T02:11:13", "updated_at": "2022-12-15T02:11:13" }, { "id": "3ec3b33f-ac1c-4630-ad1c-7dba1ed79d85", "name": "222", "description": "test", "cidr": "192.168.0.0/16", "status": "OK", "enterprise_project_id": "0635d733-c12d-4308-ba5a-4dc27ec21038", "routes": [], "tenant_id": "087679f0aa80d32a2f4ec0172f5e902b", "created_at": "2022-12-15T04:01:21", "updated_at": "2022-12-15T04:01:21" }, { "id": "99d9d709-8478-4b46-9f3f-2206b1023fd3", "name": "vpc", "description": "test", "cidr": "192.168.0.0/16", "status": "OK", "enterprise_project_id": "0", "routes": [], "tenant_id": "087679f0aa80d32a2f4ec0172f5e902b", "created_at": "2022-12-15T05:36:29", "updated_at": "2022-12-15T05:36:29" } ] }
  • URI GET /v1/{project_id}/vpcs 样例: GET https://{Endpoint}/v1/{project_id}/vpcs?limit=10&marker=13551d6b-755d-4757-b956-536f674975c0 参数说明请参见表1。 表1 参数说明 名称 是否必选 参数类型 说明 project_id 是 String 项目ID,获取项目ID请参见获取项目ID。 id 否 String 按照VPC 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的参数说明。 enterprise_project_id 否 String 功能说明:按照企业项目ID过滤查询,可以使用该字段过滤某个企业项目下的虚拟私有云。 取值范围:最大长度36字节,带“-”连字符的UUID格式,或者是字符串“0”。“0”表示默认企业项目。若需要查询当前用户所有企业项目绑定的虚拟私有云,请传参all_granted_eps。 说明: 关于企业项目ID的获取及企业项目特性的详细信息,请参见《企业管理用户指南》。
  • Token认证 Token的有效期为24小时,需要使用一个Token鉴权时,可以先缓存起来,避免频繁调用。 Token在计算机系统中代表令牌(临时)的意思,拥有Token就代表拥有某种权限。Token认证就是在调用API的时候将Token加到请求消息头中,从而通过身份认证,获得操作API的权限。Token可通过调用获取用户Token接口获取。 调用VPC API需要项目级别的Token,即调用获取用户Token接口时,请求body中auth.scope的取值需要选择project,如下所示。 { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", //IAM用户名 "password": "********", //IAM用户密码 "domain": { "name": "domainname" //IAM用户所属账号名 } } } }, "scope": { "project": { "name": "xxxxxxxx" //项目名称 } } } } 获取Token后,再调用其他接口时,您需要在请求消息头中添加“X-Auth-Token”,其值即为Token。例如Token值为“ABCDEFJ....”,则调用接口时将“X-Auth-Token: ABCDEFJ....”加到请求消息头即可,如下所示。 1 2 3 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/projects Content-Type: application/json X-Auth-Token: ABCDEFJ.... 您还可以通过这个视频教程了解如何使用Token认证:https://bbs.huaweicloud.com/videos/101333。
  • AK/SK认证 AK/SK签名认证方式仅支持消息体大小在12MB以内,12MB以上的请求请使用Token认证。 AK/SK认证就是使用AK/SK对请求进行签名,在请求时将签名信息添加到消息头,从而通过身份认证。 AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。 SK(Secret Access Key):私有访问密钥。与访问密钥ID结合使用,对请求进行加密签名,可标识发送方,并防止请求被修改。 使用AK/SK认证时,您可以基于签名算法使用AK/SK对请求进行签名,也可以使用专门的签名SDK对请求进行签名。详细的签名方法和SDK使用方法请参见API签名指南。 签名SDK只提供签名功能,与服务提供的SDK不同,使用时请注意。
  • 请求示例 创建安全组,指定名称为security_group_1,描述为security group description。 "POST https://{Endpoint}/v3/{project_id}/vpc/security-groups" { "security_group": { "name": "security_group_1", "description": "security group description" } } 创建安全组,指定名称为security_group_1,描述为security group description,指定预检该请求。 "POST https://{Endpoint}/v3/{project_id}/vpc/security-groups" { "security_group": { "name": "security_group_1", "description": "security group description", "tags": [{ "key": "key1", "value": "value1" }] }, "dry_run": true }
  • 响应示例 状态码为 201 时: Created { "security_group": { "id": "69c999ad-d9ef-4d79-94fd-35e6ceb75325", "name": "security_group_1", "project_id": "060576782980d5762f9ec014dd2f1148", "description": "security group description", "enterprise_project_id": "0", "security_group_rules": [ { "id": "f11a3824-ac19-4fad-b4f1-c5f4a6dd0a80", "project_id": "060576782980d5762f9ec014dd2f1148", "security_group_id": "69c999ad-d9ef-4d79-94fd-35e6ceb75325", "remote_group_id": "69c999ad-d9ef-4d79-94fd-35e6ceb75325", "direction": "ingress", "protocol": null, "description": "", "created_at": "2020-07-09T05:56:27Z", "updated_at": "2020-07-09T05:56:27Z", "ethertype": "IPv6", "remote_ip_prefix": null, "multiport": null, "remote_address_group_id": null, "action": "allow", "priority": 100 }, { "id": "3d6480e8-9ea4-46dc-bb1b-8db190cd5677", "project_id": "060576782980d5762f9ec014dd2f1148", "security_group_id": "69c999ad-d9ef-4d79-94fd-35e6ceb75325", "remote_group_id": null, "direction": "egress", "protocol": null, "description": "", "created_at": "2020-07-09T05:56:27Z", "updated_at": "2020-07-09T05:56:27Z", "ethertype": "IPv6", "remote_ip_prefix": null, "multiport": null, "remote_address_group_id": null, "action": "allow", "priority": 100 }, { "id": "9581f18c-1fdd-43da-ace9-7758a56ef28a", "project_id": "060576782980d5762f9ec014dd2f1148", "security_group_id": "69c999ad-d9ef-4d79-94fd-35e6ceb75325", "remote_group_id": null, "direction": "egress", "protocol": null, "description": "", "created_at": "2020-07-09T05:56:27Z", "updated_at": "2020-07-09T05:56:27Z", "ethertype": "IPv4", "remote_ip_prefix": null, "multiport": null, "remote_address_group_id": null, "action": "allow", "priority": 100 }, { "id": "a3ba270e-e58b-432d-a912-aeb7eace9fb8", "project_id": "060576782980d5762f9ec014dd2f1148", "security_group_id": "69c999ad-d9ef-4d79-94fd-35e6ceb75325", "remote_group_id": "69c999ad-d9ef-4d79-94fd-35e6ceb75325", "direction": "ingress", "protocol": null, "description": "", "created_at": "2020-07-09T05:56:27Z", "updated_at": "2020-07-09T05:56:27Z", "ethertype": "IPv4", "remote_ip_prefix": null, "multiport": null, "remote_address_group_id": null, "action": "allow", "priority": 100 } ], "created_at": "2020-07-09T05:56:27Z", "updated_at": "2020-07-09T05:56:27Z" }, "request_id": "a8cf4f79ca3c22ca685e7e8872e8c20b" }
  • 响应示例 { "routetable": { "id": "05250d7e-0396-4fc9-9c9c-e4d5594784e4", "name": "rtb-vpc-l2cg-1", "routes": [ { "type": "local", "destination": "192.168.4.0/24", "nexthop": "-" }, { "type": "local", "destination": "192.168.1.0/24", "nexthop": "-" }, { "type": "local", "destination": "198.19.128.0/20", "nexthop": "-" }, { "type": "local", "destination": "127.0.0.0/8", "nexthop": "-" }, { "type": "local", "destination": "100.64.0.0/10", "nexthop": "-" } ], "subnets": [ { "id": "0e0faa8f-ea73-47aa-b919-8c133e98d5ac" }, { "id": "e007e005-10aa-4614-b439-c9a14e55130e" } ], "vpc_id": "7978e43c-f892-49d8-9fab-9bb90a51709b", "default": true, "tenant_id": "05e369f07a800f802f41c002632ba5f9", "created_at": "2022-12-15T02:56:40", "updated_at": "2022-12-15T02:56:40" } }
  • 请求示例 更新id为1d8b19c7-7c56-48f7-a99b-4b40eb390967的安全组,名称更新为security_group_2,描述更新为modified description。 "PUT https://{Endpoint}/v3/{project_id}/vpc/security-groups/1d8b19c7-7c56-48f7-a99b-4b40eb390967" { "security_group" : { "name" : "security_group_2", "description" : "modified description" } }
  • 响应示例 状态码为 200 时: OK { "security_group" : { "id" : "69c999ad-d9ef-4d79-94fd-35e6ceb75325", "name" : "security_group_2", "project_id" : "060576782980d5762f9ec014dd2f1148", "description" : "modified description", "enterprise_project_id" : "0", "security_group_rules" : [ { "id" : "f11a3824-ac19-4fad-b4f1-c5f4a6dd0a80", "project_id" : "060576782980d5762f9ec014dd2f1148", "security_group_id" : "69c999ad-d9ef-4d79-94fd-35e6ceb75325", "remote_group_id" : "69c999ad-d9ef-4d79-94fd-35e6ceb75325", "direction" : "ingress", "protocol" : null, "description" : "", "created_at" : "2020-07-09T05:56:27Z", "updated_at" : "2020-07-09T05:56:27Z", "ethertype" : "IPv6", "remote_ip_prefix" : null, "multiport" : null, "remote_address_group_id" : null, "action" : "allow", "priority" : 100 }, { "id" : "3d6480e8-9ea4-46dc-bb1b-8db190cd5677", "project_id" : "060576782980d5762f9ec014dd2f1148", "security_group_id" : "69c999ad-d9ef-4d79-94fd-35e6ceb75325", "remote_group_id" : null, "direction" : "egress", "protocol" : null, "description" : "", "created_at" : "2020-07-09T05:56:27Z", "updated_at" : "2020-07-09T05:56:27Z", "ethertype" : "IPv6", "remote_ip_prefix" : null, "multiport" : null, "remote_address_group_id" : null, "action" : "allow", "priority" : 100 }, { "id" : "9581f18c-1fdd-43da-ace9-7758a56ef28a", "project_id" : "060576782980d5762f9ec014dd2f1148", "security_group_id" : "69c999ad-d9ef-4d79-94fd-35e6ceb75325", "remote_group_id" : null, "direction" : "egress", "protocol" : null, "description" : "", "created_at" : "2020-07-09T05:56:27Z", "updated_at" : "2020-07-09T05:56:27Z", "ethertype" : "IPv4", "remote_ip_prefix" : null, "multiport" : null, "remote_address_group_id" : null, "action" : "allow", "priority" : 100 }, { "id" : "a3ba270e-e58b-432d-a912-aeb7eace9fb8", "project_id" : "060576782980d5762f9ec014dd2f1148", "security_group_id" : "69c999ad-d9ef-4d79-94fd-35e6ceb75325", "remote_group_id" : "69c999ad-d9ef-4d79-94fd-35e6ceb75325", "direction" : "ingress", "protocol" : null, "description" : "", "created_at" : "2020-07-09T05:56:27Z", "updated_at" : "2020-07-09T05:56:27Z", "ethertype" : "IPv4", "remote_ip_prefix" : null, "multiport" : null, "remote_address_group_id" : null, "action" : "allow", "priority" : 100 } ], "created_at" : "2020-07-09T05:56:27Z", "updated_at" : "2020-07-09T05:56:27Z", "tags": [] }, "request_id" : "a8cf4f79ca3c22ca685e7e8872e8c20b" }
  • 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 } }
  • 请求示例 更新id为3d42a0d4-a980-4613-ae76-a2cddecff054的路由表,新增一条ecs类型的路由,修改一条ecs类型的路由,删除一条目的网段为20.20.10.0/24的路由。 PUT https://{Endpoint}/v1/6fbe9263116a4b68818cf1edce16bc4f/routetables/3d42a0d4-a980-4613-ae76-a2cddecff054 { "routetable": { "name": "routertable-789", "description": "abc", "routes": { "add": [ { "type": "ecs", "destination": "10.10.10.0/24", "nexthop": "7c50463d-d36c-4417-aa85-cc11fa10f341", "description": "abc" } ], "mod": [ { "type": "ecs", "destination": "20.10.10.0/24", "nexthop": "7c50463d-d36c-4417-aa85-cc11fa10f341", "description": "abc" } ], "del": [ { "destination": "20.20.10.0/24" } ] } } }
  • 响应示例 { "routetable": { "id": "3d42a0d4-a980-4613-ae76-a2cddecff054", "vpc_id": "ab78be2d-782f-42a5-aa72-35879f6890ff", "description": "abc", "default": false, "routes": [ { "type": "ecs", "destination": "10.10.10.0/24", "nexthop": "7c50463d-d36c-4417-aa85-cc11fa10f341", "description": "abc" } ], "subnets": [ { "id": "8d4ce32f-d68a-4c4c-9f18-c68d8a5c7f2f" } ], "tenant_id": "6fbe9263116a4b68818cf1edce16bc4f", "created_at": "2022-12-15T02:56:40", "updated_at": "2022-12-15T03:03:42" } }
  • 请求示例 解关联路由表3d42a0d4-a980-4613-ae76-a2cddecff054和子网815a6b9e-f766-48eb-967c-0ada72d85435。 POST https://{Endpoint}/v1/6fbe9263116a4b68818cf1edce16bc4f/routetables/3d42a0d4-a980-4613-ae76-a2cddecff054/action { "routetable": { "subnets": { "disassociate": [ "815a6b9e-f766-48eb-967c-0ada72d85435" ] } } }
  • 请求参数 表2 请求参数 名称 是否必选 参数类型 说明 routetable 是 routetable object 路由表对象,参见表3。 表3 routetable字段说明 名称 是否必选 参数类型 说明 subnets 是 subnet object 功能说明:路由表所关联的子网 约束:只能关联路由表所属vpc下的子网 表4 subnet字段说明 名称 是否必选 参数类型 说明 associate 否 Array of strings 路由表关联子网ID列表 disassociate 否 Array of strings 路由表解除关联子网ID列表
  • 响应示例 { "routetable": { "id": "3d42a0d4-a980-4613-ae76-a2cddecff054", "vpc_id": "ab78be2d-782f-42a5-aa72-35879f6890ff", "description": "abc", "routes": [ { "type": "ecs", "destination": "10.10.10.0/24", "nexthop": "7c50463d-d36c-4417-aa85-cc11fa10f341", "description": "abc" } ], "subnets": [ { "id": "8d4ce32f-d68a-4c4c-9f18-c68d8a5c7f2f" } ], "tenant_id": "6fbe9263116a4b68818cf1edce16bc4f", "created_at": "2022-12-15T02:56:40", "updated_at": "2022-12-15T03:06:21" } }
共100000条