
OpenAI APIキーを安全に使用するためのベストプラクティス
ChatGPTの出現とともに、アプリケーションを利用するためにAPIキーを使う機会が多くなりました。経験豊富なエンジニアは、APIキー(シークレットキー)の扱いに慣れていると思いますが、そうでない場合はよくわからずに使用している方もいるかもしれません。
OpenAIの「Best Practices for API Key Safety」が良い記事だったので日本語訳しました。OpenAI APIキーをお使いの方は、安全確認のため一度目を通してみてください。
1. アカウントの各チームメンバーには、必ず固有のAPIキーを使用する
APIキーは、APIへのリクエストを識別するための一意のコードです。APIキーは、お客様が使用することを意図しています。APIキーの共有は、利用規約に反します。
実験を始めると、APIアクセスをチームに広げたいと思うかもしれません。OpenAIは、APIキーの共有をサポートしていません。メンバーページから新しいメンバーをあなたのアカウントに招待してください、彼らはサインインするとすぐに独自のキーを受け取ります。
2. キーをリポジトリにコミットしない
APIキーをソースコードにコミットすることは、クレデンシャル侵害の一般的なベクトルです。公開リポジトリを持つ人にとって、これは知らず知らずのうちにキーをインターネットと共有することになる一般的な方法です。非公開のリポジトリはより安全ですが、データ侵害によってキーが流出する可能性もあります。これらの理由から、私たちは積極的なキーの安全対策として、環境変数の使用を強く推奨します。
3. APIキーの代わりに環境変数を使用する
環境変数とは、アプリケーション内ではなく、OS上で設定する変数のことです。変数名は「OPENAI_API_KEY」に設定することをお勧めします。この変数名をチーム内で統一することで、APIキーを公開するリスクなしに、コードをコミットして共有することができます。
Windows 設定
オプション1: コマンドプロンプトで「OPENAI_API_KEY」環境変数を設定します。
コマンドプロンプトで以下を実行し、yourkeyをご自身のAPIキーに置き換えてください:
setx OPENAI_API_KEY "yourkey"
これは将来のコマンドプロンプトウィンドウに適用されるため、curlでこの変数を使用するには、新しいコマンドプロンプトウィンドウを開く必要があります。この変数が設定されたことを確認するには、新しいコマンドプロンプトウィンドウを開き、次のように入力します:
echo %OPENAI_API_KEY%
オプション2: コントロールパネルから「OPENAI_API_KEY」環境変数を設定します。
1 . 「システム」プロパティを開き、「システムの詳細設定」を選択します。
2 . 「環境変数」を選択します。
3 . 「ユーザー環境変数」セクション(上)から「新規」を選択します。yourkeyをご自身のAPIキーに置き換えて、名前とキーの値のペアを追加します:
Variable name: OPENAI_API_KEY
Variable value: yourkey
Linux / MacOS 設定
オプション1: zshで「OPENAI_API_KEY」環境変数を設定します。
1 . ターミナルで以下のコマンドを実行し、yourkeyをご自身のAPIキーに置き換えてください:
echo "export OPENAI_API_KEY='yourkey'" >> ~/.zshrc
2 . 新しい変数でシェルを更新します:
source ~/.zshrc
3 . 以下のコマンドで、環境変数が設定されていることを確認します:
echo $OPENAI_API_KEY
APIキーの値が結果として出力されます。
オプション2: bashで環境変数「OPENAI_API_KEY」を設定する。
オプション1の手順で、.zshrc を .bash_profile に置き換えてください。
これで準備完了です!curlでキーを参照したり、Pythonで読み込んだりできるようになりました:
import os
import openai
openai.api_key = os.environ["OPENAI_API_KEY"]
4. キー管理サービスを利用する
シークレットAPIキーを安全に管理するための様々な製品が提供されています。これらのツールを使用すると、キーへのアクセスを制御し、全体的なデータセキュリティを向上させることができます。アプリケーションにデータ侵害が発生した場合でも、キーは暗号化され、完全に別の場所で管理されるため、危険にさらされることはないでしょう。
アプリケーションを本番環境に導入するチームには、これらのサービスのいずれかを検討することをお勧めします。
5. トークンの使用状況を監視し、必要に応じてキーをローテーションする
漏洩したAPIキーは、お客様の同意なしに、誰かがお客様のアカウントのクォータにアクセスすることを可能にします。その結果、データの損失、予期せぬ課金、月間の割り当ての枯渇、APIアクセスの中断が発生する可能性があります。
チームの使用状況は、使用状況ページで確認することができます。不正使用に関する懸念がある場合、アカウントを保護するために3つのアクションを取ることができます:
自分の使い方が、チームの仕事と一致しているかどうか、見直してみてください。
キーが流出したと思われる場合は、API Keysページからすぐにキーをローテーションしてください。本番運用中のアプリケーションをお持ちのお客様は、それに応じてキー値を更新する必要があります。
お問い合わせは「help.openai.com」からお願いします。