要約

  • RFC 3165は、保存された管理スクリプトと、実行対象・引数・制御値を選ぶ起動テーブルの行を分けていた。
  • VACMの緊急用例で若手グループが書き込めるのは、事前設定された行の開始・引数オブジェクトだけであり、スクリプトの登録と起動行の設定は上級グループに残る。

2001年8月に公開されたRFC 3165は、管理機能をネットワーク機器の近くに分散させる仕組みを描いた。Script MIBはスクリプトの転送・有効化、起動、実行状態の監視、一時停止や終了、結果の取得を扱う。特定の言語や実行系は定めない。実装が対応するなら、コンパイル済みのネイティブコードさえ実行できる。つまり単なる遠隔コマンド形式ではなく、委任された管理作業のライフサイクルをモデル化している。

設計の要点は、スクリプト本体と起動手段を別のものにしたことだ。smScriptTableの行はコードとそのソースを識別する。smLaunchTableの行はRFCのいう「起動ボタン」で、スクリプトに引数や制御値を結び付ける。同じ行から同時に走らせる実行数なども設定でき、SNMP SET一回で準備済みの行を起動できる。実行中・終了後の状態や結果は、別のテーブルで観測する。

所有者も一つではない。smLaunchOwnerは起動行の管理上の所有者で、その行から開始された実行も同じ所有者に属する。一方、smLaunchScriptOwnerとsmLaunchScriptNameは呼び出すスクリプトを特定する。MIBのownerは行を区別しポリシーを結び付ける管理用の名前であり、認証済みの人物やOSアカウントを示すものではない。

第8.3節の例では、VACMのjuniorグループにemergency所有のスクリプト、起動ボタン、実行結果を読む権限を与える。書き込みビューが許すのは、その所有者のsmLaunchStartとsmLaunchArgumentだけだ。上級グループは緊急スクリプトの登録と起動行の設定を担う。若手は既に設計された操作を始められるが、その作成・再設定に必要なMIB権限までは与えられない。

これは規格文書のアクセス制御例であって、実運用で採用された緊急手順の記録ではない。またRFC 3165は汎用サンドボックスを標準化していない。実行系がownerをセキュリティプロファイルに使えるとは書くが、実行系と言語の詳細は実装に委ねる。どのシステムIDで動くか、どのファイルやネットワーク先に届くか、引数が安全かは保証しない。狭いSNMPビューは変更可能なオブジェクトを絞れるが、選ばれたプログラムを無害化するものではない。

開始権限だけを見ても十分ではない。引数を書ける若手は、用意されたスクリプトの挙動にも影響できる。コードの作成者、起動行のowner、実行を始める権限、実行系の権限は関連するが同じではない。RFC 3165は1999年のRFC 2592を置き換えた。採用実績を示す資料はないが、その歴史的な工夫は明確だ。管理作業の作成、設定、起動、観測を、ひとりの全権管理者にまとめず分けられるようにした。

出典:RFC 3165 第3–5、8.1–8.3、10節;RFC 2592;RFC 2575:ビューに基づくアクセス制御;RFC 3415:後続のVACM仕様;RFC 3411:SNMPアーキテクチャ。

文書の経緯と標準間の境界を確認するため(導入実績の証拠ではない)、Datatracker版RFC 3165本文、RFC 3165の記録、version 04のInternet-Draft、USMを定めるRFC 3414、プロトコル操作を定めるRFC 3416、トランスポート対応付けのRFC 3417、MIBのRFC 3418、IANAのSMI番号と言語レジストリーも参照した。