2. モデルの要素
このセクションには、ビューベースアクセス制御モデルが提供するアクセス制御サービスを実現するための定義が含まれています。
2.1. グループ
グループは、SNMPの管理オブジェクトにアクセスできる0個以上の<securityModel, securityName>タプルのセットです。グループは、そのグループに属するすべてのsecurityNameに付与されるアクセス権を定義します。securityModelとsecurityNameの組み合わせは、最大で1つのグループにマップされます。グループはgroupNameによって識別されます。
アクセス制御モジュールは、securityNameが必要に応じてすでに認証されていると仮定し、独自の追加認証を提供しません。
ビューベースアクセス制御モデルは、アクセス権をチェックするために呼び出されたときに、securityModelとsecurityNameをアクセス制御モジュールへの入力として使用します。securityModelとsecurityNameの関数としてgroupNameを決定します。
2.2. securityLevel
グループメンバーに対して、異なるセキュリティレベル、すなわちnoAuthNoPriv、authNoPriv、authPrivに対して異なるアクセス権を定義できます。securityLevelは、アクセス権をチェックする際に想定されるセキュリティレベルを識別します。securityLevelの定義については、SNMPアーキテクチャ文書[RFC3411]を参照してください。
ビューベースアクセス制御モデルは、アクセス権をチェックするために呼び出されたときに、securityLevelが入力としてアクセス制御モジュールに渡されることを要求します。
2.3. コンテキスト
SNMPコンテキストは、SNMPエンティティがアクセス可能な管理情報の集合です。管理情報項目は複数のコンテキストに存在する可能性があります。SNMPエンティティは多くのコンテキストにアクセスできる可能性があります。管理情報の命名の詳細については、SNMPアーキテクチャ文書[RFC3411]を参照してください。
ビューベースアクセス制御モデルは、contextNameによってローカルで利用可能なコンテキストをリストするvacmContextTableを定義します。
2.4. MIBビューとビューファミリー
セキュリティ上の理由から、一部のグループのアクセス権を管理ドメイン内の管理情報のサブセットのみに制限できることは、しばしば価値があります。この機能を提供するために、コンテキストへのアクセスは「MIBビュー」を介して行われます。これは、そのコンテキスト内の管理オブジェクトタイプ(およびオプションでオブジェクトタイプの特定のインスタンス)の特定のセットを詳述します。たとえば、特定のコンテキストについて、通常、そのコンテキスト内のすべての管理情報へのアクセスを提供するMIBビューが常に1つあり、多くの場合、情報のサブセットを含む他のMIBビューがあります。したがって、グループに許可されるアクセスは、MIBビューを使用してそのコンテキスト内の管理情報のサブセットのみに制限できます。
MIBビューは、ビューサブツリーの集合として定義されます。各ビューサブツリーは、管理オブジェクト空間内のサブツリーです。各ビューサブツリーは、サブツリーのルートのオブジェクト識別子(OBJECT IDENTIFIER)とビット文字列マスクによって識別されます。ビット文字列マスクにより、ビューサブツリーを定義してサブツリーの個々のブランチを含めたり除外したりできます。
ビューサブツリーのファミリーは、関連するビューサブツリーのセットによって定義できるすべてのMIBビューのセットとして定義されます。
2.4.1. ビューサブツリー
ビューサブツリーは、共通のMIBオブジェクトタイプOBJECT IDENTIFIERプレフィックスを持つすべてのMIBオブジェクトインスタンスのセットです。特定のオブジェクトインスタンスのMIBオブジェクトタイプOBJECT IDENTIFIERとそのオブジェクトインスタンスのインスタンス識別子が、そのオブジェクトインスタンスのOBJECT IDENTIFIER名を形成します。
ビューサブツリーは、そのサブツリー内のすべてのMIBオブジェクトタイプに共通の最長OBJECT IDENTIFIERプレフィックスであるOBJECT IDENTIFIER値によって識別されます。オブジェクトタイプにインスタンスがない場合(たとえば、テーブル)、そのオブジェクトタイプに対応するビューサブツリーは単一のブランチです。オブジェクトタイプにインスタンスがある場合、そのオブジェクトタイプに対応するビューサブツリーは、そのオブジェクトタイプのすべてのインスタンスのセットであるブランチです。オブジェクトタイプがテーブルの場合、そのテーブルに対応するビューサブツリーは、そのテーブルのすべての列オブジェクトタイプのすべてのインスタンス、すなわちすべてのテーブルエントリを含むブランチです。
2.4.2. ViewTreeFamily
ビューサブツリーのファミリー(viewTreeFamily)は、MIBビューを定義する際に含まれる(または除外される)すべてのビューサブツリーのセットです。
viewTreeFamilyは、ビューサブツリー(サブツリー値)とビット文字列マスク(マスク値)の組み合わせ、およびビューサブツリーをMIBビューに含めるか除外するかの指示として定義されます。ファミリーメンバーは、特定のビューサブツリー内にあるMIBオブジェクトインスタンスのセットです。マスク値が零長の場合、ファミリーメンバーはビューサブツリー値と同一、すなわち単一のビューサブツリーです。マスクが非零長の場合、ビューサブツリー値は次のアルゴリズムに従ってマスク値と組み合わされ、ファミリーメンバーのセットが決定されます:
ビューサブツリー値のマスクされたビットを置き換えることによって形成できる
各可能なOBJECT IDENTIFIER値Xについて:
Xのマスクされたビットがすべて零の場合、
Xはファミリーメンバーであり、
そうでなければXはファミリーメンバーではない。
2.5. アクセスポリシー
VACMアクセスポリシーは、vacmAccessTable内のエントリのセットによって定義されます。この表の各エントリは、次の特定の組み合わせに対するアクセス権を定義します:
- グループ(groupNameによって識別)
- コンテキスト(contextNameによって識別、contextPrefixとcontextMatchフィールドを介したワイルドカード使用の可能性あり)
- securityModel
- securityLevel
このような各組み合わせについて、エントリは読み取り、書き込み、および通知アクセス操作に使用されるMIBビューを定義します。このような各MIBビューは、そのviewNameによって識別されます。