Google Cloud のParameter Manager の実践的ガイド
Anuj Singh
Software Engineer
Phani Madhav Devalla
Product Manager
※この投稿は米国時間 2025 年 10 月 24 日に、Google Cloud blog に投稿されたものの抄訳です。
開発チームならばどこでも、堅牢で安全かつスケーラブルなクラウド アプリケーションを構築したいと考えてるものです。この目的のためには、特に設定管理に関して、複雑な作業は避けがたいものです。ハードコードされた設定と鍵に依存することは一般的な方法ですが、機密性の高いセキュリティの詳細が漏洩する可能性があります。開発者が迅速に作業を進め、セキュリティを維持するには、アプリケーション設定の管理専用の安全な一元化されたサービスを使用する必要があります。
Google Cloud のソリューションは Parameter Manager です。これは、API キー、データベース パスワード、非公開の暗号鍵などの重要なクラウド設定の不要な共有を減らすように設計されています。Parameter Manager は、JSON、YAML、その他の形式なしデータなど、さまざまな種類のデータ形式に対応しています。
また、JSON タイプと YAML タイプの形式検証も含まれており、設定の整合性に関する懸念を解消するのに役立ちます。また、Parameter Manager は Secret Manager と統合されているため、機密データを安全に、別々にしておけます。
Parameter Manager の使用方法
Parameter Manager の使用がどれほど簡単で有益であるかを説明するために、実践的な例として、動的に設定できる簡単な天気予報アプリケーションを構築する手順をご紹介します。このアプリケーションでは、摂氏と華氏の切り替え、デフォルトの都市の更新、API キーの管理が可能です。
取り上げるトピックは次のとおりです。
-
天気 API キーを取得し、Secret Manager に安全に保存する。
-
API キーを参照し、その他の関連パラメータを保持するパラメータとバージョンを作成する。
-
Parameter Manager とやり取りするシンプルな UI とバックエンドを構築する。
このプロジェクトを完了するには、アクティブな Google Cloud プロジェクトが必要です。参考までに、コード リポジトリはこちらです。
1. Weather API キーを取得し、Secret Manager に安全に保存する
ここで任意の天気 API キーを使用します。
コンソールから Secret Manager API と Parameter Manager API を有効にします。どちらも毎月無料枠があり、このチュートリアルには十分です。


Secret Manager と Parameter Manager のホームページ。
API キーは機密情報であるため、Secret Manager に保存します。
-
Google Cloud コンソールで「Secret Manager」を検索します。
-
[プランを作成] ボタンをクリックします。
-
作成フォームで、
-
Secret 名を定義します(例: weather-api-key)。
-
天気 API キーを [Secret の値] セクションに貼り付けます。
-
このデモでは、デフォルトのオプションを使用します。必要に応じて、ドキュメントで他の設定も確認してください。
-
[Secret を作成] をクリックします。


Weather API キーを Secret Manager に保存する
これで、API キーを含む Secret バージョンを持つ Secret リソースが作成されました。インターフェースには、次のような固有の識別子が表示されます。
projects/<your-project>/secrets/weather-api-key
この識別子をコピーします。パラメータを作成するときに使用します。


Weather API キー識別子をコピーしています。
2. API キーを参照し、その他の関連パラメータを保持するパラメータとバージョンを作成する
Parameter Manager には、Secret Manager のホーム画面からアクセスするか、コンソールで検索してアクセスします。


Secret Manager コンソールから Parameter Manager にアクセスする。
[プランを作成] ボタンをクリックします。


パラメータの作成。
作成フォームで、
-
パラメータ名(my-weather-demo-parameter など)を定義します。
-
形式タイプとして [YAML] を選択し(Parameter Manager では JSON 形式と YAML 形式の形式検証が提供されます)、フォームを送信します。
-
先ほどと同様に、このデモでは他のオプションのデフォルトを使用します。


パラメータ作成フォーム。
パラメータには、バージョニングという利点があります。各バージョンは、設定の個別のスナップショットをキャプチャします。このイミュータビリティは、意図しない破壊的変更からデプロイされたアプリケーションを保護するために不可欠です。更新が必要な場合は、新しいバージョンを簡単に作成できます。
[新しいバージョン] をクリックして、このパラメータの新しいバージョンを作成します。


パラメータ バージョンの作成。
-
パラメータ バージョンの「名前」を指定します(最初のアプリケーション バージョンでは v1 など)。上級者向けのヒント: バージョン番号を繰り返し使用して、さまざまなバージョンを追跡します。
-
ペイロード セクションに、次の YAML を貼り付けます。重要な点として、<your-project-number> は実際の Google Cloud プロジェクト番号に置き換え、apiKey 属性が Secret Manager の Secret の識別子を正しく参照するようにしてください。
上記のペイロード データを指定したら、フォームを送信します。


