external-controller は、ポリシーグループ、接続、ログを読み取れるランタイム制御 API です。ネットワークへ公開する場合は secret を設定し、アクセス範囲を制限する必要があります。端末内だけで使う場合は 127.0.0.1 にバインドします。LAN からアクセスする場合は、強度の高い secret とファイアウォールの許可リストを併用し、インターネットからの入口には HTTPS と独立した認証も必要です。
まずリッスン範囲を狭める
external-controller のリッスンアドレスとポートを確認し、シークレットウィンドウで、secret がなくても Dashboard から接続やポリシーを読み取れてしまわないか検証します。
- リッスンアドレスが 127.0.0.1、0.0.0.0、LAN の IP のいずれか
- secret が空、または短すぎないか
- Dashboard が暗号化されていない状態でインターネットへ公開されていないか
- リバースプロキシに独立した認証があるか
最小限の安全な構成を作る
- 端末内で使う場合は、127.0.0.1 のリッスンを優先します
- LAN からアクセスする必要がある場合は、強度の高い secret を設定します(参照: 外部コントローラー)
- リバースプロキシの前段にアクセス制御と HTTPS を追加します
- スクリーンショットや設定例に実際の secret を掲載しないでください
