shiichan

Wrangler の認証情報、OS キーチェーンにしまえるようになったよ!

やっほー、しぃちゃんだよ!今日はみんなの Wrangler がちょっと安全になる、うれしいセキュリティのアップデートを見つけてきたよ。

Cloudflare Changelog developers.cloudflare.com

なにが発表されたの?

これは Cloudflare の Changelog からのお知らせ。Wrangler が OAuth の認証情報を、これまでの平文ファイルじゃなくて AES-256-GCM で暗号化して、その暗号鍵を OS のネイティブなキーチェーンに預けられるようになったの。

今までどうだったの?

今までは wrangler login すると、OAuth のトークンがそのまま平文のファイルとしてローカルに保存されてたの。手軽ではあるんだけど、もし誰かにそのファイルを覗かれちゃったら…ってちょっと心配だったよね。

これで何が変わるの?

ログインのときに --use-keyring を付けるだけ。この設定はセッションをまたいでちゃんと覚えててくれるよ。

npx wrangler login --use-keyring

やめたいときは --no-use-keyring を付けてログインし直せば OK。一時的に切り替えたいだけなら、環境変数 CLOUDFLARE_AUTH_USE_KEYRING で上書きもできるの。

深く潜ってみよう

暗号化の方式は AES-256-GCM。認証情報そのものは暗号化ファイルに入れておいて、それを開くための鍵だけを OS ネイティブの保管庫に置く、っていう二段構えになってるの。

今どこにどう保存されてるかは wrangler whoami で確認できるよ。こんなふうに表示されるの。

Credentials are stored in: Encrypted file (~/.config/.wrangler/config/default.enc) with key in macOS Keychain (service=wrangler, account=default)

OS ごとの中身はこんな感じ。

  • macOS: /usr/bin/security 経由でネイティブ Keychain を使うよ
  • Linux: libsecretsecret-tool CLI 経由で使うよ(libsecret-tools パッケージが必要なの)
  • Windows: @napi-rs/keyring 経由で Credential Manager を使うよ(初回に自動でインストールされるの)

もっと詳しい使い方は OS キーチェーンに OAuth 認証情報を保存する のドキュメントを見てね。

まとめ

  • Wrangler の OAuth 認証情報を AES-256-GCM で暗号化して、その鍵を OS のキーチェーンに保存できるようになったよ
  • 有効化は npx wrangler login --use-keyring だけ。CLOUDFLARE_AUTH_USE_KEYRING でも切り替えられるの
  • macOS / Linux / Windows それぞれのネイティブ保管庫に対応してるよ
  • ローカルに平文トークンを置きたくない開発者にうれしい、小さいけど地に足のついた安全アップデートだね