コンテンツにスキップ

RESTAPI テーブル

概要

go-server-server ベースの SONiC REST API (docker-sonic-restapi) の TLS 設定とランタイム挙動を保持するテーブル1certs (証明書パス群) と 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 構造

RESTAPI|certs
RESTAPI|config

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_DBgo-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: truelog_level: infoserver_crt/server_key: パス。

よくある誤設定

  • client_auth=true で client CA を入れ忘れると 401 が出続ける。

確認コマンド

sonic-db-cli CONFIG_DB keys 'RESTAPI|*'
systemctl status restapi

値依存挙動マトリクス

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