あなたの会社における最適なアクセス制御モデルはどれ?

あなたの会社における最適なアクセス制御モデルはどれ?

今回は、アクセス制御には具体的にはどんなモデルがあるのかについて、説明します。

IT業界まるわかりガイドは、日本初Web専門スクールのインターネット・アカデミーが運営する業界情報メディアです。最新の業界情報を、初心者にも分かりやすくご紹介しています。

目次

アクセス制御のモデル

ユーザーがシステムやネットワーク上でどんなことができるのかをコントロールするのがアクセス制御です。 アクセス制御と一口に言っても、どのような目的や用途で使われるかにより、 最適な制御方法も異なってきます。

アクセス制御には、大きく分けて4つのモデルがあります。

  • 任意アクセス制御(DAC)
  • 強制アクセス制御(MAC)
  • コアRBAC
  • 階層的RBAC

それでは、これらのモデルについて具体的にご紹介します。

任意アクセス制御(DAC)

任意アクセス制御(Discretionary Access Control)は、 LinuxやUNIXが標準で採用している、最もポピュラーなアクセス制御のモデルで、DACモデルと呼ばれています。

WindowsやMacなど、ほとんどのOSはこのモデルに基づいており、 そのため一般の会社ではこのアクセス制御が普及しています。

DACでは、ファイル(あるいはその他のリソース)の所有者の裁量により、 オブジェクトのアクセス権が設定されます。

所有者は、例えばユーザーの属性(「所有者」や「グループ」や「全員」など)ごとに、 ユーザーが行える操作権限を決め、このルールに従ってアクセスするユーザーを制御します。

任意アクセス制御がどのようなものかを確認するのは簡単です。 これをご覧になっているOSがWindowsであれば、お持ちになっているファイルをどれでもよいので、右クリックしてみてください。

「プロパティ」から「セキュリティ」タブをクリックします。 さらに「詳細設定」をクリックすると、セキュリティの詳細設定が表示されます。

ここでは、アクセス許可エントリのリストの表示や、監査、所有者の変更、アクセス許可の変更などを行うことができます。 これを使えば、ファイルの所有者は当該ファイルのアクセス権を自由に設定・変更できます。

DACを実装する場合、アクセス制御リスト(ACL)による事が一般的です。 ACLは、与えられたオブジェクトを守るために、サブジェクトごとに権利と許可を割り当てます。

このモデルでは、リソースへのアクセス権の決定は基本的に管理者ではなく、所有者にゆだねられています。 したがって、事故や悪意により、権限のないユーザーに不正なアクセスを許す危険性があります。

強制アクセス制御(MAC)

強制アクセス制御(Mandatory Access Control)は、ファイル等の所有者の意図に拘わらず、 システムにより一定のアクセス制御を強制するモデルです。

政府や軍など、重要な機密情報を扱うシステムにおいてこのモデルが使われています。

このモデルでは、ユーザーや所有者にはアクセス権を決定する自由はあまり与えられていません。 また、管理者権限をもったユーザーにもアクセス制御が適用されます。

このモデルでは「セキュリティラベルシステム」が用いられます。 MACモデルが実装されたOSにおいては、全サブジェクトと全オブジェクトに、 信頼度や機密性に応じてラベルが割り当てられています。

あるオブジェクトにアクセスするためには、サブジェクトはオブジェクトが要求するのと同等か、 それ以上のラベルを持っていなければなりません。

OSはセキュリティラベルに基づいて、OSの決定でユーザーのアクセス要求を強制変更することができます。

コアRBACと階層的RBAC

RBACとは、「ロールベースアクセス制御」の略語で、DACやMACよりも新しい手法です。

組織において、各構成員に特定のロール(役割)が与えられ、 そのロールに応じて操作を実行する許可(パーミッション)が割り当てられる仕組みです。

ユーザー個人に対して直接許可が与えられるのではなく、 ロールを通して与えられるため、アクセス権の管理はロールへのアクセス権の割り当てという形になります。 この方式により、アクセス管理は単純化され、アカウントの追加や削除、異動などにも容易に対応できるようになります。

ロールベースアクセス制御は、このモデルの基礎であるコアRBACと、階層的RBACの二種類に分けられます。

コアRBACとは

一人のユーザーが複数のグループに属し、複数のロールを持っていた場合、 そのユーザーはそれらすべてのグループやロールに割り当てられたパーミッションを利用できるという仕組みです。

階層的RBACとは

それぞれのロールの上に、そのロールを統括する上級職のロールが存在する場合、 上級職ロールは下級職ロールの設定に加えて、より高度な権限を設定することができます。