ABACではじめるゼロトラスト・セキュリティ
~RBACとABACについて~

RBAC(役割ベースのアクセス制御)とABAC(属性ベースのアクセス制御)という言葉をご存知でしょうか?

それぞれ、ユーザ利用者にどのようにしてアクセス権限を付与するか・というものになりますが、利用方法は全く異なります。

今回はそれぞれの概要やメリット、デメリットについて紹介します。

RBACとは

RBACとは、ロール ベース アクセス制御(Role Based Access Control)のことであり、ユーザの役割(ロール)に基づいてアクセス制御を行う手法です。

ユーザに対して、役割(ロール)を付与して、その役割(ロール)に応じて、実行できる機能やアクセスできるサービスを限定することができます。

RBACとは

例えば、以下のようなアクセス権限を付与するイメージです。

  • プロジェクトリーダーがアクセスできるフォルダ
  • プロジェクトメンバ全員がアクセスできるフォルダ
  • 人事部のメンバのみがアクセスできるサービス
  • 全社員がアクセスできるサービス
  • 勉強会でイベントスタッフ(運営側)のみが入室できる準備エリア
  • 勉強会での一般参加者が入室できるオープンエリア

企業・組織によっては、多くの権限の設定が必要で、管理が煩雑になることがありますが、現在最も一般的なアクセスコントロール手法です。

ABACとは

ABACとは属性ベースのアクセス制御(Attribute Based Access Control)のことであり、ユーザの持っている属性に基づいてアクセス制御を行う手法です。

ユーザの属性に応じて、実行できる機能やアクセスできるサービスを限定することができ、ロールベールアクセス制御に比べると比較的新しいアクセス制御の方法です。

ユーザの属性だけではなく、リソースや環境の属性情報を考慮して、アクセス権限を付与することが可能です。

ABACとは

例えば、以下のようなアクセス権限を付与するイメージです。

  • 社内からのアクセスの場合は利用できるサービス(利用する属性:アクセス元のIPアドレスなど)
  • 社外からのアクセス(スマートフォンなど)の場合は利用できないサービス(利用する属性:アクセス元のIPアドレスなど)
  • 勉強会後の懇親会では20歳以上の人だけがお酒を飲める(利用する属性:参加者の年齢)
  • 勉強会後の懇親会では20歳未満の人はソフトドリンクしか飲めない(利用する属性:参加者の年齢)

RBACのメリット・デメリット 

ロールベースのアクセス制御では、ユーザに対して直接アクセス権限を与えるわけではなく、ロールを通して権限を与えるため、アクセス権限の管理はユーザへのロールの適切な割り当てという作業に単純化されます。よって、ユーザーアカウントの追加やユーザの部門間の異動などにも容易に対応できることがメリットです。

ただし、ロールに対して一意に権限が決定されるため、動的に権限を付与するような使い方には不向きです。

また、兼任や兼務、新しい所属や地位が発生したときなど、複雑な権限付与を実現しようとする場合にロールがどんどん増えていくといったデメリットもあります。

ABACのメリット・デメリット

属性ベースのアクセス制御は、ユーザやリソースの属性を考慮してアクセス権を与えるので、RBACに比べて、きめ細やかなアクセス制御が行えます。

ただし、さまざまな属性を制御のための条件として使いたいときに、色々なところから情報を取得する必要があるため、導入のハードルが高いことがあります。

属性情報の収集

ABACで実現するゼロトラストセキュリティ

ゼロトラストセキュリティでは、社内・社外といったようなネットワークの内部外部を問わずに、常にそのアクセスが正当なものかを確認します。

この「常に確認」を実現するために、あるリソース(データ、ファイル、コンテンツ)にアクセスする際、ユーザ情報やデバイス情報などからさまざまな属性情報を取得し、そのアクセスが正しいものかどうかをリアルタイムに判断することが必要となります。

ゼロトラストとABAC

ABAC(属性ベースのアクセス制御)を動的に適用することで、このゼロトラストの世界に近づくことができます。

例えば、ユーザのアクセス元の情報やデバイスの状態、またユーザの過去の行動履歴からリスク算出しそれを属性として扱うことも可能です。

このように収集した属性情報を元に、アクセス権限を動的にかつ、リアルタイムに付与し、制御することで、ゼロトラストセキュリティの「常に確認」が実現できます。

例えば、認証したユーザの情報とアクセス元情報、デバイスの情報(OS情報や管理された端末かどうかなど)からアクセス可否を総合的に判断して、アクセス権限を制限したり、さらに追加の認証要素を要求したりという制御を加える「リスクベース認証」という対処が可能になります。

さらに、次に同じ情報へアクセスする際には、同じアクセス元、ユーザ、デバイスでもユーザの行動履歴からリスクを判断して、危険なアクセスを拒否するという使い方をすることで、よりリアルタイムかつ動的なアクセスコントロールが可能となります。

アクセス制御

さいごに

RBAC、ABAC、どちらのほうが優れているや劣っているということはありません。要件に応じて適切な方法を選んで実装することが大切です。

また、どちらの方法を利用するにしても、第一に必要なのは、「認証」です。

「誰が」アクセスしようとしているかを判断するのが第一歩で、そこからユーザの役割(ロール)やユーザの属性情報、デバイスの情報などを利用して、アクセスコントロールを実施し、情報を守っていきましょう。

リスクベース認証