创建自定义应用程序,用于标识内部服务或不在 Cloudflare 托管目录中的应用程序。自定义应用程序归属于您的账户,并会与 Cloudflare 托管应用程序一起显示在应用程序库中。您可以在 DNS、HTTP 和 Network 策略中,使用现有的 Application(应用程序) 选择器引用它们。
-
在 Cloudflare 仪表板中,前往 Zero Trust > Team & Resources(团队和资源) > Application library(应用程序库)。
前往 Application library ↗ -
选择 Add custom application(添加自定义应用程序)。
-
输入 Application name(应用程序名称) 和 Application ID(应用程序 ID),然后选择一个 Category(类别)。Application ID 字段会包含根据名称生成的人类可读标识符,保存前您可以修改。Cloudflare 还会分配一个数字应用程序 ID,供 Gateway 规则表达式使用。
-
在 Network identifiers(网络标识符) 中,至少输入一个 Hostname(主机名) 或 IP subnet(IP 子网)。同一个应用程序中可以同时包含主机名和 IP 子网。
-
(可选)添加 Support hostnames(支持主机名),用于身份验证或内容分发等依赖项;添加 Port protocols(端口协议),将匹配范围限制为特定 TCP 或 UDP 端口。格式和限制请参阅自定义应用程序限制。
-
选择 Add custom application(添加自定义应用程序)。
创建应用程序并不会创建 Gateway 策略。要控制其流量,请在策略中引用该应用程序。
- 在 Application library(应用程序库) 中,找到该自定义应用程序并打开其操作菜单。
- 选择 Edit custom app(编辑自定义应用)。
- 更新其 Hostnames(主机名)、Support hostnames(支持主机名)、IP subnets(IP 子网) 或 Port protocols(端口协议)。应用程序必须至少保留一个主主机名或 IP 子网。
- 选择 Save(保存)。
应用程序名称、人类可读的 Application ID 以及类别在创建后不可更改。编辑网络标识符会保留数字应用程序 ID,因此引用该应用程序的 Gateway 策略会使用更新后的定义,而无需修改表达式。请等待一段时间,以便更新后的定义传播到 Gateway。
您也可以从其操作菜单更改应用程序的审核状态。
- 在 Traffic policies(流量策略) 中,创建或编辑 DNS、HTTP 或网络策略。
- 对于流量条件,选择 Application(应用程序),然后按名称选择该自定义应用程序。您可以在同一条件中同时选择自定义应用程序和 Cloudflare 托管应用程序。
- 选择策略操作并保存策略。
您也可以从应用程序的操作菜单开始创建策略:选择 Create new Gateway policy(创建新 Gateway 策略),然后选择策略类型。
自定义应用程序使用与 Gateway 中其他应用程序相同的选择器和数字 ID。通过 API 或 Terraform 配置 Gateway 规则时,请使用已分配的数字 ID。
如果仍有 Gateway 规则或可复用配置文件引用自定义应用程序,则无法删除该应用程序。删除前,请先从所有引用它的规则和配置文件中移除该应用程序。关闭规则并不会移除引用。
- 在 Application library(应用程序库) 中,找到该自定义应用程序并打开其操作菜单。
- 选择 Delete custom app(删除自定义应用)。
- 确认删除。
如果应用程序仍被引用,删除会失败,API 会返回 HTTP 409,并包含引用资源的 ID、名称和类型。如果 Gateway 无法验证引用,删除也会失败,该应用程序将保持可用。
要使用 API 或 Terraform 创建、编辑或删除自定义应用,API 令牌必须至少具有以下权限之一:
- Account > Zero Trust > Edit
- Account > Resource Library > Edit
要列出或查看应用和类别,API 令牌必须至少具有以下权限之一:
- Account > Zero Trust > Read
- Account > Zero Trust > Edit
- Account > Resource Library > Read
- Account > Resource Library > Edit
每个账户可创建的自定义应用程序数量,请参阅应用程序库账户限制。
创建或编辑自定义应用程序时,以下限制适用于每个应用程序。
| 字段 | 限制或支持的格式 |
|---|---|
| Hostnames and support hostnames(主机名和支持主机名) | 合计 50 条。例如,40 个主主机名还允许再添加 10 个支持主机名。 |
| IP subnets(IP 子网) | 每个应用程序 50 条,与主机名限制分开计算。使用 CIDR 表示法。IPv4 前缀长度必须为 /8 到 /32。IPv6 前缀长度必须为 /32 到 /128。对于单个地址,IPv4 使用 /32,IPv6 使用 /128。 |
| Port protocols(端口协议) | TCP 和 UDP,采用 protocol/port 或包含两端的 protocol/start-end 格式,例如 tcp/443 或 udp/10000-20000。仪表板接受端口 1 到 65535。API 还接受端口 0。范围的起始值必须小于或等于结束值。该字段没有单独的条目数量限制。 |
至少需要一个主主机名或 IP 子网。仅有支持主机名、端口,或支持主机名与端口的组合,不能满足此要求。您不能创建仅由端口和协议标识的自定义应用程序,例如 tcp/443。
主机名和 IP 子网是匹配应用程序的两种替代方式。配置端口协议后,会在 HTTP 和网络策略中限制这些匹配。DNS 策略不会检查目标端口。示例请参阅自定义应用程序匹配。