Cloudflare Token 权限

推荐配置(正式环境)

用途 存放位置 密钥名
运行时域名管理 Cloudflare kaisoumail-api Worker secret CLOUDFLARE_RUNTIME_API_TOKEN runtime token
部署流水线 GitHub repository secret CLOUDFLARE_DEPLOY_API_TOKEN deploy token

项目已经支持拆分 token,不需要改代码。 另外,直接在 /domains 里绑定新域名还需要 GitHub repository secret CLOUDFLARE_ACCOUNT_ID。deploy workflow 会把它注入 API Worker 运行时变量;这不是 token 权限,但如果缺失,/api/meta 会返回 cloudflareDomainBindingEnabled=false

Runtime token 示意配置

支持👤
← 返回以查看所有令牌
创建自定义令牌
正式环境 / runtime token
给 kaisoumail-api Worker 用,只负责域名目录和 Email Routing 管理。
令牌名称
为您的 API 令牌指定描述性名称。
cfm-runtime
权限
按 KaisouMail 对应场景把权限配全即可。
资源
权限
权限级别
区域
Zone
编辑
区域
Email Routing Rules
编辑
区域
Zone Settings
编辑
帐户资源
按这个示意选择范围即可。
包括
目标 Cloudflare 帐户
区域资源
推荐覆盖当前项目会管理到的所有目标区域。
包括
该帐户内所有 zones(含待新建 zone)
把这把 token 填到 Cloudflare Worker secret:CLOUDFLARE_RUNTIME_API_TOKEN。

Deploy token 示意配置

支持👤
← 返回以查看所有令牌
创建自定义令牌
正式环境 / deploy token
给 GitHub Actions 用,只负责部署、Pages 和远程 D1 migration。
令牌名称
为您的 API 令牌指定描述性名称。
cfm-deploy
权限
按 KaisouMail 对应场景把权限配全即可。
资源
权限
权限级别
帐户
D1
编辑
帐户
Workers 脚本
编辑
帐户
Workers R2 存储
编辑
帐户
Cloudflare Pages
编辑
区域
Workers Routes
编辑
帐户资源
按这个示意选择范围即可。
包括
目标 Cloudflare 帐户
区域资源
推荐覆盖当前项目会管理到的所有目标区域。
包括
用于 Worker Routes 的区域
把这把 token 填到 GitHub repository secret:CLOUDFLARE_DEPLOY_API_TOKEN。

快速上手(单人试用)

如果你只是单人试用、自建环境、临时验证或低风险内部演示,可以只配一把共享 token:

  • Cloudflare kaisoumail-api Worker secret:CLOUDFLARE_API_TOKEN
  • GitHub repository secret:CLOUDFLARE_API_TOKEN

这把共享 token 需要同时覆盖运行时和部署两侧权限。

支持👤
← 返回以查看所有令牌
创建自定义令牌
快速上手 / shared token
单人试用时可共用;同一把 token 同时给 Worker 和 GitHub Actions。
令牌名称
为您的 API 令牌指定描述性名称。
cfm
权限
按 KaisouMail 对应场景把权限配全即可。
资源
权限
权限级别
区域
Zone
编辑
区域
Email Routing Rules
编辑
区域
Zone Settings
编辑
帐户
D1
编辑
帐户
Workers 脚本
编辑
帐户
Workers R2 存储
编辑
帐户
Cloudflare Pages
编辑
区域
Workers Routes
编辑
帐户资源
按这个示意选择范围即可。
包括
目标 Cloudflare 帐户
区域资源
推荐覆盖当前项目会管理到的所有目标区域。
包括
该帐户内所有 zones(含待新建 zone)
把同一个 token 同时填到 Worker secret 和 GitHub repository secret:CLOUDFLARE_API_TOKEN。

读取顺序

面向 优先读取 回退读取
API Worker 运行时 CLOUDFLARE_RUNTIME_API_TOKEN CLOUDFLARE_API_TOKEN
部署流水线 CLOUDFLARE_DEPLOY_API_TOKEN CLOUDFLARE_API_TOKEN

如果显式拆分 token 和共享 token 同时存在,项目优先使用显式拆分的那一组。

Runtime token 最小权限

运行时代码会调用:

  • GET /zones
  • POST /zones
  • GET /zones/:zone_id
  • DELETE /zones/:zone_id
  • POST /zones/:zone_id/email/routing/enable
  • POST /zones/:zone_id/email/routing/dns
  • POST /zones/:zone_id/email/routing/rules
  • DELETE /zones/:zone_id/email/routing/rules/:rule_id
  • GET /zones/:zone_id/email/routing/rules/catch_all
  • PUT /zones/:zone_id/email/routing/rules/catch_all

所以 runtime token 只需要:

权限 用途
Zone: Zone: Edit 列出、校验、创建、删除项目直绑 zone
Zone: Email Routing Rules: Edit 创建/删除邮箱 routing rule
Zone: Zone Settings: Edit 启用 Email Routing

Scope 要覆盖所有要接入 KaisouMail 的 zones。 在 Cloudflare 的自定义 token 界面里,Zone: Zone: Edit 已经覆盖 /zones 这条链路需要的读/list 能力,不需要再额外添加一条 Zone: Zone: Read

Catch All 补充说明

  • 引入 Catch All 后,项目不需要新增 secret 名;仍然使用现有的 CLOUDFLARE_RUNTIME_API_TOKEN,共享模式下仍可回退到 CLOUDFLARE_API_TOKEN
  • Cloudflare 官方 API 文档说明:
    • GET /zones/:zone_id/email/routing/rules/catch_all 接受 Email Routing Rules ReadEmail Routing Rules Write
    • PUT /zones/:zone_id/email/routing/rules/catch_all 需要 Email Routing Rules Write
  • KaisouMail 运行时本来就要求 Zone: Email Routing Rules: Edit, 所以 Catch All 开关不会增加 runtime token 的最小权限集合。

Deploy token 最小权限

部署流程会做:

  • wrangler deploy
  • wrangler pages deploy
  • remote D1 migration

所以 deploy token 需要:

权限 用途
Account: D1: Edit 远程 D1 migration
Account: Workers Scripts: Edit 发布 Worker
Account: Workers R2 Storage: Edit 校验并绑定 R2 bucket
Account: Cloudflare Pages: Edit 发布 Pages
Zone: Workers Routes: Edit 绑定 Worker 自定义域路由

共享 token 并集权限

如果你选择快速上手的共享 token,它必须同时具备:

  • Zone: Zone: Edit
  • Zone: Email Routing Rules: Edit
  • Zone: Zone Settings: Edit
  • Account: D1: Edit
  • Account: Workers Scripts: Edit
  • Account: Workers R2 Storage: Edit
  • Account: Cloudflare Pages: Edit
  • Zone: Workers Routes: Edit

常见报错

Authentication error

优先检查这两项:

  1. token 是否具备 Zone: Zone Settings: Edit
  2. token 的 scope 是否覆盖目标 zone

域名目录能看到 zone,但不能启用

这通常表示 token 只有读取能力,没有对应 zone 的写权限。能列出 zone,不代表能启用 Email Routing。

相关阅读

官方文档