Skip to content

シークレット管理

安全な資格情報ストレージ

アプリケーションが外部サービスに接続する必要がある場合 — SendGridを通じてメールを送信したり、Stripeで支払いを処理したり、AI機能にOpenAIを使用したりする場合 — APIキーと資格情報を安全に保存する必要があります。Klivのシークレット管理システムはこれを自動的に処理します。

シークレットを安全にするもの

  • データベースでの暗号化ストレージ
  • 保存後に完全に表示されない
  • 必要に応じてエッジ関数に自動的に注入される
  • アカウント全体で各キーを一度だけ保存
  • シークレットが作成または更新されたときを追跡する監査証跡

シークレットの仕組み

外部サービスと統合したいとAIに伝えると、必要な資格情報を求められます。APIキーを提供すると、AIは説明的な名前(OPENAI_API_KEYSTRIPE_SECRET_KEYなど)で安全に保存します。その後、その資格情報が必要なエッジ関数は自動的にアクセスできます。

マスクされた表示:シークレットを保存すると、管理UIには部分的にマスクされたバージョンのみが表示されます。たとえば、sk-proj-abc123xyz789sk-p****9789として表示されます。これにより、完全な値を公開せずにどのキーがどれかを確認できます。

自動注入:エッジ関数が実行されると、すべてのシークレットが環境変数として自動的に利用可能になります。AIは関数コードに適切なシークレットを含め、プラットフォームは実行時に実際の値を注入します。

シークレットの管理

管理インターフェースを通じて、次のことができます:

  • すべてのシークレットを表示(マスクされた値で)
  • 新しいシークレットを追加または既存のものを更新
  • 不要になったシークレットを削除
  • 各シークレットがいつ作成または最終更新されたかを確認

構築したい統合を説明すると、AIもシークレットを作成および更新できます。

シークレットの一般的な用途

  • メールサービス:SendGrid、Mailgun、またはSMTP資格情報
  • 支払い処理:Stripe、PayPal、またはその他の支払いAPIキー
  • AIサービス:OpenAI、Anthropic、またはGoogle APIキー
  • SMS/通話:Twilio認証トークン
  • 外部API:アプリが統合する任意のサードパーティサービス
  • Webhook:受信Webhookを検証するための署名シークレット
  • データベース接続:外部データベースの接続文字列

ベストプラクティス

説明的な名前を使用 - key1secretではなく、SENDGRID_API_KEYのように明確にシークレットに名前を付けます。

定期的にローテーション - 特に重要なサービスの場合、定期的にシークレットを更新します。

完了したら削除 - 使用しなくなったサービスのシークレットを削除します。

シークレットを共有しない - 各環境(テスト、本番)は異なるAPIキーを使用する必要があります。

コードにコミットしない - シークレットは理由があってコードとは別に保存されます。APIキーをソースファイルに直接入れないでください。


関連ドキュメント:

Built by Kliv with VitePress