FlarePurge
日本語

キャッシュ削除用の Cloudflare API トークンを作る

キャッシュを削除できる Cloudflare API トークンに必要な権限は2つだけです。ゾーン一覧の取得に Zone → Zone → Read、キャッシュの削除に Zone → Cache Purge → Purge。作成は dash.cloudflare.com の「マイプロフィール → API トークン → トークンを作成」から、カスタムトークンのテンプレートを選びます。

最終更新:

Cloudflare の API に認証する方法は2つありますが、まともなのは片方だけです。このガイドで扱うのはそちら、つまり権限を絞ったAPIトークンで、できることは2つだけ、それ以外は何もできません。

必要な2つの権限

API 経由のキャッシュ削除は2つのエンドポイントに触れるため、トークンにも2つの権限が要ります。

権限できること必須か
Zone → Zone → Readアカウント内のゾーンを名前と ID つきで一覧する必須
Zone → Cache Purge → Purgeそのゾーンのキャッシュ済みコンテンツを削除する必須
Account → Account Settings → Readアカウント名を読み、ゾーンをアカウント別にまとめる任意

リストはこれで全部です。パージ用トークンが DNS レコードを読んだり、ファイアウォールのルールをいじったり、SSL 設定に近づいたりする理由はありません。万一漏れても、持ち主にできる最悪のことはキャッシュを空にすることだけです。

トークン作成の手順

  1. dash.cloudflare.com にログインします。
  2. 右上のプロフィールメニューからマイプロフィールを開き、API トークンタブへ。直リンクは dash.cloudflare.com/profile/api-tokens です。
  3. トークンを作成を押し、テンプレートを飛ばしてカスタムトークンを作成を選びます。
  4. 半年後の自分がわかる名前を付けます。token 3 より FlarePurge — iPhone のほうがまし。端末ごとに1つ作っておけば、失くした端末の分だけを失効できます。
  5. 権限Zone · Zone · Read を追加し、続けて Zone · Cache Purge · Purge を追加します。
  6. ゾーンリソースで、トークンが届く範囲を決めます。すべてのゾーンが楽な選択、特定のゾーンが慎重な選択です。
  7. 固定 IP でないかぎりIP アドレスフィルタは空のままに。スマートフォンはネットワークが頻繁に変わるので、この設定はいずれ自分を締め出します。
  8. 自動で失効させたいならTTLを設定します。外部の協力者には有効ですが、自分の端末には不要です。
  9. 概要に進むを押し、上の2つの権限だけが並んでいることを確認してトークンを作成で確定します。

Global API Key を使わない理由

Global API Key は古い認証方式で、メールアドレスと1つのキーだけでアカウント内のすべてのゾーンとすべての設定に対する完全な管理者権限を与えます。範囲を絞ることも、1つの操作に限定することもできません。

Global API Key を求めるアプリは、キャッシュを空にするボタンを押すために、あなたの DNS とファイアウォールと SSL 設定と請求情報の鍵をまとめて要求しているわけです。FlarePurge は意図的に受け付けません。それを要求してくるツールがあるなら、そのツールについて何かがわかります。

トークンが使えるか確認する

どこかに貼り付ける前に、どの端末のターミナルからでもトークンを検証できます。Cloudflare にはそのためのエンドポイントがあります。

curl -s https://api.cloudflare.com/client/v4/user/tokens/verify \
  -H "Authorization: Bearer あなたのトークン" | jq

正常なトークンは "status": "active" を返します。Invalid API Token が返るなら、ほぼ確実にコピーが途中で切れています。値が長いので途切れやすいのです。

有効なだけでなく権限も正しいことを確かめるには、ゾーンを一覧してみます。

curl -s "https://api.cloudflare.com/client/v4/zones?per_page=5" \
  -H "Authorization: Bearer あなたのトークン" | jq '.result[].name'

ドメインが返ってくれば Zone:Read は入っています。success: true で空のリストが返る場合、トークンは有効でもゾーンリソースにゾーンが1つも含まれていません。戻って範囲を広げてください。

トークンの保管場所

パージ用トークンは認証情報であり、そのように扱うべきものです。FlarePurge は OS の安全な保管領域に置きます。Apple プラットフォームならキーチェーン、Android なら Keystore、Windows なら資格情報マネージャーです。平文のファイルや設定 plist には決して置きません。

  • 端末ごとに1つ。ノートパソコンを盗まれても、失効させるのは1つだけで、全部を再発行せずに済みます。
  • 使い回さず失効させる。ダッシュボードでの削除は即座に効き、コピーを持っている相手には何もできなくなります。
  • チャットやチケットに貼らない。ダッシュボードのスクリーンショットも漏洩です。作成画面にはトークンが写っています。
  • 監査ログを見る。Cloudflare は「アカウント管理 → 監査ログ」にトークンの利用を記録するので、身に覚えのないパージは見つかります。

次のステップ

トークンができたら、次はどの種類のパージを実行するかです。全消しは速くて大雑把、URL 指定は正確ですが準備に手間がかかります。比較はこちら。大量のパージで上限に当たる場合はAPI の制限を確認してください。