Solaris のシステム管理 (セキュリティサービス)

第 18 章 役割によるアクセス制御 (概要)

この章では、役割によるアクセス制御 (RBAC) について説明します。RBAC は、セキュリティ機能の 1 つで、通常はスーパーユーザーに制限されているオペレーションのアクセス権を制御します。この章の内容は以下のとおりです。

RBAC の手順については、第 19 章「役割によるアクセス制御 (手順)」を参照してください。RBAC の要素とツールに関する参照については、第 20 章「役割によるアクセス制御 (参照)」を参照してください。

RBAC : スーパーユーザーモデルの置き換え

従来の UNIX システムでは、root ユーザー (スーパーユーザー) はすべての権限を持ちます。つまり、任意のファイルに対する読み取り権と書き込み権、すべてのプログラムの実行権、および任意のプロセスに終了シグナルを送信する権限があります。スーパーユーザーになるユーザーは、事実上、使用するサイトのファイアウォールを変更したり、監査トレールを変更したり、給与台帳などの機密レコードを読み取ったり、ネットワーク全体をシャットダウンしたりすることができます。

役割によるアクセス制御 (RBAC) は、スーパーユーザーモデルの権限をすべて与えるか、またはまったく与えないかの機能を置き換えます。RBAC では、基本的に最小限の特権以外は許可しません。つまり、そのユーザーに必要な特権だけを許可します。RBAC を使用すると、組織はスーパーユーザーの機能を分割して、それらを「役割」と呼ばれる特殊なユーザーアカウントに割り当てることができます。役割は、ジョブ要件に応じて、特定のユーザーに割り当てます。

役割は柔軟に設定できるため、さまざまなセキュリティポリシーに対応できます。RBAC には、簡単に設定できる次の 3 つの推奨される役割が用意されています。

これらの役割の実装は、必須ではありません。役割は、組織のセキュリティ要件に応じて設定する機能です。役割は、セキュリティ、ネットワーク、ファイアウォールの管理など、特定の目的の管理に合わせて設定できます。担当するシステムの修正権限だけを持つ管理ユーザーという役割と 1 人の強力な管理者という役割を作成することもできます。

Solaris RBAC の要素

Solaris オペレーティング環境の RBAC モデルでは、通常のユーザーとしてログインし、役割に応じて制限された管理グラフィカルツールとコマンドを実行できる役割を引き受けます。RBAC モデルでは、これらの要素を Solaris オペレーティング環境に導入します。

次の図では、各 RBAC 要素の動作を示します。

図 18–1 Solaris RBAC 要素の動作

この図については次に説明します。

RBAC では、ユーザーに役割が割り当てられます。役割が使用する機能は、権利プロファイルと承認から取得します。通常は、論理的に関連付けられた権利プロファイルに対して、承認が割り当てられます。ただし、承認を役割に直接割り当てることもできます。


注 –

権利プロファイルと承認は、ユーザーに直接割り当てることもできます。ただし、特権が不注意に使用されると、問題が発生することがあるため、できるだけ直接割り当てないでください。


セキュリティ属性 (実 UID 、実 GID、実効 UID、実効 GID) と共にコマンドを権利プロファイルに割り当てることができます。

次の図では、Operator の役割の Printer Management 権利プロファイルを使用して、RBAC 関係の例を示します。

図 18–2 Solaris RBAC 要素の関係

この図については次に説明します。

Operator の役割を使用して、プリンタ管理と媒体のバックアップを実行します。ユーザー johnDoe は、Operator の役割に割り当てられているため、「Operator」パスワードを入力してその役割を引き受けることができます。

Operator 権利ファイルは、Operator の役割に割り当てられています。Operator 権利ファイルには、「Printer Management」と「Media Backup」という補助プロファイルが割り当てられています。これらの補助プロファイルは、Operator の役割の主要な作業です。

「Printer Management」権利プロファイルは、プリンタ、印刷デーモン、およびスプーラを管理するプロファイルです。「Printer Management」権利プロファイルには、solaris.admin.printer.readsolaris.admin.printer.delete、および solaris.admin.printer.modify 承認が割り当てられています。これらの承認を使用することで、プリンタキューの情報を操作できます。「Printer Management」プロファイルには、euid=0 を指定した /usr/sbin/accepteuid=lp を指定した /usr/ucb/lpq のように、セキュリティ属性を指定したコマンドが割り当てられます。

特権付きアプリケーション

「特権付きアプリケーション」とは、システムの設定より優先して指定できるアプリケーションです。

UID と GID を確認するアプリケーション

