RESTAPI テーブル¶
概要¶
go-server-server ベースの SONiC REST API (docker-sonic-restapi) の TLS 設定とランタイム挙動を保持するテーブル1。certs (証明書パス群) と config (動作モード) の 2 つのシングルトン container から構成される。
データフロー (自動生成)¶
flowchart LR
CDB[("CONFIG_DB<br/>RESTAPI")]
DM["restapi"]
CDB --> DM
凡例
CONFIG_DB から SAI までの典型経路を docs/reference/config-db-orch-map.md から機械生成したミニ図。詳細・例外は本ページ本文と対応表を参照。
key 構造¶
container RESTAPI の下に固定キー certs / config の 2 シングルトン。
フィールド¶
RESTAPI|certs¶
| フィールド | 型 | 説明 |
|---|---|---|
ca_crt |
string (path pattern (/[a-zA-Z0-9_-]+)*/([a-zA-Z0-9_-]+).([a-z]+)) |
CA 証明書のローカルパス |
server_crt |
string (*.crt パス) |
サーバ証明書 |
server_key |
string (*.key パス) |
サーバ秘密鍵 |
client_crt_cname |
string (カンマ区切り CN リスト、ワイルドカード可) | クライアント証明書許可 CN リスト |
RESTAPI|config¶
| フィールド | 型 | デフォルト | 説明 |
|---|---|---|---|
client_auth |
boolean | true |
クライアント証明書認証の要求 |
log_level |
enum trace/info |
なし | コンテナログレベル |
allow_insecure |
boolean | false |
平文 (HTTP) 接続の許可 |
制約¶
ca_crt/server_crt/server_key/client_crt_cnameはそれぞれ厳密な正規表現でパス / CN 形式を制約- 既定では
client_auth = true/allow_insecure = falseのため、相互 TLS が必須1
購読者¶
docker-sonic-restapiの起動スクリプト: CONFIG_DB →go-server-server起動引数 / 環境変数 / 証明書パスを設定
関連 CONFIG_DB / YANG / CLI¶
- 関連 CONFIG_DB: なし (
FEATURE.restapiで有効化される) - CLI: 標準 CLI ラッパなし。
config restapi系コマンドは未提供 (CONFIG_DB 直接編集または init_cfg 経由) - 関連 YANG:
sonic-restapi
関連リファレンス¶
引用元¶
関連ページ¶
運用ヒント¶
典型値¶
- key 形式:
RESTAPI|certs / config。 client_auth:true、log_level:info、server_crt/server_key: パス。
よくある誤設定¶
- client_auth=true で client CA を入れ忘れると 401 が出続ける。
確認コマンド¶
値依存挙動マトリクス¶
client_auth 値別挙動¶
| 値 | 挙動 |
|---|---|
true |
クライアント証明書認証必須(mTLS)。デフォルト。client_crt_cname の CN 検証も実施。 |
false |
クライアント証明書不要。サーバ証明書のみ検証。 |
log_level 値別挙動¶
| 値 | 挙動 |
|---|---|
trace |
詳細ログ出力(デバッグ用)。 |
info |
通常ログ。 |
| その他 | YANG pattern "trace|info" 制約違反でバリデーション拒否。(enum 定義なし、文字列 pattern 制約) |
allow_insecure 値別挙動¶
| 値 | 挙動 |
|---|---|
false |
HTTP 平文接続不可(デフォルト)。HTTPS のみ許可。 |
true |
HTTP 平文接続を許可。テスト環境向け。 |
例外条件・特殊挙動¶
- TLS パス pattern 制約:
ca_crt/server_crt/server_keyは YANG のpattern制約でファイルパス形式のみ受け入れる。パターン違反は sonic-yang バリデーション時に拒否される。2 - client_crt_cname のワイルドカード制約: ワイルドカード (
*.domain) 表記は許可されるが、カンマ末尾や空白を含む場合はPatternエラーで拒否される。2 - log_level は trace/info のみ: YANG
pattern "trace|info"制約。それ以外の値はバリデーション拒否。2 - runtime 読み込みは起動時のみ: RESTAPI テーブルの変更は
docker-sonic-restapiコンテナ再起動まで反映されない(hot reload 未対応)。2 - 証明書ファイルの実在チェックなし:
server_crt等のパスが存在しないファイルを指していても CONFIG_DB レベルでは検知されない。サーバ起動時に失敗する。2
-
src/sonic-yang-models/yang-models/sonic-restapi.yang(containerRESTAPI/certs/config). https://github.com/sonic-net/sonic-buildimage/blob/9ea932ec2e18f35e58268ec2e4456b1d4afd65cd/src/sonic-yang-models/yang-models/sonic-restapi.yang ↩↩ -
YANG 定義:
sonic-restapi.yang. https://github.com/sonic-net/sonic-buildimage/blob/master/src/sonic-yang-models/yang-models/sonic-restapi.yang ↩↩↩↩↩