Cloudflare Workers デプロイをクライアント単位で分離する権限設計

Cloudflare Workers デプロイをクライアント単位で安全に分離する方法を解説します。4つのロール、アカウント所有APIトークン、Wranglerの設定、バインディングやDurable Objects、Routesに残る権限上の注意点まで、制作会社が実運用へ移す手順を具体的に整理しました。

Tuesday, September 15, 2026Omid Saffari
Cloudflare Workers デプロイをクライアント単位で分離する権限設計

Cloudflareの4つのWorkerロールを使うと、1つの共有デプロイ認証情報にもクライアント単位の境界を設けられます。2026年9月15日以降、制作会社は、より広いポリシーによって権限が拡張されていない限り、Cloudflare Workers デプロイを担うクライアントのCIジョブに既存Worker 1つのデプロイだけを許可し、削除権限やアカウント内の他のWorkerへのアクセスは渡さずに済みます。

Cloudflare Workers デプロイで重要なのはスコープ

権限は2つの要素で決まります。ロールは「何ができるか」、スコープは「どこでできるか」を定めます。

Cloudflareでは、チームメンバー、User Group、エージェント、APIトークンに対して、Workerロールと個別Workerのスコープを組み合わせられるようになりました。同じロールを全Workerに適用することもできますが、今後はその必要がありません。

一見すると、小さな管理機能に思えるかもしれません。しかし、1つのCloudflareアカウントで複数クライアントを運用する制作会社や代理店にとって、引き渡しの設計が変わります。クライアントAのデプロイ認証情報を、クライアントAのWorkerだけで止められるからです。

9月15日のリリースは全顧客が利用でき、ダッシュボード、API、Terraformから設定できます。

Workersのロールリファレンスに記載されたロールは、次の4つです。

ロールできることできないこと
Metadata Read-Only設定、メトリクス、ログ、トレースを閲覧するWorkerコードの閲覧や変更
Content Read-OnlyWorkerコード、設定、オブザーバビリティデータを閲覧するWorkerの変更やデプロイ
Editor既存Workerの読み取り、更新、デプロイ、名前変更を行うWorkerの作成や削除
Admin選択したWorkerを全面的に管理する個別Workerのスコープから別のWorkerを作成する

この分割に意味があるのは、デバッグ、コードレビュー、コードのリリース、サービスの削除が、それぞれ別の仕事だからです。すべてを同じ認証情報にまとめる必要はありません。

従来のCloudflare Workers権限はアカウント単位でした。新しいモデルでは、Developer Platform全体、全Worker、または既存Worker 1つに適用範囲を設定できます。Workers製品単位のポリシーは、現在と将来のすべてのWorkerを対象にします。個別Workerのポリシーが対象にするのは、選択したWorkerだけです。

ただし、構造上の制約が1つあります。まだ存在しないWorkerをスコープに指定することはできません。新規Workerの作成には、引き続き製品単位のAdminが必要です。

クライアントへの引き渡しはどう変わるか

クライアントごとにWorkerを1つずつホストしている小規模な制作会社を考えてみます。デプロイ用ワークフローに必要なのは、client-a-apiの新バージョンを公開することです。Workerの新規作成、そのWorkerの削除、client-b-checkoutへのアクセスは必要ありません。

今回のリリース以前は、Cloudflareが現在レガシーと位置付ける一般的なWorkers向けCI権限は、アカウント単位でした。選択肢は、広すぎる認証情報を受け入れるか、クライアントを別アカウントへ分離するかです。個別Workerのスコープによって、もう1つの方法が加わりました。アカウント構成は変えず、デプロイトークンにはclient-a-apiだけのEditorを付与します。

Worker単位の制御は全顧客が利用できるため、サブスクリプションの計算は変わりません。変わるのは運用上の計算です。

ただし、このモデルには重要なトレードオフが含まれていません。クライアント別にスコープを限定した12個の認証情報は、共有トークン1つよりも発行、保管、ローテーションの対象が増えます。利点は認証情報が減ることではありません。認証情報の不具合や漏えいが起きたとき、調査すべきプロジェクトの範囲を狭められることです。

