为每位团队成员和代理授予对 Workers 的适当访问权限
内容提要
Cloudflare为Workers推出资源级访问控制,新增元数据只读、内容只读、编辑者和管理员四种角色,可精确授予团队成员或AI代理对单个Worker的权限,遵循最小权限原则。该功能面向所有客户开放,支持仪表盘、API和Terraform配置,未来将扩展至D1、R2和KV等产品。
延伸解读
最小权限原则的落地实践
文章强调,过度宽泛的角色会迫使授予超出必要的权限,而权限过细又难以选择。Cloudflare 通过四种角色(元数据只读、内容只读、编辑者、管理员)和三种作用域(开发者平台、产品、资源)的搭配,让团队能精确控制成员或代理对单个 Worker 的访问。这体现了最小权限原则,有助于降低误操作或恶意变更的风险。
对 CI/CD 与代理的安全影响
编辑者角色允许读写内容并更新设置,但不能创建或删除资源。将编辑者角色限定到单个 Worker 的 API 令牌,即使令牌泄露或 CI 配置错误,影响也仅限于该 Worker,无法删除它或影响其他应用。这为自动化流程和 AI 代理提供了更安全的部署方式,避免因权限过大导致生产事故。
路由与 Durable Objects 的权限细节
要添加或修改 Worker 的路由或自定义域,需要同时拥有该 Worker 的编辑者权限和区域的 Workers Routes 权限,但部署新版本无需区域权限。Durable Objects 没有独立角色,其访问权限由实现它的 Worker 决定:元数据只读可查看指标日志,但访问 Data Studio 修改数据需要编辑者角色。这些细节帮助读者理解权限边界。
迁移建议与未来扩展
旧版 Workers 角色和权限没有弃用日期,现有分配继续有效,但官方建议迁移到新角色,因为新角色支持更细粒度的资源级访问。未来,相同的角色将扩展到 D1、R2、KV 等产品,实现跨开发者平台的一致授权模型。团队应提前规划,逐步采用新角色以享受更精细的控制。
Q&A
Cloudflare Workers 新增了哪些访问控制角色?
Cloudflare 为 Workers 新增了四种角色:元数据只读、内容只读、编辑者和管理员。元数据只读允许查看资源列表、设置和可观测性数据(如指标、日志和跟踪),但不能访问产品内容;内容只读允许读取产品内容(如 Worker 代码或 D1 数据库内容),但不能修改;编辑者可以读写产品内容并更新设置,但不能创建或删除资源;管理员拥有完全控制权,包括创建、重命名、删除资源以及授予其他用户访问权限。
如何为特定 Worker 创建具有细粒度权限的 API 令牌?
您可以通过 Cloudflare 仪表盘、API 或 Terraform 为特定 Worker 创建具有细粒度权限的 API 令牌。例如,在仪表盘中,转到“管理账户”>“成员”,选择成员,然后创建具有所需角色和 Worker 范围的政策。或者,您可以直接创建 API 令牌,并指定其仅能访问该 Worker。这样,代理或 CI/CD 系统就只能对该 Worker 进行操作,而无法访问账户中的其他资源。
新的 Workers 访问控制角色如何帮助实现最小权限原则?
新的角色设计旨在平衡权限的粒度与易用性。通过提供四种不同级别的访问权限(元数据只读、内容只读、编辑者、管理员),您可以根据需要精确授予团队成员或代理所需的权限,避免过度授权。例如,调试问题时只需授予元数据只读权限,而无需暴露源代码;CI/CD 部署时只需授予编辑者权限,而无需赋予删除权限。这遵循了最小权限原则,降低了安全风险。
这些新的访问控制角色是否适用于其他 Developer Platform 产品?
目前这些角色仅适用于 Workers,但 Cloudflare 计划将相同的资源级访问控制扩展到其他 Developer Platform 产品,包括 D1、R2 和 KV。未来,您将能够为这些产品的特定资源(如单个数据库或存储桶)授予适当的角色,从而实现一致的授权模型。
如何管理团队对 Workers 的访问权限?
您可以通过 Cloudflare 仪表盘、API 或 Terraform 管理团队访问权限。具体来说,可以转到“管理账户”>“成员”,选择成员并创建具有所需角色和 Worker 范围的政策。如果多个成员需要相同的访问权限,可以创建用户组,将政策分配给组,然后添加成员,组内所有成员将自动继承该政策。此外,还可以使用 API 令牌为代理或 CI/CD 系统授予特定 Worker 的访问权限。
新的 Workers 访问控制角色与旧版角色有何不同?
旧版角色(如 Workers Platform Read-Only、Workers Platform Admin 等)权限较宽泛,通常作用于整个账户或产品级别。新的角色(元数据只读、内容只读、编辑者、管理员)支持资源级作用域,可以精确到单个 Worker,并且设计更加一致,未来将扩展到其他 Developer Platform 产品。Cloudflare 建议用户迁移到新角色,但旧版角色目前没有弃用日期,现有分配将继续有效。