关于 cloudflare-access-app-setup
用于创建或更新可自托管的 Cloudflare Access 应用、邮箱允许列表策略及可选服务令牌,适合一次性配置、CI 测试和凭证轮换,无需管理 Pulumi 状态。
主要功能
- 01幂等地配置 Access 应用
- 02创建邮箱允许列表策略
- 03可选创建服务令牌
- 04通过环境变量或命令行配置
- 05返回应用 AUD 和令牌凭证
适用场景
- 01为新的 Cloudflare Worker 配置 Access
- 02为 CI 冒烟测试添加服务令牌
- 03轮换服务令牌凭证
- 04为拉取请求测试创建临时 Access 应用
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mizchi/ skills --skill cloudflare-access-app-setup安装后在 Claude Code 中输入/cloudflare-access-app-setup确认已加载。
附带文件assets/scripts/setup-access-app.tsREADME.md
详细介绍
Cloudflare Access 应用设置(由 API 驱动)
创建可自托管的 Cloudflare Access 应用、电子邮件允许列表策略和用于无头 CLI / CI 访问的服务令牌。操作具有幂等性:重新运行会更新现有应用,而不会创建重复项。
Pulumi 是推荐的长期方案(声明式 + 漂移检测),但以下情况更适合使用脚本:
- 一次性设置单个应用,不想维护 Pulumi 状态。
- CI 需要为每个 PR 创建临时 Access 应用以进行测试。
- 替换服务令牌(轮换凭据),而无需重新导入其余堆栈。
何时调用
适用于以下情况:
- 为尚无现有 Pulumi 堆栈的全新 Cloudflare Worker 设置 Access。
- 为现有 Access 应用添加服务令牌,以便 CI 执行冒烟测试。
- 轮换服务令牌凭据,而不改动其余基础设施。
包含内容
assets/scripts/setup-access-app.ts
通用脚本。通过环境变量 / CLI 参数读取配置,调用 https://api.cloudflare.com/client/v4/accounts/<id>/access/apps 上的 Cloudflare API。输出应用的 AUD(在 cloudflare.config.ts 中声明为 worker.env.APP_ACCESS_AUD: bindings.text(aud)),如果使用 --create-service-token,还会输出令牌的 client_id + client_secret(粘贴到 .env.cloudflare 中)。
输入(环境变量或 CLI):
| 变量 | 必填 | 默认值 |
|---|---|---|
CLOUDFLARE_API_TOKEN | 是 | — |
CLOUDFLARE_ACCOUNT_ID | 是 | — |
--name | 是 | — |
--domain | 是 | — |
--allow-emails | allow-emails / service-token 中的一个 | — |
--create-service-token | 可选 | false |
--session-duration | 可选 | 24h |
--api-base | 可选 | https://api.cloudflare.com/client/v4 |
何时不应调用
- 你已使用 Pulumi 管理基础设施。请使用 Pulumi 的
ZeroTrustAccessApplication资源;漂移检测值得多维护一个状态文件。 - 你需要复杂的策略图(多租户、群组成员身份、基于时间的访问)。该脚本有意保持精简:一个电子邮件允许列表 + 一个可选服务令牌。
源码
mnemo 版本(包含硬编码的 mnemo 域名默认值)位于 mizchi/mnemo/blob/main/mnemo-server/scripts/setup-access-app.mjs。此处提供的版本与该脚本相同,只是将域名默认值改为参数配置。
如需手动执行 Access 操作,请使用 pnpm exec cf cli search "create a self hosted Access application" 查找 cf 命令,然后检查其架构。此处打包的辅助工具直接调用 REST API,无需 Wrangler。请参阅 cf 身份验证。