帮你快速理解、总结文档立即下载

新增NAT边界访问控制规则

最近更新时间:2026-07-27 01:26:16

我的收藏

1. 接口描述

接口请求域名: cfw.tencentcloudapi.com 。

新增一条或多条 NAT边界访问控制规则。

默认接口请求频率限制:20次/秒。

推荐使用 API Explorer
点击调试
API Explorer 提供了在线调用、签名验证、SDK 代码生成和快速检索接口等能力。您可查看每次调用的请求内容和返回结果以及自动生成 SDK 调用示例。

2. 输入参数

以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见 公共请求参数

参数名称 必选 类型 描述
Action String 公共参数,本接口取值:AddNatAcRule。
Version String 公共参数,本接口取值:2019-09-04。
Region String 公共参数,本接口不需要传递此参数。
Rules.N Array of CreateNatRuleItem

要添加的 NAT 访问控制规则列表,至少一项。Direction、地址类型与内容、Protocol、RuleAction 和 Scope 会逐项校验;Description、Enable、OrderIndex 和 Scope 的缺省或归一化行为见对应字段说明。Scope 调用无业务参数的 DescribeNatRuleScopes,使用 ScopeItems[].Scope,不要使用 ScopeDesc。地址模板调用 DescribeAddressTemplateList,请求用 TemplateType=1 或 5 过滤,并确认返回项 Data[].Type 为 1 或 5;将 Data[].Uuid(mb_ 前缀)写入对应 Content,不要使用 Data[].TemplateId(ip-/dm- 前缀)。协议端口模板请求用 TemplateType=6 过滤,并将 Data[].TemplateId(pp- 前缀)写入 ParamTemplateId。资产实例调用 DescribeCfwAssets,解析返回结果后使用 assets[].instance_id;资产分组调用 DescribeResourceGroupNew,传 QueryType=resource、GroupId="0"、ShowType=all,解析返回结果后使用 GroupId;资源标签传 QueryType=tag,跳过“全部资产”根节点,以一级节点 GroupName 为 Key、所选二级子节点 GroupName 为 Value 构造 JSON 字符串 {"Key":"标签键","Value":"标签值"},不要写入 GroupId;地域调用 DescribeAclRegInfo,传 FwType=["NAT"] 并使用 Data[].RegionCode。不得使用展示名称或自行拼接。

CfwAiAgentOperationSource String

AI操作来源

枚举值:

  • console: 控制台来源值
  • wechat: 微信

示例值:console
From String

添加方式。省略或为空表示普通新增;insert_rule 表示指定位置新增;batch_import 表示非覆盖批量导入;batch_import_cover 表示覆盖导入,会删除当前账号中与首条规则同方向的全部可操作 NAT边界规则后再添加 Rules,添加失败时已删除的规则不会恢复,风险极高。仅支持上述取值。


示例值:insert_rule

3. 输出参数

参数名称 类型 描述
RuleUuid Array of Integer 新增规则的 ID 列表,顺序与 Rules 一致。
示例值:[8888, 8889]
RequestId String 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。

4. 示例

示例1 普通新增 NAT 出站观察规则

新增一条出站观察规则。

输入示例

POST / HTTP/1.1
Host: cfw.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: AddNatAcRule
<公共请求参数>

{
    "Rules": [
        {
            "SourceContent": "192.0.2.0/24",
            "SourceType": "net",
            "TargetContent": "example.com",
            "TargetType": "domain",
            "Protocol": "HTTP",
            "RuleAction": "log",
            "Port": "80",
            "Direction": 0,
            "OrderIndex": 1,
            "Enable": "true",
            "Description": "观察文档站点 HTTP",
            "Scope": "cfwnat-example0001"
        }
    ]
}

输出示例

{
    "Response": {
        "RuleUuid": [
            100001
        ],
        "RequestId": "00000000-0000-4000-8000-000000000001"
    }
}

示例2 普通新增 NAT 入站规则

新增一条作用于全部 NAT 实例的入站 TCP 放行规则,使用 RFC 5737 文档地址展示 net 类型。

