トンネル接続認証ポリシー (TunnelAuthMode)
AegisMesh の トンネル接続認証ポリシー (TunnelAuthMode) は、管理対象端末の接続認証方式をネットワーク(テナント/アカウント)全体で一元統制するエンタープライズ向けゼロトラスト機能です。
一般的なメッシュVPNでは、常時接続用のマシントンネル(Setup Key)と対話ログイン用のユーザートンネル(IdP / SSO)が同じネットワーク内に無制限に混在しやすく、「発行したSetup Keyが私物PCに流用される」「未管理端末から従業員アカウントで勝手にログインされる」といったセキュリティリスクが存在します。
AegisMesh では、管理画面から 4つの認証モード を切り替えることで、端末認証とユーザー認証の厳格な境界防御を実現します。
4つの認証モードの概要
管理コンソールの 「Settings」>「Network Settings」>「トンネル接続認証ポリシー」 から以下の4モードを選択できます。
flowchart TD
subgraph Client["クライアント端末の接続試行"]
User["ユーザーSSO認証 (IdP)"]
Machine["事前承認 Setup Key (マシン)"]
Hybrid["管理端末 + ユーザーSSO (ハイブリッド)"]
end
subgraph Policy["TunnelAuthMode ポリシー判定"]
direction TB
M_Flex["flexible (標準: 両方許可)"]
M_User["user_only (SSO必須・Key拒否)"]
M_Mach["machine_only (Key必須・SSO拒否)"]
M_Strict["strict_hybrid (二重認証必須)"]
end
subgraph Result["接続制御"]
Pass["✅ ピア登録・通信許可"]
Block["❌ 登録拒否 (PermissionDenied)"]
end
User --> M_Flex --> Pass
Machine --> M_Flex --> Pass
User --> M_User --> Pass
Machine --> M_User --> Block
User --> M_Mach --> Block
Machine --> M_Mach --> Pass
User --> M_Strict --> Block
Hybrid --> M_Strict --> Pass
1. flexible(柔軟モード - デフォルト)
- 仕様: マシントンネル(Setup Key)およびユーザートンネル(IdP / SSO)双方の個別接続を無条件で許可します。
- 適用推奨: 初期導入フェーズ、開発環境、またはサーバーと社員PCが混在する小規模運用。
2. user_only(ユーザー認証限定モード)
- 仕様: IdP / SSO(Google Workspace、Microsoft Entra ID、Okta等)による正規ユーザー認証端末のみ接続を許可します。Setup Key による単体接続試行は管理サーバーで即時遮断されます。
- 適用推奨: 全員が社内IdPアカウントを持つテレワーク環境。野良キーの不正発行やトークン漏洩による未承認マシンの混入を完全に根絶したい組織。
3. machine_only(マシントンネル限定モード)
- 仕様: 事前承認された Setup Key による端末認証のみを許可します。個人ユーザーによる対話型 SSO ログイン接続は一切拒否されます。
- 適用推奨: 監視カメラ、POS端末、IoTゲートウェイ、社内Linuxサーバー、CI/CDランナーなど、対話型ユーザーが存在しないシステム専用の独立ネットワーク。
4. strict_hybrid(厳格ハイブリッド認証モード - 最上位セキュリティ)
- 仕様: 事前承認された管理対象端末(マシントンネル)上において、正規ユーザーのSSO対話認証が行われた場合のみ 通信を許可します(端末認証 × ユーザー認証の二重強制)。
- 適用推奨: ゼロトラストを厳格に適用する大企業・金融機関・医療機関。「私物PC(BYOD)に従業員アカウントでログインして社内網へ入る」行為をシステム的に100%防止します。
個別境界値テスト & 動作マトリクス
AegisMesh 管理サーバー(management/server/peer.go および peer_test.go)では、各モードに対する個別境界値テスト(Test_ValidateTunnelAuthMode)が全10ケース実装され、厳格なバリデーションが自動検証されています。
境界値テスト結果マトリクス
| テストケース名 | 設定モード (mode) | 接続元種別 | 判定結果 | サーバー挙動・理由 |
|---|---|---|---|---|
flexible allows user registration | flexible | ユーザーSSO認証 | ✅ 許可 | 標準モードのためユーザー対話接続を許可 |
flexible allows machine setup key registration | flexible | Setup Key | ✅ 許可 | 標準モードのためマシン事前共有キー接続を許可 |
empty mode defaults to flexible | "" (未設定・空文字) | ユーザーSSO認証 | ✅ 許可 | 後方互換性のため未設定時は自動的に flexible としてフォールバック |
machine only denies user registration | machine_only | ユーザーSSO認証 | ❌ 拒否 | ユーザーSSO単体接続をブロック (Error) |
machine only allows machine setup key registration | machine_only | Setup Key | ✅ 許可 | 事前承認されたSetup Key端末のため通過 |
user only denies machine setup key registration | user_only | Setup Key | ❌ 拒否 | キー単体接続をブロック (Error) |
user only allows user registration | user_only | ユーザーSSO認証 | ✅ 許可 | IdPによる正当なユーザー対話認証のため通過 |
strict hybrid denies pure user registration | strict_hybrid | ユーザー単体 (BYOD) | ❌ 拒否 | マシントンネルのコンテキストが存在しないため遮断 (Error) |
strict hybrid allows machine registration | strict_hybrid | Setup Key (マシン) | ✅ 許可 | 基盤となるマシントンネルの初期登録を許可 |
embedded proxy always allowed | machine_only | 組み込みプロキシ | ✅ 許可 | システム内部の ProxyMeta.Embedded ピアは運用維持のためモード不問でバイパス |
管理画面(Web UI)での設定手順
- AegisMesh 管理コンソールに管理者権限(TenantAdmin / ResaleAdmin / SuperAdmin)でログインします。
- 左側サイドメニューの 「Settings」 をクリックし、「Network Settings」 タブを開きます。
- 「トンネル接続認証ポリシー(Tunnel Connection Auth Policy)」 項目を確認します。
- ドロップダウンメニューから、組織の運用セキュリティ基準に合致するモード(
flexible/user_only/machine_only/strict_hybrid)を選択します。 - 選択と同時に設定が安全に保存され、直ちに新規接続ピアへの評価ルールへ適用されます。
REST API による自動化設定
CI/CD やインフラ自動構成スクリプトから本ポリシーを制御する場合、Management REST API を使用します。
エンドポイント
PUT /api/accounts/{account_id}/settingsContent-Type: application/jsonリクエストボディ例
{ "tunnel_auth_mode": "strict_hybrid"}指定可能な値
"flexible""user_only""machine_only""strict_hybrid"
トラブルシューティング & エラー挙動
接続拒否時のクライアント側エラー
ポリシーによって接続が拒否された場合、クライアントCLI(aegismesh status)またはログには以下のメッセージが出力されます:
Error: failed to register peer: tunnel authentication mode violation (user_only mode active, machine key registration rejected)対処方法
- Setup Key 端末が繋がらない場合: 管理設定が誤って
user_onlyに設定されていないか確認してください。 - 社員のPCがログインできない場合: 管理設定が
machine_onlyになっていないか、またはstrict_hybrid環境で端末の事前登録(Setup Keyによる基盤セットアップ)が完了しているかを確認してください。