13 COMMERCIAL IP SECURITY OPTION
3.4. セキュリティポリシーのファイル構成
3.4.1. セキュリティポリシー定義ファイル
3.4.1.4. RBAC の定義
このセクションでは RBAC に関連するセキュリティポリシー定義を解説する。
(1) role の定義
RBAC によるアクセス制御アーキテクチャにおいてユーザに割り当てる role を定義 する。書式をリスト 3‑44 に示す。
リスト 3‑44 role の定義書式
‘role’ identifier ‘types’ types ‘;’
types ::= set
この書式の意味は以下のとおりである。
「identifier」で示される role が未定義であれば定義し、同 role に対して「types」
で示される domain への domain 遷移を許可する。
この role 宣言では先の定義内容を後の定義内容が上書きすることはない。リスト 3‑45 とリスト 3‑46 に示す定義はどちらも同じセキュリティポリシー定義を意味する。
リスト 3‑45 role 定義形態その 1
role system̲r types { ftpd̲t getty̲t };
リスト 3‑46 role 定義形態その 2
role system̲r types ftpd̲t;
role system̲r types getty̲t;
「role を定義する」と捉えるよりも、「role に、遷移を許可する domain を割り当て る」と捉える方が分かりやすいだろう。そして、「その際はじめて登場した role であ れば定義も行われる」のである。重要なのは、「許可する遷移先 domain を割り当てる」
ことなのである。3.4.1.3(2)で domain 遷移ルールの定義を解説したが、domain 遷移 ルールが定義されていたとしても、その遷移先の domain が role に対して許可されて いない限り、この role を割り当てられたユーザがその domain 遷移を実現することは 許されない。
role に対する遷移先 domain の割り当ては domain と domain 遷移ルールを定義した 箇所で随時行われているため、role 定義文はセキュリティポリシー定義の各所で目に することになる。
Ⅱ‑48 Copyright © 2003 IPA, All Rights Reserved.
Note:「新たな role を定義する場合は」
新たに role を定義して同 role でログインするユーザを用意する場合には、login プログラムにアタッチさ れている role である「system̲r」が、新たに定義した role に遷移することを許可する必要がある。role 遷 移許可の定義に関しては 3.4.1.4(2)を参照してほしい。
関連ファイル
domains/下の*.te ファイル role の定義あるいは遷移先 domain の割り当て macros/下の*.te ファイル 同上
types/下の*.te ファイル 同上
(2) role 遷移許可の定義
role 属性は domain や type と同様に遷移ルールをサポートしている。role の遷移を 許可する際の書式をリスト 3‑47 に示す。
リスト 3‑47 role 遷移許可の定義書式
‘allow’ current̲roles new̲roles ‘;’
current̲roles ::= set newroles ::= set
この書式の意味は以下のとおりである。
「current̲roles」で示される role が、「new̲roles」で示される role へ遷移する ことを許可する。
domain 遷移ルールは 3.4.1.4(1)で説明したとおり RBAC により制限を受けるが、こ の role 遷移ルールは RBAC による制限を受けることはない。代わりに 3.4.1.5 で説明 する constraint による制限を受ける。SELinux の標準セキュリティポリシー定義にお いて role 遷移ルールが定義されている箇所はごく僅かである。
関連ファイル
rbac role 遷移許可の定義
(3) role 遷移ルールの定義
role 遷移ルールはあるプログラムの実行時に、新たに開始されるプロセスにアタッ チする role を定義するものである。書式をリスト 3‑48 に示す。
リスト 3‑48 role 遷移ルールの定義書式
‘role̲transition’ current̲roles types new̲role ‘;’
current̲roles ::= set types ::= set
new̲role ::= identifier
この書式の意味は以下のとおりである。
「current̲roles」で示される role が、「types」で示される type がアタッチされ ている実行ファイルを実行して開始されたプロセスには「new̲role」で示される role をアタッチする。
上記書式の遷移先 role として指定可能な role は、3.4.1.4(2)における role 遷移許 可定義にて許可されている role に限られる。role 遷移ルールを明示的に定義しない 場合、新たに開始されたプロセスには開始元プロセスにアタッチされている role が引 き継がれてアタッチされる。
なお、開始されたプロセスにおいてアクセス権限を自動的に変更させる方法として は、role はそのままに domain のみを遷移させる形式が適切であるため、この role 遷 移ルールは将来サポートから外されることになっている。
関連ファイル
SELinux の標準セキュリティポリシー定義では利用されていない。