# AuthorizeSecurityGroupRule

## 1. 接口描述

本接口(AuthorizeSecurityGroupRule)用于新增安全组单条规则。

{% hint style="info" %}
**注意事项**

* 安全组状态需是**Available**。
* 默认安全组不支持修改。
* 同一规则方向，规则不能重复。
* 安全组的规则数量最多40条，入方向最多20条、出方向最多20条。
  {% endhint %}

## 2. 请求参数

以下请求参数列表仅列出了接口中需要的请求参数

| 参数名称            | 必选 | 类型      | 描述                                                      |
| --------------- | -- | ------- | ------------------------------------------------------- |
| securityGroupId | 是  | String  | 安全组ID。                                                  |
| direction       | 是  | String  | <p>规则方向。</p><p>ingress：入方向。</p><p>egress：出方向。</p>       |
| ipProtocol      | 是  | String  | <p>传输层协议。</p><p>取值范围：tcp、udp、icmp、all。</p>              |
| portRange       | 是  | String  | 目的端安全组开放的传输层协议相关的端口范围。                                  |
| cidrIp          | 是  | String  | 源端IP地址范围。                                               |
| policy          | 否  | String  | <p>设置访问权限。</p><p>accept（默认值）：接受访问。</p><p>默认值：accept</p> |
| priority        | 否  | Integer | <p>规则优先级。</p><p>默认值：1</p>                               |
| description     | 否  | String  | 规则描述。                                                   |

## 3. 响应结果

| 参数名称      | 类型     | 描述                                                       |
| --------- | ------ | -------------------------------------------------------- |
| requestId | String | <p>唯一请求 ID。</p><p>每次请求都会返回。定位问题时需要提供该次请求的 requestId。</p> |

## 4. 代码示例

{% tabs %}
{% tab title="示例" %}
**1. 新增一条安全组的规则。**

```json
POST /api/v2/vm HTTP/1.1
Host: console.zenlayer.com
Content-Type: application/json
X-ZC-Action: AuthorizeSecurityGroupRule
<Common Request Params>

Request:
{
  "securityGroupId": "your-security-group-id",
  "direction": "egress",
  "policy": "accept",
  "ipProtocol": "tcp",
  "portRange": "22/22",
  "cidrIp": "0.0.0.0/0"
}

Response:
{
  "requestId": "T79B0A6A1-2921-4702-8F48-46C0541744FC",
  "response": {
    "requestId": "T79B0A6A1-2921-4702-8F48-46C0541744FC"
  }
}
```

{% endtab %}
{% endtabs %}

## 5. 开发者工具

Zenlayer Cloud API 2.0 提供了配套的[开发工具集（SDK）](/api-reference/cn/api-introduction/toolkit.md)，未来会陆续支持更多开发语言，方便快速接入和使用Zenlayer的产品和服务。

## 6. 错误码

下面包含业务逻辑中遇到的错误码，其他错误码见[公共错误码](/api-reference/cn/api-introduction/instruction/commonerrorcode.md)

| HTTP状态码 | 错误码                                                        | 说明                     |
| ------- | ---------------------------------------------------------- | ---------------------- |
| 400     | INVALID\_PARAMETER\_SECURITY\_GROUP\_RULE\_ID\_NOT\_ALLOW  | 安全组规则ID不允许传。           |
| 400     | INVALID\_PARAMETER\_SECURITY\_GROUP\_POLICY                | 安全组规则Policy参数错误。       |
| 400     | INVALID\_PARAMETER\_SECURITY\_GROUP\_PORT\_RANGE           | 安全组规则PortRange参数错误。    |
| 400     | INVALID\_PARAMETER\_SECURITY\_GROUP\_PRIORITY              | 安全组规则Priority参数错误。     |
| 400     | INVALID\_PARAMETER\_SECURITY\_GROUP\_SOURCE\_CIDR\_IP      | 安全组规则SourceCidrIp参数错误。 |
| 403     | OPERATION\_DENIED\_SECURITY\_GROUP\_EXIST\_REPEAT\_RULE    | 安全组规则存在重复。             |
| 404     | INVALID\_SECURITY\_GROUP\_NOT\_FOUND                       | 指定的安全组不存在。             |
| 403     | OPERATION\_DENIED\_SECURITY\_GROUP\_STATUS\_NOT\_AVAILABLE | 安全组状态不是Available。      |
| 403     | OPERATION\_DENIED\_SECURITY\_GROUP\_RULE\_EXCEED\_LIMIT    | 安全组规则超过限制。             |
| 403     | OPERATION\_DENIED\_DEFAULT\_SECURITY\_GROUP\_NOT\_SUPPORT  | 默认安全组不支持。              |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.console.zenlayer.com/api-reference/cn/compute/vm/security-group/authorizesecuritygrouprule.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