パラメータ バージョン作成フォーム。
重要なポイント: apiKey の __REF__ 構文に注目してください。Parameter Manager が Secret Manager のデータを安全に参照する方法は次のとおりです。
__REF__(//secretmanager.googleapis.com/projects/<your-project-number>/secrets/<secret-id>/versions/<version-id>)
特定のバージョン ID の代わりに特別なエイリアス「latest」を使用すると、常に最新の Secret バージョンを取得できます。(Parameter Manager のドキュメントで Secret 参照の詳細をご確認ください)。


パラメータの IAM プリンシパル ID。
Parameter Manager が Secret Manager 参照を正常に解決するには、あなたの Secret にアクセスする権限が必要です。
-
パラメータのリストビューに戻り、新しく作成したパラメータをクリックします。
-
[概要] に移動します。「IAM プリンシパル ID」をコピーします。これは、パラメータに関連付けられた一意のサービス アカウントです。
-
Secret Manager サービスに戻り、作成した Secret を開きます。
-
[権限] セクションに移動し、[アクセスを許可] をクリックします。
-
[新しいプリンシパル] フィールドに、Parameter Manager からコピーした IAM プリンシパル ID を貼り付けます。
-
ロール「Secret Manager の Secret アクセサー」を選択します。
-
[保存] をクリックします。
このステップでは、パラメータの下に作成されたすべてのパラメータ バージョンが、API キーを含む Secret に安全にアクセスして解決できるようにします。


パラメータの IAM プリンシパル ID に Secret アクセス権を付与する。
すべてが正しく設定されているか確認しましょう。先ほど作成したパラメータ バージョンに移動し、[アクション] メニューから [レンダリング] をクリックします。


レンダリング オペレーションを実行して、Secret への参照が機能していることをテストする。
権限が正しく設定されていれば、Parameter Manager に [レンダリングされた出力] が表示されます。これには、Secret Manager から安全に取得された実際の Weather API キーが含まれます。これにより、アプリケーションで設定を使用する準備が整ったことが確認されます。


レンダリングされた出力で Secret の置換を検証する。
Parameter Manager と通信できるシンプルな UI とバックエンドを構築する
設定が安全に保存および管理されるようになったので、それらを使用する簡単なアプリケーションを構築しましょう。React フロントエンドと Node.js バックエンドを作成します。
src/index.js が次のようになっているようにします。
次に、src/App.js を次のコードで編集します。
-
App.css ファイルをクリアします(または、必要に応じて削除して、その参照を削除します)。Tailwind を使用するため、public/index.html の <head> タグ内に以下を追加します。
-
<script src="https://cdn.tailwindcss.com"></script>
public/index.html は次のようになります。
次に、天気 API のレスポンスを提供するサーバーが必要です。
gcloud がまだインストールされていない場合は、install-sdk の手順に沿ってインストールします。
次のコマンドを実行します。
次に、weather-backend ディレクトリ内に、次のコードを含む server.js ファイルを作成します。
このサーバーは、起動時に Parameter Manager からアプリケーション パラメータを取得する役割を担います。これを使用して、天気 API から必要なレスポンスを提供します。
Parameter Manager に保存されているパラメータには、天気 API キー、メートル法設定、その他の関連するアプリケーション固有のデータが含まれています。また、サーバーが何らかの問題で天気 API に接続されていない場合、イベントでサーバーが使用できるダミーデータも含まれています。
2 つの別々のターミナルシェルを開きます。
バックエンド サーバーが起動し、Parameter Manager から設定が読み込まれます。これには、Secret Manager から安全に解決された API キーも含まれます。
React フロントエンドが起動し、ローカル バックエンドに接続して、Parameter Manager によって動的に設定された天気情報のリクエストを開始します。


ブラウザでアプリケーションを実行する。


アプリケーションで天気の詳細を表示する。
基本を超えて: 高度なユースケース
Parameter Manager は、デベロッパーが設定のセキュリティとコンプライアンスの目標を達成するのに役立ちます。Parameter Manager を使用すると、次のことが可能になります。
-
Oリージョン別の設定を提供する: アプリが世界中のユーザーにサービスを提供しているとします。摂氏を好む地域もあれば、華氏を好む地域もあります。異なる Google Cloud リージョンにリージョン パラメータを作成できます。各パラメータには、華氏と defaultLocation の異なる値を設定できます。server.js(またはデプロイ環境)で startupConfigLocation を設定すると、サーバーはそのリージョンに関連する設定を自動的に読み込むことができます。
-
リージョンのコンプライアンス要件を満たす: パラメータは同じリージョンの Secret のみを参照できます。このチュートリアルでは、Secret とパラメータの両方にグローバル リージョンを使用しましたが、たとえば us-central1 にリージョン Secret を作成した場合、us-central1 のパラメータのみがその Secret を参照できることが予想されます。これにより、機密情報が選択したリージョンから漏洩しないようにすることができます。
-
A/B テストとフィーチャー フラグを実装する: 一部のユーザーで新機能をテストするには、v2 パラメータ バージョンに新しい属性を追加します。その後、A/B テスト戦略に基づいて、バックエンド(またはデプロイされた環境の環境変数)で appVersion 定数を動的に切り替え、さまざまなユーザー グループに新機能をロールアウトして、フィードバックを収集し、迅速にイテレーションできます。
Google Cloud Parameter Manager と Secret Manager を使用することで、すべてのアプリケーション設定を管理するための堅牢で安全かつ柔軟なシステムを構築し、よりアジャイルで復元力のあるアプリケーションを構築できるようになります。
ー Anuj Singh、ソフトウェア エンジニア
ー Phani Madhav Devalla 、プロダクト マネージャー


