您可以将 Cloudflare 成员权限范围限制为单个 Cloudflare Tunnel 实例和 Cloudflare Mesh 节点,而不是授予对每个 Tunnel 和 Mesh 节点的整个账户访问权限。这实现了针对私有网络操作的最小特权委派 —— 例如,允许支持操作员从单个 Tunnel 流式传输日志,而不会暴露您账户的其余部分。
细粒度权限是与账户范围角色平行的层 —— 它们不会取代后者。已经拥有账户级角色(如 Cloudflare Access 或 Cloudflare Zero Trust)的成员继续对账户中的每个 Tunnel 和 Mesh 节点拥有写入权限。
对于针对特定 Tunnel 或 Mesh 节点的任何 API 请求,如果主体满足以下任一条件,则将被授予访问权限:
- 涵盖该资源的账户级角色(例如
Cloudflare Access或Cloudflare Zero Trust),或者 - 绑定(binding)到该特定 Tunnel 或 Mesh 节点的资源范围角色。
资源列举终结点(GET /accounts/{id}/cfd_tunnel、GET /accounts/{id}/warp_connector)仅返回主体至少具有读取访问权限的资源。
细粒度权限通过标准成员管理流程进行分配。
- 在 Cloudflare 仪表板 ↗中,转到 Manage Account(管理账户) > Members(成员) 并选择 Invite members(邀请成员),或打开现有成员以编辑其权限。
- 添加权限策略并选择针对 Tunnel 或 Mesh 节点的资源范围角色。
- 在 Scope(范围) 部分中,选择 Specific resources(特定资源)。
- 将 Resource type(资源类型) 设置为以下之一:
- Cloudflare Tunnel 实例 — 针对单个 Cloudflare Tunnel 实例。
- Cloudflare Mesh 节点 — 针对单个 Cloudflare Mesh 节点。
- 从资源选择器中选择一个或多个特定的 Tunnel 或 Mesh 节点。
- 保存策略。
您可以将多个细粒度策略附加到同一个成员,以便用不同的角色覆盖不同的 Tunnel 和 Mesh 节点。
列表终结点具有授权感知能力。当主体调用列表终结点时,响应将过滤为他们至少具有读取访问权限的资源。
| 终结点 | 方法 | 返回 |
|---|---|---|
/accounts/{account_id}/cfd_tunnel |
GET |
主体可以读取或管理的 Cloudflare Tunnel 实例。 |
/accounts/{account_id}/warp_connector |
GET |
主体可以读取或管理的 Cloudflare Mesh 节点。 |
/accounts/{account_id}/teamnet/routes |
GET |
附加到主体可以读取或管理的 Tunnel 的路由。 |
拥有涵盖 Tunnel 和 Mesh 的账户级角色的成员继续可以看到账户中的所有资源。
- 现有的账户级角色和 API 令牌继续像以前一样发挥作用。
- 使用账户级令牌进行身份验证的现有自动化(例如,使用
Cloudflare Access令牌的 Terraform 流水线)不受影响。 - 细粒度权限是可选的(opt-in)。向成员授予细粒度权限会增加其功能,但绝不会移除该成员从账户级角色中已有的功能。
- 角色参考 — Cloudflare 角色的完整列表,包括针对 Tunnel 和 Mesh 节点的资源范围角色。
- 角色范围 — 策略范围如何在账户、域和资源层之间工作。
- 管理账户成员 — 成员邀请和编辑流程。
- Cloudflare Tunnel
- Cloudflare Mesh