> For the complete documentation index, see [llms.txt](https://docs.console.zenlayer.com/api-reference/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.console.zenlayer.com/api-reference/cn/compute/vm/security-group/authorizesecuritygrouprule.md).

# 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  | 默认安全组不支持。              |