Workerを1つだけ運用し、デプロイ権限を共有していない個人開発者には、大きな変化はありません。プラットフォーム担当チームに全Workerの管理権限を意図的に持たせている組織も同様です。この機能が効くのは、複数の担当者、クライアント、自動化ジョブが1つのCloudflareアカウントを共有しつつ、影響範囲までは共有すべきでない場合です。

クライアントのデプロイジョブに必要十分な権限を与える

最初の引き渡しに適しているのは、安定したRouteまたはCustom Domainを持つ既存Workerです。これなら、Workerの作成とドメイン変更をデプロイジョブから切り離せます。

  1. ロールを選ぶ前にジョブの役割を言語化する

    まず、1文で定義します。「このワークフローは、既存のclient-a-api Workerの新バージョンをデプロイします。」

    この定義なら、個別WorkerスコープのEditorが適切です。ジョブが新規Workerを作成する場合は、製品単位のAdminが必要です。RouteまたはCustom Domainの追加、変更、削除も行うなら、対象となる各ゾーンにWorkers Routes Writeも必要です。

  2. アカウント所有のAPIトークンを作成する

    CloudflareでManage Account > Account API Tokensを開き、アカウント所有トークンを作成します。スコープをSpecified Workersに設定してclient-a-apiを選び、ロールにはEditorを指定します。

    ワークフローには、個人のユーザートークンではなくアカウント所有トークンを使います。Cloudflareはアカウント所有トークンを、長期運用する連携のためのサービスプリンシパルと位置付けています。作成者が退職しても、デプロイが止まらない設計にできます。トークンの作成または更新には、Super Administrator権限が必要です。

  3. そのトークンでWranglerを実行する

    トークンはデプロイシステムのシークレットストアに保存します。CloudflareがWrangler向けに案内している環境変数は次のとおりです。

    Bash
    export CLOUDFLARE_API_TOKEN="<YOUR_API_TOKEN>"
    export CLOUDFLARE_ACCOUNT_ID="<YOUR_ACCOUNT_ID>"
    npx wrangler deploy

    既存Worker用に設定済みのプロジェクトから実行します。wrangler loginで代用することはできません。現在、そのOAuthフローはきめ細かな権限設定に対応していないためです。

  4. 切り替えを確認してから広い権限を外す

    新しいトークンを使って影響のないバージョンをデプロイし、対象のWorkerが更新されることを確認します。トークンに製品単位のWorkersロールや、無関係なリソースのスコープがないことも確かめます。

    その後、旧来の広いデプロイ用シークレットをワークフローから削除します。テスト中に両方の認証情報を残すのは妥当ですが、テスト後も併用すれば、せっかく設けた境界が機能しません。

通常のデプロイに必要な引き渡しは、これで完了です。Editorには、そのWorkerの更新、アップロード、デプロイ、ロールバック、名前変更、シークレット管理が含まれるため、クライアントのジョブはこれらを実行できます。一方でWorkerは削除できず、個別Workerのポリシーから他のWorkerへアクセスすることもできません。

4つのジョブに合う4つのポリシー

証跡の収集だけを担うサポートエージェント

デバッグ用エージェントには、対象WorkerのMetadata Read-Onlyを付与します。ソースコードを読んだりサービスを変更したりせず、設定、メトリクス、ログ、トレースを確認できます。

これにより、証跡収集のワークフローが、知らないうちにコードレビューやデプロイのワークフローへ広がるのを防げます。同じロールで、そのWorkerに対するwrangler tailも実行できます。

クライアントの実装をレビューする外部開発者

外部委託の開発者には、クライアントのWorkerにContent Read-Onlyを付与します。デプロイ済みのソースと設定は確認できますが、変更やデプロイはできません。

レビューの境界が明確になるため、稼働中の内容を理解する必要があるという理由だけでEditorを渡さずに済みます。

クライアント専用のCIパイプライン

アカウント所有トークンに、既存Worker 1つだけのEditorを付与します。バージョンの公開とロールバックはできますが、Workerの削除や他のWorkerへのアクセスはできません。

