更新时间:2026-01-09 GMT+08:00

创建安全组

功能介绍

安全组是一个逻辑上的分组,为具有相同安全保护需求并相互信任的云服务器、云容器、云数据库等实例提供访问策略。安全组创建后,用户可以在安全组中定义各种访问规则,当实例加入该安全组后,即受到这些访问规则的保护。

接口约束

新建的安全组,默认只允许安全组内的实例互相访问。

调用方法

请参见如何调用API

URI

POST /v3/{project_id}/vpc/security-groups

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

  • 参数解释:安全组所属的项目ID。

  • 取值范围:无

请求参数

表2 请求Body参数

参数

是否必选

参数类型

描述

dry_run

Boolean

  • 参数解释:是否只预检此次请求。

  • 约束限制:无

  • 取值范围:

    • true:发送检查请求,不会创建安全组。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回响应码202。

    • false:发送正常请求,并直接创建安全组。

  • 默认取值:false

security_group

CreateSecurityGroupOption object

  • 参数解释:创建安全组的请求体。

  • 约束限制:无

  • 取值范围:无

  • 默认取值:无

表3 CreateSecurityGroupOption

参数

是否必选

参数类型

描述

name

String

  • 参数解释:安全组的名称。

  • 约束限制:1-64个字符,支持数字、字母、中文、_(下划线)、-(中划线)、.(点)。

  • 取值范围:无

  • 默认取值:无

description

String

  • 参数解释:安全组的描述信息。

  • 约束限制:0-255个字符,不能包含“<”和“>”。

  • 取值范围:无

  • 默认取值:无

tags

Array of RequestTag objects

  • 参数解释:安全组的标签信息,包括标签键和标签值,可用来分类和标识资源。详情请参见Tag对象。

  • 约束限制:最大支持20组标签键值对。

  • 取值范围:无

  • 默认取值:无

表4 RequestTag

参数

是否必选

参数类型

描述

key

String

参数解释

标签键。

约束限制

不涉及。

取值范围

  • 最大长度128个unicode字符, key不能为空。

  • 同一资源的key不能重复。

  • 可以包含的字符范围:

    • 英文字母

    • 数字

    • 特殊字符:下划线(_)、点(.)、冒号(:)、加号(+)、中划线(-)、等号(=)

默认取值

不涉及。

value

String

参数解释

标签值。

约束限制

不涉及。

取值范围

  • 每个值最大长度255个unicode字符,value可以为空。

  • 可以包含的字符范围:

    • 英文字母

    • 数字

    • 特殊字符:下划线(_)、冒号(:)、加号(+)、中划线(-)、等号(=)

默认取值

不涉及。

响应参数

状态码:201

表5 响应Body参数

参数

参数类型

描述

request_id

String

  • 参数解释:请求ID。

  • 取值范围:无

security_group

SecurityGroupInfo object

  • 参数解释:创建安全组响应体。

  • 取值范围:无

表6 SecurityGroupInfo

参数

参数类型

描述

id

String

  • 参数解释:安全组资源ID。安全组创建成功后,会生成一个安全组 ID,是安全组对应的唯一标识。

  • 取值范围:带“-”的标准UUID格式。

name

String

  • 参数解释:安全组的名称。

  • 取值范围:1-64个字符,支持数字、字母、中文、_(下划线)、-(中划线)、.(点)。

description

String

  • 参数解释:安全组的描述信息。

  • 取值范围:0-255个字符,不能包含“<”和“>”。

project_id

String

  • 参数解释:安全组所属的项目ID。

  • 取值范围:无

created_at

String

  • 参数解释:安全组创建时间。

  • 取值范围:UTC时间格式,yyyy-MM-ddTHH:mm:ssZ。

updated_at

String

  • 参数解释:安全组更新时间。

  • 取值范围:UTC时间格式,yyyy-MM-ddTHH:mm:ssZ。

tags

Array of ResponseTag objects

  • 参数解释:安全组的标签信息,包括标签键和标签值,可用来分类和标识资源。详情请参见Tag对象。

  • 取值范围:无

security_group_rules

Array of SecurityGroupRule objects

  • 参数解释:安全组规则列表。

  • 取值范围:无

表7 ResponseTag

参数

参数类型

描述

key

String

参数解释

标签键。

