Docsセキュリティクレデンシャルボールト
ドキュメントに戻る
セキュリティ

クレデンシャルボールト

YeePilotの組み込み暗号化ボールトでAPIキー、SSHキー、トークンを安全に保管・管理

最終更新: 2026年3月1日

YeePilotには、すべての機密クレデンシャル -- APIキー、SSHキー、トークン、パスワード -- を保管するための組み込み暗号化ボールトがあります。ボールトはシークレットを暗号化した状態で保持し、明示的にアンロックした場合にのみ復号します。

使い始める

ボールトの初期化

マスターパスワードでボールトをセットアップします:

bash
yeepilot vault init

以下のプロンプトが表示されます:

  1. アンロック方式の選択(パスワード、PIN、YubiKey、またはYubiKey+PIN)
  2. マスタークレデンシャルの設定
  3. クレデンシャルの確認

ボールトが作成され、すぐに使用できます。

ボールトのステータス確認

bash
yeepilot vault status

ボールトが初期化済みか、ロック中かアンロック中か、保存されているクレデンシャルの数、設定されたアンロック方式が表示されます。

クレデンシャルの保存

クレデンシャルの追加

bash
yeepilot vault add

以下の入力を求められます:

  • 名前 -- 説明的なラベル(例:「production-db-password」、「aws-api-key」)
  • タイプ -- クレデンシャルの種類(APIキー、SSHキー、パスワード、トークン)
  • -- シークレット本体(入力は非表示)

例:

bash
$ yeepilot vault add
Name: digitalocean-api-token
Type: API key
Value: ****
Credential stored successfully.

保存されたクレデンシャルの一覧

bash
yeepilot vault list

保存されたすべてのクレデンシャルの名前とタイプが、値を表示せずに表示されます:

plaintext
Credentials in vault:
  1. digitalocean-api-token    (API key)
  2. production-db             (password)
  3. deploy-server             (SSH key)
  4. github-pat                (token)

アンロックとロック

ボールトのアンロック

bash
yeepilot vault unlock

マスタークレデンシャルの入力を求められます。アンロックされると、YeePilotセッション内でクレデンシャルが利用可能になります。

セッション内でのアンロックとロック

インタラクティブなYeePilotセッション中は、スラッシュコマンドを使用します:

plaintext
/unlock              # マスターパスワードプロンプトでアンロック
/unlock mypassword   # パスワードを直接指定してアンロック(慎重に使用)
/lock                # ボールトを即座にロック

自動ロック

ボールトは非アクティブ期間後に自動的にロックされ、離席した場合にクレデンシャルを保護します:

yaml
vault:
  auto_lock_duration: 15m    # 非アクティブ15分後にロック(デフォルト)

時間の調整または自動ロックの無効化:

yaml
vault:
  auto_lock_duration: 30m    # 30分後にロック
  auto_lock_duration: 0      # 自動ロックを無効化(非推奨)

アンロック方式

YeePilotはセキュリティ要件に応じた複数のアンロック方式をサポートしています:

パスワード

デフォルトの方式です。vault init 時に強力なマスターパスワードを設定します。

bash
yeepilot vault init
# Choose: password
# Enter password: ********

PIN

より高速なアンロックのための数字PIN。開発環境に最適です。

bash
yeepilot vault init
# Choose: PIN
# Enter PIN: ******

YubiKey

YubiKeyセキュリティキーを使用したハードウェアベースの認証。物理的にキーを持っていないとボールトをアンロックできないため、最も強力な保護を提供します。

bash
yeepilot vault init
# Choose: YubiKey
# Touch your YubiKey when prompted...

YubiKey + PIN

ハードウェア認証とPINを組み合わせた二要素認証。ボールトのアンロックには物理的なYubiKeyと正しいPINの両方が必要です。

bash
yeepilot vault init
# Choose: YubiKey+PIN
# Enter PIN: ******
# Touch your YubiKey when prompted...

クレデンシャルの使用

SSH接続

ボールトに保存されたSSHキーを使用してサーバーに接続します:

bash
yeepilot vault connect

保存されたSSHキーの一覧から選択できます。YeePilotは選択したキーを使用して接続を確立し、キーをディスクに書き出すことはありません。

AIプロバイダーキー

AIプロバイダーのAPIキーをボールトに保存すると、セッション開始時にYeePilotが自動的に取得するため、設定ファイルにAPIキーを記載しておく必要がなくなります。

セッション内でのアクセス

インタラクティブセッション中、ボールトがアンロックされていれば、クレデンシャルが必要なタスクを依頼した際にAIが保存されたクレデンシャルを参照できます。例えば:

plaintext
> Deploy the latest release to the production server using the deploy-server SSH key

YeePilotはボールトからSSHキーを取得して接続に使用し、ターミナルやコマンド履歴にキーが露出することはありません。

クレデンシャルのローテーション

定期的な更新が必要なクレデンシャルをローテーションします:

bash
yeepilot vault rotate

クレデンシャルの選択と新しい値への置き換えを案内します。古い値は安全に上書きされます。

ブルートフォース保護

ボールトにはアンロック試行のブルートフォース攻撃に対する保護が含まれています:

  • 失敗するたびに、次の試行までの遅延が増加
  • 15回連続で失敗 すると、すべての保存されたクレデンシャルをオプションでワイプ可能

これにより、誰かがターミナルセッションにアクセスした場合でもシークレットを保護します。

ワイプ動作の設定:

yaml
vault:
  wipe_after_failed_attempts: 15    # 15回失敗後にワイプ(デフォルト)
  wipe_after_failed_attempts: 0     # ワイプを無効化(代わりに永久ロック)

警告: ワイプが有効な場合、失敗試行の制限を超えると、保存されたすべてのクレデンシャルが永久に破壊されます。重要なシークレットのバックアップを安全な場所に保管してください。

設定リファレンス

~/.yeepilot/config.yaml の完全なボールト設定:

yaml
vault:
  enabled: true                      # クレデンシャルボールトを有効化
  start_locked: true                 # セッション開始時にボールトをロック状態にする(デフォルト:true)
  auto_lock_duration: 15m            # 非アクティブ後の自動ロック(デフォルト:15m)
  wipe_after_failed_attempts: 15     # N回失敗後にワイプ(0で無効)

ベストプラクティス

  • 強力なマスターパスワードを使用する -- ボールトのセキュリティはアンロッククレデンシャルの強度に依存します
  • 自動ロックを有効にする -- 特に共有サーバーや本番サーバーでは常に自動ロックを有効にしてください
  • 本番環境にはYubiKeyを推奨 -- ハードウェアベースのアンロックはリモート侵害に対する最強の保護を提供します
  • クレデンシャルを定期的にローテーションする -- yeepilot vault rotate を使用してスケジュール通りにシークレットを更新します
  • バックアップを保持する -- ボールトのワイプ保護は最後の手段です。重要なクレデンシャルの安全なバックアップを常に維持してください
  • ロック状態で開始する -- クレデンシャルが明示的な認証なしに利用可能にならないよう start_locked: true を維持してください