認証情報がスタッフ個人ではなくワークフローに属するため、制作会社からクライアントへ引き渡す用途には特に適しています。クライアント業務でブラウザエージェントも運用しているなら、Cloudflareの許可済みホスト制御が境界の別の側面、つまりブラウザのアクセス先を制御します。今回のリリースが制御するのは、デプロイを行う主体が変更できるWorkerです。

ライフサイクル変更を担うプラットフォーム管理者

削除権限が本当に必要な担当者または自動化に限り、Adminを付与します。Workerを作成する管理者には製品単位のAdminを残し、完成したWorkerの日常運用は、より狭いポリシーへ引き渡します。

これにより、ライフサイクル管理と日常的なリリース作業を明確に分けられます。デプロイジョブに、クライアントサービスを作成・廃止する担当者と同じ権限は不要です。

境界は狭くなるが、完全な分離ではない

利点は確かですが、「1つのWorkerだけ」という説明を単純化しすぎると危険です。

Durable Objectsも同様に注意が必要です。Durable Objectsには独立したロールやスコープがなく、実装元のWorkerのアクセス権を継承します。Metadata Read-Onlyでは保存データにアクセスせず、Durable Objectのメトリクス、ログ、トレースを確認できます。一方、Editorは、SQLiteベースのDurable ObjectをData Studioから照会または変更するためにCloudflareが定める権限条件も満たします。

Routesも別の境界です。既存のRouteまたはCustom Domainを変えずに新バージョンをデプロイするだけなら、Editorで足ります。その接続を変更するには、対象となるすべてのゾーンにWorkers Routes Writeも必要です。またCloudflareによると、Custom Domainsは現在、Worker単位のロールに対応していません。

最後に、Cloudflareの権限は加算されます。直接付与した狭いポリシーによって、User Groupから継承した広いポリシーが打ち消されることはありません。Members画面には直接権限が表示されますが、Groupから継承したポリシーはGroupsタブで確認する必要があります。この確認を省くと、画面上は意図した狭いポリシーが見えていても、実効権限は広いままという事態が起こり得ます。

今すぐ対応すべきチーム

1つのアカウントで複数クライアントのWorkerを運用し、担当者、エージェント、CIジョブのいずれかが、Worker 1つの作業に対して全Workerの権限を持っているなら、今週中に対応する価値があります。既存Workerがあり、通常のデプロイでドメイン接続を変更しない環境ほど効果が明確です。

ワークフローがWorkerを作成する、RouteやCustom Domainを変更する、またはバインディング先のデータ製品へ直接アクセスする場合は、トークンを絞る前に待つべきです。先に必要な操作を洗い出さなければ、次回のデプロイが途中で失敗します。

Workerへのアクセスを共有していない、Workerを1つしか運用していない、またはアカウント全体を担うプラットフォームチームにデプロイを意図的に集約している場合は、影響ありません。

月曜日にまずやること

最初に、既存クライアント1社のCIデプロイで使う権限ポリシーを変更します。アカウント所有トークンをEditorにし、そのWorker 1つだけへスコープを限定します。影響を与えられるすべてのバインディングと継承対象のDurable Objectを一覧化し、直接ポリシーとGroupポリシーを確認したうえで、RouteまたはCustom Domainを変更せずにデプロイします。

正常に完了したら、旧来の全Worker向けシークレットを削除します。この1回の切り替えで実効性のある境界ができ、次のクライアントにも繰り返せるパターンが手に入ります。

プラットフォームの変更点をわかりやすく整理した運用ノートをさらに読みたい方は、ニュースレターにご登録ください。

最終更新
2026年9月15日
カテゴリー
Explained

Googleでこのサイトを優先する

omidsaffari.comをGoogle検索の優先ソースに追加

omidsaffari.comを優先ソースに設定すると、GoogleがTop Stories・AI Overviews・AI Modeであなたのために優先表示します。

AI 文字起こしの料金は据え置き:Grok Voice Transcribe 2.0移行ガイド