取值范围

  • 最大长度128个unicode字符, key不能为空。

  • 同一资源的key不能重复。

  • 可以包含的字符范围:

    • 英文字母

    • 数字

    • 特殊字符:下划线(_)、点(.)、冒号(:)、加号(+)、中划线(-)、等号(=)

value

String

参数解释

标签值。

取值范围

  • 每个值最大长度255个unicode字符,value可以为空。

  • 可以包含的字符范围:

    • 英文字母

    • 数字

    • 特殊字符:下划线(_)、冒号(:)、加号(+)、中划线(-)、等号(=)

表8 SecurityGroupRule

参数

参数类型

描述

id

String

  • 参数解释:安全组规则的资源ID。安全组规则创建成功后,会生成一个安全组规则ID,是安全组规则对应的唯一标识。

  • 取值范围:带“-”的标准UUID格式。

description

String

  • 参数解释:安全组规则的描述信息。

  • 取值范围:0-255个字符,不能包含“<”和“>”。

security_group_id

String

  • 参数解释:安全组规则所属的安全组ID。

  • 取值范围:无

direction

String

  • 参数解释:安全组规则的出入控制方向。

  • 取值范围:

    • ingress:表示入方向。

    • egress:表示出方向。

protocol

String

  • 参数解释:安全组规则的通信协议类型。

  • 取值范围:

    • icmp

    • tcp

    • udp

    • icmpv6

    • IP协议号

ethertype

String

  • 参数解释:安全组规则的IP地址协议类型。

  • 取值范围:

    • IPv4

    • IPv6

multiport

String

  • 参数解释:安全组规则的端口取值范围。

  • 取值范围:支持单端口(80),连续端口(1-30)以及不连续端口(22,3389,80)。

action

String

  • 参数解释:安全组规则的生效策略。

  • 取值范围:

    • allow:表示允许。

    • deny:表示拒绝。

priority

Integer

  • 参数解释:安全组规则的生效优先级。

  • 取值范围:1~100,1代表最高优先级。

remote_group_id

String

  • 参数解释:安全组规则的远端安全组ID,如果规则的action是allow,表示允许该安全组内的流量;如果规则的action是deny,表示拒绝该安全组内的流量。

  • 取值范围:租户下存在的安全组ID。

remote_ip_prefix

String

  • 参数解释:安全组规则的远端IP地址。

    • 当direction是egress时,该地址表示出方向的目的地址,为安全组内实例访问的远端地址。

    • 当direction是ingress时,该地址表示入方向的源地址,为访问安全组内实例的远端地址。

  • 取值范围:cidr格式,请求如果传入IP地址,会自动转换为末尾带/32的格式,如192.168.21.45/32。

created_at

String

  • 参数解释:安全组规则的创建时间。

  • 取值范围:UTC时间格式,yyyy-MM-ddTHH:mm:ssZ。

updated_at

String

  • 参数解释:安全组规则的更新时间。

  • 取值范围:UTC时间格式,yyyy-MM-ddTHH:mm:ssZ。

project_id

String

  • 参数解释:安全组规则所属项目ID。

  • 取值范围:无

状态码:202

表9 响应Body参数

参数

参数类型

描述

request_id

String

  • 参数解释:请求ID。

  • 取值范围:无

error_msg

String

  • 参数解释:错误消息。

  • 取值范围:无

error_code

String

  • 参数解释:错误码。

  • 取值范围:无

请求示例

  • 创建安全组,指定名称为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"
      },
      "dry_run" : true
    }
  • 创建安全组,指定名称为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"
      }
    }

响应示例

状态码:201

POST操作正常返回,更多状态码请参见状态码

{
  "security_group" : {
    "id" : "69c999ad-d9ef-4d79-94fd-35e6ceb75325",
    "name" : "security_group_1",
    "project_id" : "060576782980d5762f9ec014dd2f1148",
    "description" : "security group description",
    "enterprise_project_id" : "0",
    "tags" : [ ],
    "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"
}

状态码:202

API V3的指定预检请求正常返回,更多状态码请参见状态码

{
  "error_msg" : "Request validation has been passed with dry run...",
  "error_code" : "SYS.0202",
  "request_id" : "cfd81aea3f59eac7128dba4b36d516c8"
}

状态码

状态码

描述

201

POST操作正常返回,更多状态码请参见状态码

202

API V3的指定预检请求正常返回,更多状态码请参见状态码

错误码

请参见错误码