セキュリティ
banto は、AI に作業を任せても、意図しない範囲に影響が及ばないように設計されています。
プロジェクトごとの隔離
Section titled “プロジェクトごとの隔離”各プロジェクトは専用のコンテナ(Incus のシステムコンテナ)で動作します。
- AI によるコマンドの実行やファイル操作は、コンテナの中で行われます
- コンテナから見えるのは、そのプロジェクトのフォルダだけです。ほかのプロジェクトや、サーバーのホームディレクトリなどは見えません
- コンテナは root 権限を持たないユーザーとして動作します
- メモリ・CPU・プロセス数に上限があります(リソースの管理)
シークレットの扱い
Section titled “シークレットの扱い”- シークレットは Vault に保管され、AI には参照名だけが渡されます
- 値はコマンドのプロセスに直接渡され、AI のコンテキストや会話の履歴には含まれません
- SSH 鍵は Vault の外に出さず、ssh-agent 経由で使われます
- シークレットの値を入力するのは常に人です
確認したい操作は、実行前に承認を求めるように設定できます(受信箱と承認)。
- ログインにはパスキーを使い、パスワードは使いません
- 端末の追加・パスキーの追加と削除・端末のログアウトの前には、パスキーによる本人確認が求められます
- ログインのセッションは端末ごとに管理され、個別にログアウトさせられます
- Publish で公開したサービスにも、banto のログインが必要です
ネットワーク
Section titled “ネットワーク”- banto の画面は HTTPS でのみ利用できます
- banto 本体は、Caddy を経由した HTTPS の接続だけを受け付けます。内部のポートには、ファイアウォールで外部からアクセスできないようにしています
- 画面をインターネットに直接公開するのではなく、Tailscale などの VPN を経由して利用することをおすすめします