输入示例

POST / HTTP/1.1
Host: cfw.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: AddNatAcRule
<公共请求参数>

{
    "Rules": [
        {
            "SourceContent": "192.0.2.0/24",
            "SourceType": "net",
            "TargetContent": "198.51.100.10",
            "TargetType": "net",
            "Protocol": "TCP",
            "RuleAction": "accept",
            "Port": "443",
            "Direction": 1,
            "OrderIndex": -1,
            "Enable": "true",
            "Description": "允许入站 HTTPS 示例",
            "Scope": "ALL"
        }
    ]
}

输出示例

{
    "Response": {
        "RuleUuid": [
            100002
        ],
        "RequestId": "00000000-0000-4000-8000-000000000002"
    }
}

示例3 插入一条 NAT 访问控制规则

使用 insert_rule 在指定位置插入一条禁用的出站规则;调用前使用 DescribeCfwRules,传 RuleType=nat、Direction=0、ExpandNames=false,将目标位置对应的 rules[].sequence 写入 OrderIndex。

输入示例

POST / HTTP/1.1
Host: cfw.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: AddNatAcRule
<公共请求参数>

{
    "From": "insert_rule",
    "Rules": [
        {
            "SourceContent": "192.0.2.0/24",
            "SourceType": "net",
            "TargetContent": "198.51.100.20",
            "TargetType": "net",
            "Protocol": "TCP",
            "RuleAction": "log",
            "Port": "8443",
            "Direction": 0,
            "OrderIndex": 1066,
            "Enable": "false",
            "Description": "插入 NAT 观察规则",
            "Scope": "ALL"
        }
    ]
}

输出示例

{
    "Response": {
        "RuleUuid": [
            100003
        ],
        "RequestId": "00000000-0000-4000-8000-000000000003"
    }
}

示例4 批量导入两条 NAT 规则

使用非覆盖的 batch_import 新增两条禁用的出站规则;该方式不会删除已有规则。

输入示例

POST / HTTP/1.1
Host: cfw.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: AddNatAcRule
<公共请求参数>

{
    "From": "batch_import",
    "Rules": [
        {
            "SourceContent": "192.0.2.41",
            "SourceType": "net",
            "TargetContent": "198.51.100.41",
            "TargetType": "net",
            "Protocol": "TCP",
            "RuleAction": "log",
            "Port": "443",
            "Direction": 0,
            "OrderIndex": -1,
            "Enable": "false",
            "Description": "批量 NAT 规则一",
            "Scope": "ALL"
        },
        {
            "SourceContent": "192.0.2.42",
            "SourceType": "net",
            "TargetContent": "198.51.100.42",
            "TargetType": "net",
            "Protocol": "TCP",
            "RuleAction": "log",
            "Port": "8443",
            "Direction": 0,
            "OrderIndex": -1,
            "Enable": "false",
            "Description": "批量 NAT 规则二",
            "Scope": "ALL"
        }
    ]
}

输出示例

{
    "Response": {
        "RuleUuid": [
            100004,
            100005
        ],
        "RequestId": "00000000-0000-4000-8000-000000000004"
    }
}

示例5 使用协议端口模板新增 NAT 规则

使用协议端口模板新增一条 NAT 规则。

输入示例

POST / HTTP/1.1
Host: cfw.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: AddNatAcRule
<公共请求参数>

{
    "Rules": [
        {
            "SourceContent": "192.0.2.70",
            "SourceType": "net",
            "TargetContent": "198.51.100.70",
            "TargetType": "net",
            "Protocol": "ANY",
            "RuleAction": "log",
            "Port": "-1/-1",
            "Direction": 0,
            "OrderIndex": -1,
            "Enable": "false",
            "Description": "协议端口模板观察规则",
            "ParamTemplateId": "pp-maatbnad",
            "Scope": "ALL"
        }
    ]
}

输出示例

{
    "Response": {
        "RuleUuid": [
            100006
        ],
        "RequestId": "00000000-0000-4000-8000-000000000005"
    }
}

示例6 观察广东来源访问指定实例

