ブログ

チャットにキーを貼らずに使う、シークレットと環境変数

ほとんどの実際のアプリには、少なくとも1つのシークレットが必要です。決済サービスのキー、メール配信サービスのキー、AI APIのキーなどです。Mythexでは、こうしたキーをプロンプトに貼り付ける必要はありません。エージェントがキーを必要とすると、チャットにシークレットのリクエストカードが表示されます。カードに値を入力すると、アプリが読み取れるプロジェクトのシークレットとして保存されます。キーがチャットの会話に残ることはありません。

何をするのか

Mythexのすべてのプロジェクトには、環境変数を保存できます。環境変数とは、STRIPE_SECRET_KEYのような名前付きの値のことで、アプリは実行時にそれを読み取ります。コードに直接書き込む必要はありません。シークレットは、値を非公開にしておく必要がある環境変数です。

同じ値は次の2か所で利用できます。

  • サンドボックス:作業中にエージェントがアプリを構築・実行する場所です。
  • 公開済みのデプロイ:訪問者が実際に使うアプリの環境です。

追加方法は3つあります。

  1. シークレットのリクエストカード:エージェントが作業を完了するためにキーを必要とすると、チャットに表示されます。
  2. プロジェクト設定 → Secrets:いつでも値を追加・編集できます。
  3. チャットでの/secrets:要求に応じてシークレットを追加・更新します。

なぜ役立つのか

AIエージェントにキーを渡す一般的な方法は、メッセージに貼り付けることです。動作はしますが、そのキーはチャット履歴の一部になり、あなたが書いた他の内容と一緒に平文で残ります。

シークレットカードを使うと、値がトランスクリプトに残りません。値はメッセージ欄ではなくカードのフィールドに入力し、プロジェクトのシークレットとして保存されます。エージェントは、そのキーを利用できる状態でサンドボックス上の作業を続けます。

キーをコードではなくプロジェクト設定に置くことには、ほかにも利点があります。

  • キーをソース管理に含めずに済みます。 コードはキーを名前で参照し、値はプロジェクト設定に置かれます。
  • エージェントと実行中のアプリが同じ設定を見ます。 古くなったコピーが生まれません。
  • コードを書き換えずにキーを入れ替えられます。 設定で値を変更するだけで、コードは名前で読み続けます。

環境変数が初めての方は、環境変数とシークレットとは何かのガイドで、この考え方を基礎から説明しています。

シークレットカードの使い方

  1. 機能を依頼します。たとえば「サインアップしたら歓迎メールを送って」と頼みます。
  2. エージェントがキーを必要とすると、必要な値を示したシークレットのリクエストカードがチャットに表示されます。
  3. 値はメッセージ欄ではなく、カードのフィールドに入力します。
  4. 確定します。 値はプロジェクトのシークレットとして保存されます。
  5. エージェントが作業を続けます。 キーはサンドボックスで利用できる状態になります。

自分でシークレットを追加する方法

  1. プロジェクト設定を開き、Secretsを選びます。
  2. STRIPE_SECRET_KEY、OPENAI_API_KEY、または自分のサービスの認証情報などのキーを追加します。
  3. 使用しているフレームワークの標準的な方法で読み取るよう、エージェントに依頼します。たとえばNodeアプリであればprocess.envから読み取ります。
  4. 公開済みのアプリに新しい値が必要な場合は、再公開します。

チャットで/secretsと入力して、そこから追加や更新を行うこともできます。

公開済みアプリでシークレットを変更する

公開済みのアプリは、公開した時点でシークレットを読み込みます。シークレットを追加・変更したら、もう一度公開して、ライブのデプロイに新しい値を反映させてください。それまでは、訪問者は古い設定のままアプリを使っています。

セキュリティのヒント

  • シークレットをリポジトリにコミットしないでください。 プロジェクト設定に保管します。
  • 特権的な操作には、サーバー側でのみ使うキーを優先してください。 カード決済やメール送信ができるキーは、訪問者のブラウザがダウンロードするものではなく、サーバー上で動くコードに置きます。
  • キーがチャット履歴に現れたら、そのキーを入れ替えてください。 プロバイダーで新しいキーを作成し、古いキーを無効化して、プロジェクト設定の値を更新します。チャットに貼り付けられたキーは、すべて漏えいしたものとして扱ってください。

制限事項

  • カードは使ってこそ役立ちます。 メッセージ欄にキーを貼り付けてしまうと、そのキーはトランスクリプトに残ります。プロバイダーでキーを入れ替え、保存されている値を更新してください。
  • 公開済みのアプリは、新しいまたは変更されたシークレットを反映するために再公開が必要です。
  • キーを安全に保管しても、その使い方が安全になるわけではありません。 キーをどこで使うかは依然として重要です。特権的なキーは、アプリのサーバー側に置いてください。

公開前にアプリを安全にするための詳細は、AIで作ったアプリのセキュリティチェックリストをご覧ください。

詳しくはドキュメントをご覧ください:環境変数とシークレット、チャットでのシークレット。

Mythex · Pricing · AIでなんでも作ろう · ウェブサイト・アプリのテンプレート · Mythexを比較 · AIアプリ開発用語集 · AIアプリ開発の無料ツール · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)