1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Cloudflare Workersでシークレットを設定する3つの方法

1
Posted at

はじめに

Cloudflare WorkersにReactアプリをデプロイしていたとき、APIキーなどのシークレットをどこに書けばいいか迷いました。

wrangler.toml に直書きすれば動くんですが、当然ながらGitにコミットすると漏洩リスクがある。じゃあどうするか?ということで、Cloudflare Workersでのシークレット登録方法を調べたら3種類あったのでまとめます。

方法1: Cloudflare DashboardのGUIで登録する

一番わかりやすい方法です。

Cloudflare Dashboard の該当プロジェクト > Settings を開くと、「Variables and Secrets」というセクションがあります。ここの「Add」ボタンから登録するだけ。

image.png

コマンドラインが苦手な方や、とりあえず試してみたい場合はこれが一番手っ取り早いです。

方法2: wrangler secret put コマンドで登録する

npmのwranglerパッケージに含まれているCLIコマンドで登録する方法です。

$ wrangler secret put <KEY_NAME>

 ⛅️ wrangler 4.79.0
─────────────────────────────────────────────
✔ Enter a secret value: … ************ # 対話プロンプトが出るので、ここでシークレットを入力
🌀 Creating the secret for the Worker "worker-name" 
✨ Success! Uploaded secret <KEY_NAME>

ここでハマりポイントがあります。

シークレットの値はコマンドライン引数ではなく、対話プロンプトで入力する仕様になっています。

GitHub CLIだと gh secret set KEY_NAME --body "foo" のように引数で値を渡せるので、同じノリで wrangler secret put KEY_NAME --value "foo" みたいに書いてしまいがちですが、それはできません(自分はここで混乱しました)。

コマンドを実行するとプロンプトが出るので、そこで入力する形です。

方法3: GitHub Actions の cloudflare/wrangler-action で設定する

自動デプロイを組んでいる場合はこれが便利です。

Cloudflare公式が提供している cloudflare/wrangler-actionsecrets パラメータがあり、そこにシークレットの名前を列挙するだけで設定できます。

jobs:
  deploy:
    steps:
      uses: cloudflare/wrangler-action@v3
      with:
        apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
        environment: production
        secrets: |
          SECRET1
          SECRET2
      env:
        SECRET1: ${{ secrets.SECRET1 }}
        SECRET2: ${{ secrets.SECRET2 }}

仕組みとしては、GitHub Actions の env に値を渡しておいて、secrets で名前を指定すると wrangler-action 側がよしなにCloudflareへ登録してくれる感じです。

CI/CDと組み合わせるなら、この方法が管理しやすくておすすめです。

まとめ・学んだこと

  • シークレットは wrangler.toml に書かず、3つの方法のどれかで登録する
  • ちょっと試すだけならDashboardのGUI、開発中はCLI、本番CIならGitHub Actionsが使いやすい
  • wrangler secret put は対話入力なので注意(引数で渡せない)
  • GitHub Actions連携は cloudflare/wrangler-actionsecrets パラメータが便利

参考リンク

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?