コンテンツにスキップ

セキュリティ

banto は、AI に作業を任せても、意図しない範囲に影響が及ばないように設計されています。

各プロジェクトは専用のコンテナ(Incus のシステムコンテナ)で動作します。

  • AI によるコマンドの実行やファイル操作は、コンテナの中で行われます
  • コンテナから見えるのは、そのプロジェクトのフォルダだけです。ほかのプロジェクトや、サーバーのホームディレクトリなどは見えません
  • コンテナは root 権限を持たないユーザーとして動作します
  • メモリ・CPU・プロセス数に上限があります(リソースの管理)
  • シークレットは Vault に保管され、AI には参照名だけが渡されます
  • 値はコマンドのプロセスに直接渡され、AI のコンテキストや会話の履歴には含まれません
  • SSH 鍵は Vault の外に出さず、ssh-agent 経由で使われます
  • シークレットの値を入力するのは常に人です

確認したい操作は、実行前に承認を求めるように設定できます(受信箱と承認)。

  • ログインにはパスキーを使い、パスワードは使いません
  • 端末の追加・パスキーの追加と削除・端末のログアウトの前には、パスキーによる本人確認が求められます
  • ログインのセッションは端末ごとに管理され、個別にログアウトさせられます
  • Publish で公開したサービスにも、banto のログインが必要です
  • banto の画面は HTTPS でのみ利用できます
  • banto 本体は、Caddy を経由した HTTPS の接続だけを受け付けます。内部のポートには、ファイアウォールで外部からアクセスできないようにしています
  • 画面をインターネットに直接公開するのではなく、Tailscale などの VPN を経由して利用することをおすすめします