アップデートトップに戻る

CF API トークンの作り方

line-harness の自動アップデートは、Cloudflare API 経由で あなたの Worker・Pages・D1 を更新します。そのために、 必要最小限の権限を持った API トークンを 1 つだけ発行して、 Worker の Secret に登録します。所要時間は 5 分くらいです。

なぜ必要か

ダッシュボードから「アップデート」ボタンを押すと、line-harness は 以下の Cloudflare リソースを操作します:

  • Worker: 新しいバージョンのコードをデプロイ
  • Pages: ダッシュボード UI をビルド & デプロイ
  • D1: スキーマ migration を適用
  • Account: 既存設定の参照

これらを実行するには、Cloudflare API への認証情報が必要です。 OAuth ではなくユーザー発行の API トークンを使うことで、権限を最小化し、いつでも revoke できるようにしています。

必要な scope (権限)

以下の 4 つの権限だけを持ったカスタムトークンを作成します。 無関係なリソース (Zone, DNS, R2 など) には触らないので、 万が一トークンが漏れても影響範囲は限定されます。

カテゴリ権限レベル
AccountWorkers ScriptsEdit
AccountCloudflare PagesEdit
AccountD1Edit
AccountAccount SettingsRead

作成手順

1. API Tokens 画面を開く

dash.cloudflare.com/profile/api-tokens を開きます (右上のプロフィール → My Profile → API Tokens でも辿れます)。

2. Create Token をクリック

画面右上の 「Create Token」 ボタンを押します。 テンプレート一覧が表示されるので、一番下までスクロールして「Custom token」 「Get started」 を押します。

3. 権限を追加する

「Permissions」セクションで、上の表の 4 つの権限を順番に追加します。 各行で「Account」「Workers Scripts」「Edit」のように選びます。

4. Account Resources を絞る

「Account Resources」セクションで、対象の Cloudflare アカウントを 1 つ選びます。「Include - All accounts」は使わないでください。 複数アカウントを持っている場合、line-harness 用のアカウントだけを選ぶことで 事故を防げます。

5. Token name を付ける

後で見分けやすいように、token の名前を line-harness-update など分かりやすいものに設定します。

6. Create して、表示されたトークンをコピー

「Continue to summary」→「Create Token」と進むと、トークン文字列が表示されます。

このトークンは、画面を閉じたら二度と表示されません。必ずクリップボードにコピーしてから次に進んでください。万が一なくしたら、 新しいトークンを作り直して、古い方を revoke すれば OK です。

Worker Secret に保存する

コピーした token を、line-harness の Worker Secret として登録します。 サーバーに SSH で入り、以下のコマンドを実行してください。

cd ~/.line-harness

# YOUR_TOKEN をさっきコピーしたトークンに置き換える
printf '%s' "YOUR_TOKEN_HERE" | npx wrangler secret put CF_API_TOKEN
必ず printf を使ってくださいecho はデフォルトで末尾に改行を付け足します。 改行が混ざったトークンを保存すると、Cloudflare API が 404 を返してしまい、 アップデートが動かなくなります。

設定後、npx wrangler secret list CF_API_TOKEN が一覧に出れば成功です。

セキュリティについて

  • Token は Cloudflare 側で暗号化されて保存され、 ダッシュボードからも値は読み取れません (登録 / 削除 / 上書きのみ可能)
  • Worker のコード内では env.CF_API_TOKEN として参照できますが、 ログには出さない / レスポンスに含めない設計になっています
  • 万が一漏れたと感じたら、Cloudflare ダッシュボードから即時 revoke できます
  • 権限が最小化されているので、漏れても影響は line-harness の Worker / Pages / D1 に限定されます (Zone や DNS は触れません)

関連ページ