セキュリティ設定

セキュリティベストプラクティスに従って、GPT-Loadデプロイメントの安全性と信頼性を確保する

セキュリティ概要

GPT-Loadは認証、データ暗号化、アクセス制御などを含む多層セキュリティ保護メカニズムを提供します。これらのセキュリティ設定を適切に構成することは、AIサービスを保護する上で極めて重要です。

AUTH_KEY 認証キー

AUTH_KEYはGPT-Load管理インターフェースにアクセスするための認証キーです。システムを保護するために強力なパスワードに設定する必要があります。

少なくとも32文字のランダムキーを使用し、大文字・小文字・数字・特殊文字を含めることを推奨します。一般的な単語や単純なパターンの使用は避けてください。

セキュアキーの生成

次のコマンドを使用して強力なランダムキーを生成:

openssl rand -base64 32 | tr -d "=+/" | cut -c1-32

ENCRYPTION_KEY データ暗号化

ENCRYPTION_KEYは機密データ(APIキーなど)をストレージで暗号化するために使用されます。暗号化を有効にすると、データベースが侵害されてもキーが直接取得されることを防げます。

暗号化を有効にするメリット

  • APIキーはデータベースで暗号化され、データベースが漏洩しても使用不可
  • エンタープライズセキュリティコンプライアンス要件を満たす
  • キーローテーションと再暗号化をサポート
  • ゼロパフォーマンス影響の透明な暗号化/復号化

データ暗号化移行手順

1

サービスを停止

移行前にGPT-Loadサービスを停止する必要があります

docker compose down
2

データバックアップ

必ずデータベースをバックアップしてください!使用しているデータベースタイプ(SQLite、MySQL、PostgreSQL)に応じて適切なバックアップ操作を実行してください。操作ミスによるデータ損失を回避します。

3

移行コマンドを実行

デプロイメント方法に応じて適切なコマンドを選択してください(下記の異なるデプロイメント方式の移行コマンドを参照)

4

設定を更新

.envファイルにENCRYPTION_KEYを設定

echo "ENCRYPTION_KEY=your-32-char-secret-key" >> .env
5

サービスを再起動

サービスを起動して暗号化機能を確認

docker compose up -d

異なるデプロイメント方式の移行コマンド

Docker Composeデプロイメント

Docker Composeでデプロイしているユーザー向け

暗号化を有効化:

docker compose run --rm gpt-load migrate-keys --to "your-32-char-secret-key"

暗号化を無効化:

docker compose run --rm gpt-load migrate-keys --from "your-current-key"

キーを変更:

docker compose run --rm gpt-load migrate-keys --from "old-key" --to "new-key"

ソースデプロイメント(Make)

ソースからビルドしているユーザー向け

暗号化を有効化:

make migrate-keys ARGS="--to your-32-char-secret-key"

暗号化を無効化:

make migrate-keys ARGS="--from your-current-key"

キーを変更:

make migrate-keys ARGS="--from old-key --to new-key"

バイナリデプロイメント

コンパイル済みバイナリを使用しているユーザー向け

暗号化を有効化:

./gpt-load migrate-keys --to "your-32-char-secret-key"

暗号化を無効化:

./gpt-load migrate-keys --from "your-current-key"

キーを変更:

./gpt-load migrate-keys --from "old-key" --to "new-key"

⚠️ 極めて重要なセキュリティ警告

ENCRYPTION_KEYを紛失すると、すべての暗号化されたAPIキーデータが永久に復号できなくなります!

  • ⚠️保存されているすべてのAPIキーが使用不能になります
  • ⚠️システムが完全に機能しなくなります
  • ⚠️データベースバックアップがあっても暗号化データは回復できません
  • ⚠️すべてのAPIキーを手動で再追加する必要があります
  • ⚠️サービス中断とビジネス損失を引き起こす可能性があります

🔑 ENCRYPTION_KEYを複数の安全な場所に保存し、定期的にバックアップの有効性を確認してください!

重要な注意事項

  • データの不整合を避けるため、移行前にサービスを停止する必要があります
  • 移行失敗に備えてデータベースをバックアップする必要があります
  • ENCRYPTION_KEYが移行コマンドのキーと一致することを確認
  • キーが失われると暗号化されたデータを回復できません

セキュリティベストプラクティス

定期的なキーローテーション

システムセキュリティを確保するため、3〜6ヶ月ごとにAUTH_KEYを変更することを推奨

環境変数の使用

コードや設定ファイルにキーをハードコーディングせず、環境変数を使用して管理

HTTPSを有効化

本番環境では中間者攻撃を防ぐため、必ずHTTPSプロトコルを使用

アクセスIPを制限

ファイアウォールまたはリバースプロキシを通じて管理インターフェースのアクセスIPを制限

異常なログインを監視

ログインログを定期的に確認して、異常なアクセス動作を迅速に検出

暗号化キーのバックアップ

キーの紛失によるデータ損失を避けるため、ENCRYPTION_KEYを安全にバックアップ

その他のリソース

GPT-Loadセキュリティ設定についてさらに詳しく