ドメイン RBAC
AIX® 6.1 で導入された役割ベースのアクセス制御 (RBAC) は、 スーパーユーザー root のさまざまな機能を複数のロールに分割するメカニズムを提供します。ロールは、システム上の他のユーザーに 委任することができます。 RBAC は 任務を委任する機能を提供し、システムのセキュリティーを向上させます。 システム上のアクティビティーの監査とトラッキングがより容易になるからです。 RBAC は責務を別のユーザー (許可ユーザーと呼ばれます) に委任しますが、 システムの特定のリソースへの許可ユーザーの管理権限を制限するメカニズムは提供しません。 例えば、ネットワーク管理権限を持つユーザーは、システム上のすべてのネットワーク・インターフェースを管理できます。 いくつかのインターフェースについては、許可ユーザーが変更できないように制限することはできません。
RBAC のドメイン機能は、許可ユーザーへのアクセスを制限するのに使用されます。 システムのユーザーとリソースは、ドメインと呼ばれるタグを付けることによって分類され、ユーザーのリソースへのアクセスは個別のアクセス規則で決定されます。
- 定義
- 以下の定義はアクセス規則に関連しています。
- アクセス規則
- 1 つのサブジェクトが、1 つのオブジェクトが属するドメインをすべて持っているとき、そのサブジェクトはそのオブジェクトにアクセスできます。 これは、そのサブジェクトが属するドメインのリストが、オブジェクトのドメインのスーパー・セットであることを示しています。 これはデフォルトの動作です。
- 1 つのサブジェクトが 1 つのオブジェクトの少なくとも 1 つのドメインを持っているとき、そのサブジェクトはオブジェクトにアクセスできます。 つまり、そのサブジェクトとオブジェクトは共通のドメインを 1 つ持っています。 このときの挙動はオブジェクトのセキュリティー・フラグにより異なります。
- オブジェクトは、特定のドメインへのアクセスを拒否できます。 conflict set と呼ばれる ドメインのセットをオブジェクトが定義しているときに、サブジェクトのドメインの 1 つが conflict set の 一部である場合、そのオブジェクトはそのサブジェクトへのアクセスを拒否できます。
ドメイン・データベース
domain-name:
id = <number>
dfltmsg = <Message>
msgcat = <Message catalog>
msgset = <Message set in catalog>
msgnum = <Message id in catalog>
このデータベースは、mkdom コマンドと chdom コマンドを
使用して操作することができます。
データベースを表示するには、lsdom コマンドを使用します。 エントリーを
削除するには、rmdom コマンドを使用します。データベース内のエントリーは、データベースが setkst コマンドを使用してカーネルに ダウンロードされるまで、有効にはなりません。
最大で 1024 個のドメインがシステムでサポートされているため、
ドメイン ID (ID
属性) として指定できる最大値は 1024 となります。
ドメイン割り当てオブジェクト
/dev/hrvg:
domains=HR,IT
conflictsets=payroll
objtype=device
secflags=FSF_DOM_ANY
- domains: オブジェクトへのアクセスが許可されるドメインを指定します。 ドメインの例としては、IT、HR、および Payroll などが考えられます。
- デバイス: すべてのデバイス (ファイルシステムを含む) をドメインに割り当てることができます。 デバイスの構成などの管理アクティビティー時にドメイン検査が行われます。
/dev/hrvg: domains=HR,IT conflictsets=payroll objtype=device secflags=FSF_DOM_ANY
- ネットワーク・インターフェース: ネットワーク・インターフェース (例: en0) がドメインに割り当てられると、
インターフェースのシャットダウンなどの管理アクティビティーが、インターフェースにドメイン検査を受けるよう要求します。
en0: domains=NETIF,ADMIN objtype=netint flags=FSF_DOM_ALL
- ネットワーク・ポート: TCP ポートと UDP ポートをドメインに割り当てることができます。
アプリケーションがポートにバインドしようとすると、ドメイン検査が実行されます。
TCP_<port#>: domains=NETIF,ADMIN type=netport flags=FSF_DOM_ALL
- プロセス: プロセスは、そのプロセスが実行される元となったユーザーのドメインを継承します。 ユーザーがログインすると、ユーザー・シェル・プロセスはそのユーザーのドメインを持つようになります。 ドメインが設定されると、プロセスのこのようなドメインは存続期間中保持されます。 プロセスのドメインは、いかなるユーザー・インターフェースでもシステム・コールでも変更することができません。 ドメインを設定できるプロセスはログイン・プロセスだけです。 プロセスは conflict set 属性も secflags 属性も持ちません。
現在の制約
- ドメイン構成は現在、ローカル・システムと Lightweight Directory Access Protocol (LDAP) サーバーでサポートされています。
- RBAC ドメインは、AIX ワークロード区画 (WPAR) 内ではサポートされません。
- RBAC ドメインを一時ファイルに適用することはできません。
拡張 RBAC の要件
ドメイン RBAC は 拡張 RBAC で作成されるため、拡張 RBAC がシステム上で使用可能にされ、有効になっている必要があります。
カーネルのセキュリティー・テーブル
ドメイン・データベースと ドメイン・オブジェクト・データベースで定義されたドメインとドメイン割り当てオブジェクトは、setkst コマンドを使用して カーネルにダウンロードされた後で、有効になります。 この 2 つのテーブルは、カーネル・ドメイン・テーブル (KDOMT) およびカーネル・ドメイン・オブジェクト・テーブル (KDOT) と呼ばれます。
カーネル・セキュリティー・テーブルと setkst について、 詳しくは「AIX セキュリティー・ガイド」の役割ベースのアクセス制御 (RBAC) のトピックを参照してください。
ドメイン・コマンド
ドメイン RBAC 関連ファイル
ファイル | 説明 |
---|---|
/etc/security/domains | ドメイン・データベース |
/etc/security/domobjs | ドメイン・オブジェクト・データベース |
ドメインの使用
mkdom id=24 HR
ドメインの
割り当て: ドメインは、ユーザー、ファイル、デバイス、ネットワーク・ポート、およびインターフェースなどのエンティティーに
割り当てることができます。 ユーザー以外のすべてのエンティティーは、conflict set とセキュリティー・フラグ (secflags) を
サポートします。ユーザー: ユーザーは、chuser コマンドと chsec コマンドを 使用してドメインに割り当てられます。
構文:
chuser domains = <comma-separated list of domains> username
例: chuser domains=INET john
ユーザーに割り当てられたドメインは、ログイン時に活動状態にされます。 セッションが活動状態のときにドメインが変更された場合は、再度ログインして、 新しいドメインが有効になるようにする必要があります。
オブジェクト: ドメインを経由したオブジェクトへのアクセスを制限するには、setsecattr コマンドを使用して、 オブジェクトがドメイン・オブジェクト・データベースに定義される必要があります。
setsecattr -o domains=<comma-separated list of allowed domains>
conflictsets=<comma-separated list of restricted domains>
secflags=<FSF_DOM_ALL or FSF_DOM_ANY>
objtype=<file or device or netint or netport>
object-path
例: setsecattr -o domains=INET,WEB conflictsets=DB secflags=FSF_DOM_ANY objtype=netint en0