您可以将 Cloudflare 成员权限限制在单个 Cloudflare Tunnel 实例上,而不是授予账户范围的访问权限。这使您能够委派管理特定的 Tunnels — 例如,允许应用程序团队为其服务管理一个 Tunnel,而不暴露账户中的每个 Tunnel。
细粒度权限是账户级角色的并行层 — 它们并不替代这些角色。已经拥有诸如 Cloudflare Access 之类账户级角色的成员,仍将保留对账户中每个 Tunnel 的写访问权限。
对于在特定 Cloudflare Tunnel 上的任何 API 请求,如果主体拥有以下其中一项,则授予访问权限:
- 涵盖 Tunnels 的账户级角色(例如
Cloudflare Access),或 - 绑定到该特定 Tunnel 的资源作用域角色。
列出端点(GET /accounts/{id}/cfd_tunnel,GET /accounts/{id}/teamnet/routes)仅返回主体至少具有读取权限的 Tunnels 和路由。
细粒度权限是通过标准的成员管理流程分配的。
- 在 Cloudflare 仪表板 ↗中,转到 Manage Account(管理账户) > Members(成员),然后选择 Invite Members(邀请成员),或打开现有成员以编辑其权限。
- 添加一个权限策略,并选择针对 Cloudflare Tunnel 实例的资源作用域角色。
- 在 Scope(范围) 部分,选择 Specific resources(特定资源)。
- 将 Resource type 设置为 Cloudflare Tunnel instances。
- 从资源选择器中选择一个或多个特定的 Tunnels。
- 保存策略。
您可以将多个细粒度策略附加到同一成员,以通过不同角色涵盖不同的 Tunnels。
列出端点可感知授权。当主体调用列出端点时,响应将过滤为主体至少具有读取权限的 Tunnels 和路由。
| 端点 | 方法 | 返回 |
|---|---|---|
/accounts/{account_id}/cfd_tunnel |
GET |
主体可读取或管理的 Cloudflare Tunnel 实例。 |
/accounts/{account_id}/teamnet/routes |
GET |
附加到主体可读取或管理的 Tunnels 的路由。 |
拥有涵盖 Tunnels 的账户级角色的成员将继续看到账户中的所有 Tunnels。
- 现有的账户级角色和 API 令牌将像以前一样继续运行。
- 使用账户级令牌进行身份验证的现有自动化(例如,使用
Cloudflare Access令牌的 Terraform 管道)不受影响。 - 细粒度权限是选择性加入的。将其授予成员会增加权限;绝不会移除成员从账户级角色中已获得的权限。
- 角色参考 — 完整的 Cloudflare 角色列表,包括适用于 Cloudflare Tunnel 实例的资源作用域角色。
- 管理账户成员 — 成员邀请和编辑流程。
- Cloudflare One 中的 Cloudflare Tunnel 和 Cloudflare Mesh 细粒度权限 — 相同的 RBAC 功能应用于 Cloudflare Mesh 节点以及 Tunnels。