root またはその他の特定の UID または GID を確認する特権付きアプリケーションは、従来より UNIX のアプリケーションとして存在していました。RBAC 権利プロファイルメカニズムを使用すれば、特定のコマンドに UID または GID を指定することができます。任意のユーザーがアクセスできるコマンドの ID を変更する代わりに、権利プロファイルでセキュリティ属性を指定したコマンドとして実行することができます。その権利プロファイルを持つユーザーまたは役割であれば、root 以外でもプログラムを実行できます。

ID として、実 ID または実効 ID を指定できます。実行 ID を割り当てた場合は、実 ID より優先されます。実効 ID はアクセス権ビットの setuid 機能に相当し、監査上、UID を識別します。ただし、root の実 UID を要求するシェルスクリプトやプログラムのために、実 ID も設定できます。たとえば、pkgadd コマンドは、実効 UID ではなく実 UID を要求します。コマンドを実行するときに、指定した実効 UID では権限が十分でない場合は、「SMC Right Properties」ダイアログボックスの「Set Security Attributes」オプションを使用して特権を実 UID に変更する必要があります。権利プロファイルの作成または変更 を参照してください。

承認を確認するアプリケーション

RBAC には、承認を確認するコマンドも用意されています。root にはすべての承認が定義されているため、任意のアプリケーションを実行できます。現時点では、次のアプリケーションで、承認が確認されます。

プロファイルシェル

承認されたユーザーは、Solaris 管理コンソール起動ツールまたはプロファイルシェルのコマンド行から特権付きアプリケーションを取得できます。プロファイルシェルは特別な種類のシェルで、プロファイルに割り当てられている特権付きアプリケーションにアクセスできます。プロファイルシェルは、ユーザーが su を実行して役割を引き受けたときに起動されます。プロファイルシェルには、pfsh pfcsh、および pfksh があります。これらはそれぞれ、Bourne シェル (sh)、C シェル (csh)、および Korn シェル (ksh) に対応します。

RBAC の役割

「役割」は、特権付きアプリケーションを実行できる特別な種類のユーザーアカウントです。役割は、ユーザーアカウントと同じ方法で作成され、ホームディレクトリ、グループ、パスワードなどを持ちます。役割は、権利プロファイルとそれに割り当てられている承認により機能します。役割には継承はありません。

ユーザーが役割を引き受けると、その役割の属性がすべてのユーザー属性を置き換えます。役割の情報は、passwdshadowuser_attr、および audit_user データベースに格納されます。役割の設定の詳細については、推奨される役割の構成役割の作成、および 役割プロパティの変更を参照してください。

同じ役割になるすべてのユーザーは、同じ役割のホームディレクトリを持ち、同じ環境で動作し、同じファイルへのアクセス権を持ちます。ユーザーは、コマンド行から su を実行し、役割名とパスワードを指定して役割を引き受けることができます。Solaris 管理コンソールツールを開いて、役割を引き受けることもできます。

役割に直接ログインすることはできません。これは、root 役割を作成して、匿名による root ログインをできないようにするためです。詳細は、root を役割にするを参照してください。ユーザーは、最初に通常のユーザーアカウントにログインする必要があります。ほかの役割から直接役割になることはできません。ユーザーの実 UID は常に監査されます。

Solaris 9 には、事前定義の役割は用意されていません。この章の前述のとおり、3 つの推奨される役割は簡単に構成できます。

RBAC の承認

「承認」は、役割またはユーザーに許可できる個別の権限です。RBAC に準拠したアプリケーションは、ユーザーの承認を確認してから、アプリケーションまたはアプリケーション内の特定の操作に対するアクセス権を許可します。この承認の確認は、従来の UNIX アプリケーションが行なっていた UID=0 の確認に代わるものです。承認の詳細については、承認auth_attr データベース、および 承認を必要とするコマンドを参照してください。

RBAC の権利プロファイル

「権利プロファイル」は、役割またはユーザーに割り当てることができるシステムの設定より優先されるオペレーションの集合です。権利プロファイルには、実効 UID、実効 GID、実 UID、または実 GID を定義したコマンド、承認、その他の権利プロファイルが含まれます。権利プロファイル情報は、prof_attr および exec_attr データベースに分割して格納されます。権利プロファイルの詳細は、権利プロファイルの内容prof_attr データベース、および exec_attr データベースを参照してください。

ネームサービスの適用範囲

ネームサービスの適用範囲は、RBAC を理解する上で重要な概念です。役割の適用範囲は、個別のホスト、または ネームサービス (NIS、NIS+、LDAP など) を使用するすべてのホストに適用されます。ローカルな構成ファイルとネームサービスにより配布された構成情報の優先順位は、/etc/nsswitch.conf ファイルに指定されています。検索は、最初に一致した時点で停止します。たとえば、プロファイルが 2 つの適用範囲に存在する場合は、最初の適用範囲に含まれるエントリだけが使用されます。