コンテンツにスキップ

シークレットで API キーを安全に保管する

要点シークレットは、API キーや非公開の設定を入れておくアプリ専用の鍵付きの箱です。「バックエンド → シークレット」で WEATHER_API_KEY のような名前を付けて追加します。値は暗号化して保存され、二度と表示されず、アプリのサーバー側のコードだけが読み取ります。「プレビューに反映」を押すとすぐに使え、公開中のアプリには次に公開したときに反映されます。キーは決してチャットに貼らないでください。

天気予報、レシピのデータベース、決済サービスなど、アプリがほかの会社のサービスを使うとき、そのサービスから API キーが発行されます。API キーは、アプリがあなたのアカウントを使うための長い秘密のパスワードです。キーを持っている人は誰でもあなたのアカウントを使え、料金をかさませることもできます。だからこそ、キーには安全な置き場所が必要です。

その置き場所がシークレットです。アプリごとに用意され、暗号化して保存されます。アプリのコードは必要なときにキーを読み取りますが、アプリの利用者も、プロジェクトを共有した相手も、誰もそれを見られません。

シークレットを追加するには?

Section titled “シークレットを追加するには?”
  1. プロジェクトを開き、バックエンドシークレット をクリックします。

  2. 名前 に、SPOONACULAR_API_KEY のようなキーの名前を入力します。使えるのは大文字、数字、アンダースコアです。小文字は MonstarX が大文字に変えてくれます。

  3. 値 にキーを貼り付けます。入力中は伏せ字で表示されます。

  4. 追加 をクリックします。

  5. 保存すると右上に表示される プレビューに反映 をクリックします。プレビューが新しいキーで再起動するので、すぐに試せます。

  6. どの機能で使うかをチャットで MonstarX に伝えます。たとえば「SPOONACULAR_API_KEY を使って、各レシピの栄養成分を調べて」。

公開中のアプリには、追加・変更したシークレットが次に公開したときに反映されます。詳しくは アプリを公開する をご覧ください。

キーをチャットに貼ってはいけないのはなぜですか?

Section titled “キーをチャットに貼ってはいけないのはなぜですか?”

チャットはプロジェクトと一緒に保存されます。プロジェクトを共有したすべての人に表示され、アプリを作る AI モデルに読まれ、プロジェクトの履歴にも残ります。そこに貼ったキーは、もう秘密ではありません。キーを直接書き込んだコードも同じく危険です。プロジェクトのファイルに残り、エクスポートにも、GitHub を接続していれば GitHub にも含まれます。

間違ってキーをどこかに貼ってしまったら、そのサービスの管理画面で新しいキーを作って古いキーを削除し、新しいキーをシークレットに保存してください。

シークレットを変更・削除するには?

Section titled “シークレットを変更・削除するには?”
  • 変更する:同じ名前で新しい値を入力します。ボタンが 追加 から 更新 に変わるので、それをクリックし、続けて プレビューに反映 をクリックします。
  • 削除する:横にある ごみ箱 をクリックして確認します。そのシークレットを使っていた部分は、もう一度追加するまで動かなくなります。

保存した値は、あなたも含めて誰も読み返せません。値は伏せ字で表示され、追加日 が添えられます。キーが必要になったら、発行したサービスで確認してください。

MonstarX やアプリを動かすシステムが使う名前があるため、次の名前はシークレットに登録できません。

  • MONSTARX_、BETTER_AUTH_、CLOUDFLARE_、CF_、GCP_、RAILWAY_、NODE_、NPM_ で始まる名前。
  • PATH、HOME、PORT、NODE_ENV、TMPDIR、USER、SHELL、PWD、CI、HOSTNAME、FORCE_COLOR、NO_COLOR。
  • VITE_ で始まる名前。これらはページに埋め込まれ、訪問者の誰もが読めてしまうためです(VITE_ の名前をすでに使っているインポートしたアプリは、そのまま使えます)。

名前は英字で始まり、64文字以内である必要があります。

サイト名や、ブラウザで使っても安全だとサービスが言っている公開可能キーのように、見られても構わない値もあります。そうした値には PUBLIC_ で始まる名前を付けます。ページからも読めるようになり、名前を入力すると MonstarX が注意を表示します。

シークレットは誰が見られますか?

保存した値は、あなたも含めて誰も読めません。プロジェクトを共有した相手には「バックエンド」タブ自体が表示されません。値を読み取るのは、アプリのサーバー側のコードだけです。

キーを追加したのに、アプリがまだ見つからないと言います。

プレビューに反映 をクリックして、プレビューをそのキーで再起動してください。公開中のアプリは、もう一度公開すると反映されます。また、名前がアプリの読み取る名前と完全に一致しているか確認してください。

保存した値が見られないのはなぜですか?

画面から漏れることがないよう、値は一度保存すると二度と表示されません。変更するには、同じ名前で新しい値を保存してください。

シークレットをブラウザ側で使えますか?

使えません。シークレットを読み取るのはアプリのサーバー側のコードだけなので、訪問者のブラウザには届きません。公開可能キーのように、ページ自体が必要とする値には PUBLIC_ の名前を付けます。

シークレットとコネクタの違いは何ですか?

コネクタは、よく知られたサービス向けの既製のフォームです。キーを決まった名前でシークレットに保存し、MonstarX にそのサービスの使い方を教えます。それ以外のものには、シークレットを使います。