Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

Pulumi ESC でシークレットを管理する

最終更新 Markdown で表示Agent セットアップ

このチュートリアルでは、安全で堅牢なシークレット管理ソリューションである Pulumi ESC(Environments, Secrets, and Configuration)の使い方を手順ごとに説明します。

セキュリティのベストプラクティスに沿って Wrangler で開発する方法を進めます。

具体的には、Cloudflare アカウントへのログイン用 CLOUDFLARE_API_TOKEN の管理、ESC に保存したシークレットの Workers への受け渡し、.dev.vars ファイルのプログラムによる読み込みを学びます。

始める前に

次を用意してください。

1. 新しい Environment を設定する

Pulumi ESC Environment(Environment)は、アプリケーションとインフラの設定とシークレットを含む YAML ファイルです。シェルコマンドなど、いくつかの方法でアクセスできます。ESC Environment はすべて Pulumi Cloud アカウントに置きます。

a. Pulumi Cloud にログインする

Pulumi ESC CLI で Pulumi Cloud アカウントにログインします。

esc login
Logged in to pulumi.com as  ....

b. 新しい Environment を作成する

ESC_ENV=wrangler/my-dev-environment
esc env init $ESC_ENV
Environment created.

2. Cloudflare にログインする

Pulumi ESC Environment を作成したら、さまざまな方法で利用できます。たとえば、シェルにあらかじめ認証情報を定義せずに Cloudflare アカウントへログインできます。

a. 認証情報を追加する

CLOUDFLARE_API_TOKEN を外部の安全な場所に保存すると、アクセスを制御し、トークン値をローテーションできます。wrangler は非対話モードで実行します。次が必要です。

プレースホルダー 123abc を、対応する値に置き換えます。

esc env set $ESC_ENV environmentVariables.CLOUDFLARE_ACCOUNT_ID 123abc
esc env set $ESC_ENV environmentVariables.CLOUDFLARE_API_TOKEN  123abc --secret

b. ログアウトする

Cloudflare アカウントに現在ログインしていないことを確認します。

npx wrangler logout
Not logged in, exiting...

c. ログインする

ESC に保存した Cloudflare 認証情報を Wrangler へ渡します。

esc run ${ESC_ENV} npx wrangler whoami
Getting User settings...
👋 You are logged in with an API Token.

esc run コマンドを使うと、Environment を開き、指定した環境変数を一時的な環境に設定します。その後、wrangler コマンドのコンテキストでそれらの変数を使います。CI/CD 環境で wrangler コマンドを実行するときに、認証情報をパイプラインへ直接保存したくない場合に特に役立ちます。

3. Worker のシークレットを追加する

Pulumi ESC はシークレットを一元管理し、Wrangler で Workers やほかの Cloudflare リソースへ渡せます。この用途では wrangler secret put コマンドを使います。

a. シークレットを追加する

esc env set ${ESC_ENV} environmentVariables.TOP_SECRET "aliens are real" --secret

b. シークレットを Worker へ渡す

esc run -i ${ESC_ENV} -- sh -c 'echo "$TOP_SECRET" | npx wrangler secret put TOP_SECRET'

外部のシークレット管理ソリューションを使うと、よく使う Worker シークレットを 1 つの共有 Environment に保存し、関連する Workers からアクセスできます。esc とシェルコマンドを組み合わせてスクリプト化し、デプロイパイプラインや make コマンドに組み込めます。CLI の各コマンドの詳細は esc [command] --help を参照してください。

4. .dev.vars を読み込む

このステップでは、.dev.vars ファイルをプログラムで読み込む Environment を設定します。

.dev.vars のシークレットをすべて保存する専用の ESC Environment があれば、dotenv エクスポートフラグを使えます。

a. Environment を作成する

E=wrangler/my-devvars
esc env init $E
Environment created.

b. シークレットを追加する

esc env set $E environmentVariables.TOP_SECRET  "the moon is made of cheese" --secret

c. .dev.vars ファイルを生成する

esc env open ${E} --format dotenv > .dev.vars

.dev.vars ファイルにはシークレットが含まれることが多いため、ソース管理へコミットしないでください。シークレットを外部に置くと、新しい開発環境へ損失なく読み込めます。

次のステップ

Wrangler コマンド用のシークレットを読み込む Pulumi ESC Environment を設定し、Wrangler での開発時のセキュリティを高めました。外部化したシークレットは、Workers 間で再利用できます。Pulumi ESC の機能と統合 を確認するか、Pulumi で Worker をデプロイする チュートリアルへ進んでください。

役に立ちましたか?