EgressViewは緊急用ローカル管理者を常に維持します。Google OIDCは任意の追加ログイン方式で、ローカル復旧経路を無効化できません。
このページで得られるもの: 自分を締め出すことのないログイン経路と、EgressViewを動作マシン以外から安全に開くための設定です。
reverse proxyとHTTPSの節は読まなくて構いません — EgressViewを同じマシンでしか開かない場合、または信頼できるLAN内だけで使う場合は不要です。パスワード保護は既定で有効なので、無防備な状態にはなりません。
既定では平文HTTPで待ち受けます。loopbackなら問題なく、信頼できるLAN内でも許容できます。許容できなくなるのは、ログインパスワードが自分の管理外を通る瞬間です。別の端末からEgressViewを使う前にHTTPSを有効にしてください。インターネットから到達できる構成では必須と考えてください。
.egressview.jsonへ追記して再起動します。
"https": { "enabled": true }
自己署名証明書(.egressview-cert.pem / .egressview-key.pem、有効期間10年)がopensslコマンドで自動生成されます。ブラウザは一度警告を出します。その証明書を保証する第三者がいないためであり、ここで警告を受け入れるのは想定された手順であって、回避策ではありません。
自分の証明書を使う場合は次のように指定します。
"https": { "enabled": true, "certPath": "/path/to/cert.pem", "keyPath": "/path/to/key.pem" }
X-CSRF-Tokenへ指定します。npm run auth:resetを実行します。全browser sessionを失効します。automation tokenも変える場合は-- --regenerate-api-tokenを追加します。server.logへ書きません。非対話の初回起動では.egressview.json隣接のmode 0600 one-time fileへ保存します。Google OAuth 2.0のWeb applicationを作成し、承認済みredirect URIを次に設定します。
https://YOUR_EGRESSVIEW_ORIGIN/api/auth/oidc/callback
設定 → 一般 → 認証と監査でclient ID、client secret、許可emailまたはdomainを1件以上設定します。EgressViewはAuthorization Code + PKCE、state、nonce、Google JWKS署名、issuer、audience、有効期限、verified email、allowlistを検証してから、通常の失効可能なsessionを作成します。
検証済みのログイン経路から、サーバー側でロールを割り当てます。
| ログイン | ロール | 権限 |
|---|---|---|
| ローカル管理者 | admin |
設定、認証情報、認証、バックアップ、運用機能のすべて |
| 許可メールに明示したGoogleアカウント | operator |
ネットワーク情報と端末メモの更新 |
| 許可ドメインだけに一致したGoogleアカウント | viewer |
ネットワーク情報の閲覧のみ |
認証のallowlistは管理者権限の指定ではありません。emailまたはdomain allowlistに含まれるだけでGoogle利用者が管理者になることはありません。 また、生成AIへのデータ送信と課金が発生し得るため、operatorにはAI分析を 許可しません。
ブラウザロール未対応版からの更新時は、既存のローカルsessionだけを管理者 として維持します。既存OIDC sessionは一度失効し、再ログイン時に検証済みの allowlist一致からロールを割り当て直します。
公開URLを指定し、自分で管理するproxy addressだけを信頼します。
EGRESSVIEW_PUBLIC_URL=https://egressview.example.com
EGRESSVIEW_TRUST_PROXY=10.41.0.10
EGRESSVIEW_SECURE_COOKIES=true
EGRESSVIEW_TRUST_PROXYはカンマ区切りのexact IPまたはIPv4 CIDRです。全proxyを信用する設定は禁止です。forwarded client/protocol headerはrate limit、監査用pseudonym、Secure cookie判定に影響します。
reverse proxyが設定済みのSUBPATHを除去してapplicationへ転送する場合は、
同じ値をX-Forwarded-Prefixでも送信してください。たとえば
/egressview/を公開し、applicationのrootへ転送するproxyは
X-Forwarded-Prefix: /egressviewを送ります。これにより、同一processで
公開専用hostの/とprivateなsubpath accessを両立できます。
既定値はclientごとに1分間600 API read、120 API mutationです。通常trafficを観測した上で、必要な場合だけEGRESSVIEW_RATE_LIMIT_READSとEGRESSVIEW_RATE_LIMIT_WRITESを変更してください。
Agentのingestは別枠で、アドレスごとに1分間1500件です(EGRESSVIEW_AGENT_INGEST_WRITES_PER_IP)。Agentは人ではなく、1台で1分間に30バッチ送ることがあるため、専用枠が必要です。120のmutation枠を共有すると、同じアドレスから来る5台目のAgentが弾かれます。これはAgentがNAT越しにHubへ到達する構成では即座に起きます。Agent1台あたりは別途1分間30回に制限されます(EGRESSVIEW_AGENT_INGEST_REQUESTS_PER_MINUTE)。
上限を超えるとHubはRetry-After付きの429を返し、Agentはbackoffして再送するため、観測は失われず遅延します。ただし遅延も避けたいものです。画面上は「Hubの表示が少し古い」という形で現れ、理由を示すものが何も出ません。GET /api/agents/ingest-metricsはeventLoopDelayMsを返します。ingestがWeb UIを待たせ始めているかどうかは、この値で判断してください。
設定画面でlogin、logout、security変更、CSRF拒否、更新APIの最近のeventを確認できます。Append-only rowは生のemail/client IPではなく、request IDとkeyed hashを保存します。既定保持期間は180日です。