用户要求观察广东来源访问指定实例时,调用 DescribeAclRegInfo,传 FwType=["NAT"],从 Data 中匹配 RegionName=广东省并使用 RegionCode=gd44;调用 DescribeCfwAssets 获取目标 assets[].instance_id。

输入示例

POST / HTTP/1.1
Host: cfw.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: AddNatAcRule
<公共请求参数>

{
    "Rules": [
        {
            "SourceContent": "gd44",
            "SourceType": "location",
            "TargetContent": "ins-xxxxxxxx",
            "TargetType": "instance",
            "Protocol": "ANY",
            "RuleAction": "log",
            "Port": "-1/-1",
            "Direction": 1,
            "OrderIndex": -1,
            "Enable": "false",
            "Description": "观察广东来源访问指定实例",
            "Scope": "ALL"
        }
    ]
}

输出示例

{
    "Response": {
        "RuleUuid": [
            100007
        ],
        "RequestId": "00000000-0000-4000-8000-000000000006"
    }
}

示例7 添加实例出站 DNS 宽松和严格匹配规则

用户要求实例按域名解析结果访问外部服务时,调用 DescribeCfwAssets 获取来源 assets[].instance_id。dnsparse 在 Host/SNI 匹配或目的 IP 属于当前 DNS 解析结果时命中,domainiptwoverify 要求两个条件同时满足。

输入示例

POST / HTTP/1.1
Host: cfw.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: AddNatAcRule
<公共请求参数>

{
    "Rules": [
        {
            "SourceContent": "ins-xxxxxxxx",
            "SourceType": "instance",
            "TargetContent": "example.com",
            "TargetType": "dnsparse",
            "Protocol": "TCP",
            "RuleAction": "log",
            "Port": "443",
            "Direction": 0,
            "OrderIndex": -1,
            "Enable": "false",
            "Description": "观察实例 DNS 宽松匹配流量",
            "Scope": "ALL"
        },
        {
            "SourceContent": "ins-xxxxxxxx",
            "SourceType": "instance",
            "TargetContent": "example.org",
            "TargetType": "domainiptwoverify",
            "Protocol": "TCP",
            "RuleAction": "log",
            "Port": "443",
            "Direction": 0,
            "OrderIndex": -1,
            "Enable": "false",
            "Description": "观察实例 DNS 严格匹配流量",
            "Scope": "ALL"
        }
    ]
}

输出示例

{
    "Response": {
        "RuleUuid": [
            100008,
            100009
        ],
        "RequestId": "00000000-0000-4000-8000-000000000007"
    }
}

5. 开发者资源

腾讯云 API 平台

腾讯云 API 平台 是综合 API 文档、错误码、API Explorer 及 SDK 等资源的统一查询平台,方便您从同一入口查询及使用腾讯云提供的所有 API 服务。

API Inspector

用户可通过 API Inspector 查看控制台每一步操作关联的 API 调用情况,并自动生成各语言版本的 API 代码,也可前往 API Explorer 进行在线调试。

SDK

云 API 3.0 提供了配套的开发工具集(SDK),支持多种编程语言,能更方便的调用 API。

命令行工具

6. 错误码

以下仅列出了接口业务逻辑相关的错误码,其他错误码详见 公共错误码

错误码 描述
AuthFailure CAM签名/鉴权错误。
DryRunOperation DryRun 操作,代表请求将会是成功的,只是多传了 DryRun 参数。
FailedOperation 操作失败。
InternalError 内部错误。
InvalidParameter 参数错误。
InvalidParameterValue 参数取值错误。
LimitExceeded 超过配额限制。
MissingParameter 缺少参数错误。
OperationDenied 操作被拒绝。
RequestLimitExceeded 请求的次数超过了频率限制。
ResourceInUse 资源被占用。
ResourceInsufficient 资源不足。
ResourceNotFound 资源不存在。
ResourceUnavailable 资源不可用。
ResourcesSoldOut 资源售罄。
UnauthorizedOperation 未授权操作。
UnknownParameter 未知参数错误。
UnsupportedOperation 操作不支持。