AI 文字起こしの料金は据え置き:Grok Voice Transcribe 2.0移行ガイド

Grok Voice Transcribe 2.0のAI 文字起こし料金は、バッチが音声1時間あたり$0.10、ストリーミングが$0.20のままです。デフォルトモデル変更で起こり得る出力差、移行前に確認すべき総コスト、1.0と2.0を同条件で検証して本番モデルを固定する手順を、運用担当者向けに整理します。2026年9月20日Explained
HAR ファイルで原因を追う:Cloudflare Browser Runの失敗調査

HAR ファイルで原因を追う:Cloudflare Browser Runの失敗調査

Cloudflare Browser RunのSession RecordingにInspectパネルが加わり、完了後のログ、通信、最終DOMを確認できるようになりました。HAR ファイルで失敗原因を絞り込み、不要な再実行を減らす手順、料金への影響、録画では見えない領域まで、実務向けに分かりやすく解説します。2026年9月19日Explained
v0でnpm プライベートパッケージを活用する:社内コンポーネント再利用の実践ガイド

v0でnpm プライベートパッケージを活用する:社内コンポーネント再利用の実践ガイド

v0が共有環境変数経由でnpm プライベートパッケージに対応。NPM_TOKENとNPM_RCの選び方、認証情報をモデルやSandboxに渡さない仕組み、社内コンポーネントを試作から本番へ引き継ぐ設定手順、料金と実務上の注意点を整理し、差し替え工数を減らせるか判断する方法を解説します。2026年9月19日Explained
Claude Code 料金を見直す:auto modeの分類器課金が消える条件

Claude Code 料金を見直す:auto modeの分類器課金が消える条件

Claude Code 2.1.278では、auto modeの安全判定をサーバー側で処理できるセッションの分類器リクエスト課金がなくなります。API、Enterprise、クラウド、ゲートウェイ環境で適用条件を見極め、/statusで実際の課金経路を確認し、予算へ正しく反映する方法を解説します。2026年9月19日Explained
Vercel ビルド高速化:Turboを1回だけ使う方法と料金

Vercel ビルド高速化:Turboを1回だけ使う方法と料金

VercelのPro/Enterpriseで、プロジェクト設定を変えずに1回のデプロイだけTurboを指定する方法を解説します。GitHubのコミットマーカー、Vercel CLI、デプロイAPIという3つの経路と、1分あたり$0.105からの料金、権限不足時のフォールバック、通常ビルドとの比較手順まで整理しました。2026年9月18日Explained
ChatGPT Word連携の実力:できること・料金・導入手順

ChatGPT Word連携の実力:できること・料金・導入手順

ChatGPT Word連携を使えば、Wordのサイドバーで下書き、要約、選択範囲の修正、見出し調整まで完結します。利用条件、共有される使用量、料金の考え方、データ境界、導入手順を、提案書やSOPの具体例とともに解説。コピペ往復を減らしつつ、事実や約束を守るレビュー方法も紹介します。2026年9月18日Explained
Google Antigravity移行ガイド:10月5日までのローカルジョブ対応

Google Antigravity移行ガイド:10月5日までのローカルジョブ対応

Google Antigravityの5月版エージェントは2026年10月5日に停止予定です。出力のみのジョブはID変更で済みますが、ローカルツールやfunction_callを扱う環境には、新しいツール名、PascalCase引数、行範囲編集に対応するアダプター改修が必要です。安全な移行手順を解説します。2026年9月18日Explained
Cloudflare WorkersのRPCトレースで遅延箇所を特定する

Cloudflare WorkersのRPCトレースで遅延箇所を特定する

Cloudflare WorkersのRPCトレースで、遅い顧客リクエストを別のWorkerやDurable Objectまで追跡。担当サービスとメソッドを見つける手順、サンプリング率、保持期間、2026年10月1日以降のスパン単位の料金まで、チェックアウトの例で実践的に解説します。2026年9月17日Explained
ニュースレター

毎週日曜、一通の手紙。動くシステムの話。感想戦ではなく。

週刊。スパムなし。いつでも解除できます。