1. 接口描述
接口请求域名: cfw.tencentcloudapi.com 。
添加一条或多条互联网边界访问控制规则。规则写入当前账号的可操作分区;本批 Rules 在一次插入事务中写入。From=batch_import_cover 会先以独立事务删除首条规则 Direction 对应的旧规则,再插入本批 Rules;删除一旦提交,后续插入失败不会恢复旧规则。公有云环境在数据库事务提交后异步触发规则下发,因此成功返回只表示规则已写入并已发起下发,不表示数据面已经生效。
默认接口请求频率限制:20次/秒。
2. 输入参数
以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见 公共请求参数。
| 参数名称 | 必选 | 类型 | 描述 |
|---|---|---|---|
| Action | 是 | String | 公共参数,本接口取值:AddAclRule。 |
| Version | 是 | String | 公共参数,本接口取值:2019-09-04。 |
| Region | 否 | String | 公共参数,此参数为可选参数。 |
| Rules.N | 是 | Array of CreateRuleItem | 待添加的互联网边界规则列表,不能为空。每条规则都解析并校验方向、源目的、动作、范围、协议端口和模板;整个请求还会校验规则配额及可下发规则数量。批量覆盖的删除方向例外地只取首条规则。 |
| CfwAiAgentOperationSource | 否 | String | AI操作来源 枚举值:
示例值:console |
| From | 否 | String | 添加方式。省略或空字符串执行普通新增;insert_rule 标记为指定位置新增;batch_import 标记为批量导入;batch_import_cover 执行覆盖导入,在独立事务中先删除首条规则 Direction 对应的当前账号可操作分区旧规则,再插入 Rules;删除提交后,插入失败不会恢复旧规则。覆盖导入不会校验 Rules 的 Direction 全部相同,删除范围仍只由首条规则决定。其它字符串未由入口统一拒绝,但不属于本接口定义的支持合同,调用方不得依赖其行为。 示例值:batch_import |
3. 输出参数
| 参数名称 | 类型 | 描述 |
|---|---|---|
| RuleUuid | Array of Integer | 数据库插入成功后返回的新规则数值 ID 列表,顺序与已插入的 Rules 顺序一致;不表示异步规则下发已经完成。 示例值:[8888, 8889] |
| RequestId | String | 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 |
4. 示例
示例1 添加一条出站互联网边界观察规则
使用 RFC 5737 文档地址添加一条出站串行 TCP 观察规则;显式指定启用状态、生效范围、规则来源和末尾优先级。
输入示例
POST / HTTP/1.1
Host: cfw.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: AddAclRule
<公共请求参数>
{
"Rules": [
{
"SourceContent": "192.0.2.0/24",
"SourceType": "net",
"TargetContent": "198.51.100.10",
"TargetType": "net",
"Protocol": "TCP",
"RuleAction": "log",
"Port": "443",
"Direction": 0,
"OrderIndex": -1,
"Enable": "true",
"Description": "出站 TCP 观察示例",
"Scope": "serial",
"RuleSource": 0
}
]
}
输出示例
{
"Response": {
"RuleUuid": [
100001
],
"RequestId": "00000000-0000-4000-8000-000000000001"
}
}
示例2 添加一条入站地域来源规则
添加一条入站串行 TCP 规则,来源使用地域 code;地域 code 应通过只读查询取得,示例中的 gd44 仅用于展示格式。
输入示例
POST / HTTP/1.1
Host: cfw.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: AddAclRule
<公共请求参数>
{
"Rules": [
{
"SourceContent": "gd44",
"SourceType": "location",
"TargetContent": "198.51.100.0/24",
"TargetType": "net",
"Protocol": "TCP",
"RuleAction": "accept",
"Port": "443",
"Direction": 1,
"OrderIndex": -1,
"Enable": "true",
"Description": "允许地域来源访问 HTTPS",
"Scope": "serial",
"RuleSource": 0
}
]
}
输出示例
{
"Response": {
"RuleUuid": [
100002
],
"RequestId": "00000000-0000-4000-8000-000000000002"
}
}
示例3 插入一条旁路互联网边界规则
使用 insert_rule 在指定位置插入一条禁用的出站旁路规则;调用前应查询当前出站规则顺序,并将 OrderIndex 替换为可用位置。
输入示例
POST / HTTP/1.1
Host: cfw.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: AddAclRule
<公共请求参数>
{
"From": "insert_rule",
"Rules": [
{
"SourceContent": "192.0.2.0/24",
"SourceType": "net",
"TargetContent": "198.51.100.10",
"TargetType": "net",
"Protocol": "TCP",
"RuleAction": "log",
"Port": "443",
"Direction": 0,
"OrderIndex": 3118,
"Enable": "false",
"Description": "插入旁路观察规则",
"Scope": "side",
"RuleSource": 0
}
]
}
输出示例
{
"Response": {
"RuleUuid": [
100003
],
"RequestId": "00000000-0000-4000-8000-000000000003"
}
}
示例4 批量导入两条全局互联网边界规则
使用非覆盖的 batch_import 新增两条禁用的出站全局规则;该方式不会删除已有规则。
输入示例
POST / HTTP/1.1
Host: cfw.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: AddAclRule
<公共请求参数>
{
"From": "batch_import",
"Rules": [
{
"SourceContent": "192.0.2.1",
"SourceType": "net",
"TargetContent": "198.51.100.31",
"TargetType": "net",
"Protocol": "TCP",
"RuleAction": "log",
"Port": "443",
"Direction": 0,
"OrderIndex": -1,
"Enable": "false",
"Description": "批量全局规则一",
"Scope": "all",
"RuleSource": 0
},
{
"SourceContent": "192.0.2.2",
"SourceType": "net",
"TargetContent": "198.51.100.32",
"TargetType": "net",
"Protocol": "TCP",
"RuleAction": "log",
"Port": "8443",
"Direction": 0,
"OrderIndex": -1,
"Enable": "false",
"Description": "批量全局规则二",
"Scope": "all",
"RuleSource": 0
}
]
}
输出示例
{
"Response": {
"RuleUuid": [
100004,
100005
],
"RequestId": "00000000-0000-4000-8000-000000000004"
}
}
示例5 使用地址模板新增互联网边界规则
使用当前账号的原生 mb_ 地址模板 UUID 作为访问源;调用前应通过只读查询取得模板 UUID,不能直接写展示 ID。
输入示例
POST / HTTP/1.1
Host: cfw.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: AddAclRule
<公共请求参数>
{
"Rules": [
{
"SourceContent": "mb_1300448058_1702352890143",
"SourceType": "template",
"TargetContent": "198.51.100.60",
"TargetType": "net",
"Protocol": "TCP",
"RuleAction": "log",
"Port": "443",
"Direction": 0,
"OrderIndex": -1,
"Enable": "false",
"Description": "地址模板观察规则",
"Scope": "serial",
"RuleSource": 0
}
]
}
输出示例
{
"Response": {
"RuleUuid": [
100006
],
"RequestId": "00000000-0000-4000-8000-000000000005"
}
}
5. 开发者资源
腾讯云 API 平台
腾讯云 API 平台 是综合 API 文档、错误码、API Explorer 及 SDK 等资源的统一查询平台,方便您从同一入口查询及使用腾讯云提供的所有 API 服务。
API Inspector
用户可通过 API Inspector 查看控制台每一步操作关联的 API 调用情况,并自动生成各语言版本的 API 代码,也可前往 API Explorer 进行在线调试。
SDK
云 API 3.0 提供了配套的开发工具集(SDK),支持多种编程语言,能更方便的调用 API。
- Tencent Cloud SDK 3.0 for Python: CNB, GitHub, Gitee
- Tencent Cloud SDK 3.0 for Java: CNB, GitHub, Gitee
- Tencent Cloud SDK 3.0 for PHP: CNB, GitHub, Gitee
- Tencent Cloud SDK 3.0 for Go: CNB, GitHub, Gitee
- Tencent Cloud SDK 3.0 for Node.js: CNB, GitHub, Gitee
- Tencent Cloud SDK 3.0 for .NET: CNB, GitHub, Gitee
- Tencent Cloud SDK 3.0 for C++: CNB, GitHub, Gitee
- Tencent Cloud SDK 3.0 for Ruby: CNB, GitHub, Gitee
命令行工具
6. 错误码
以下仅列出了接口业务逻辑相关的错误码,其他错误码详见 公共错误码。
| 错误码 | 描述 |
|---|---|
| AuthFailure | CAM签名/鉴权错误。 |
| DryRunOperation | DryRun 操作,代表请求将会是成功的,只是多传了 DryRun 参数。 |
| FailedOperation | 操作失败。 |
| InternalError | 内部错误。 |
| InvalidParameter | 参数错误。 |
| InvalidParameterValue | 参数取值错误。 |
| LimitExceeded | 超过配额限制。 |
| MissingParameter | 缺少参数错误。 |
| OperationDenied | 操作被拒绝。 |
| RequestLimitExceeded | 请求的次数超过了频率限制。 |
| ResourceInUse | 资源被占用。 |
| ResourceInsufficient | 资源不足。 |
| ResourceNotFound | 资源不存在。 |
| ResourceUnavailable | 资源不可用。 |
| ResourcesSoldOut | 资源售罄。 |
| UnauthorizedOperation | 未授权操作。 |
| UnknownParameter | 未知参数错误。 |
| UnsupportedOperation | 操作不支持。 |