ロールベースのアクセス制御(RBAC)とは?

ロールベースのアクセス制御は、ユーザーのデータへのアクセスをユーザーの組織内のロール(役割)のみに基づいて許可または制限します。

Share facebook icon linkedin icon twitter icon email icon

RBAC

学習目的

この記事を読み終えると、以下のことができます。

  • ロールベースのアクセス制御(RBAC)の仕組みについて学ぶ
  • 属性ベースのアクセス制御やルールベースのアクセス制御のようなほかのタイプのアクセス制御とRBACを比較する

ロールベースのアクセス制御(RBAC)とは?

ロールベースのアクセス制御(RBAC)とは、企業のITシステム内でユーザーができることを制御する方法です。RBACは、1つまたは複数の「ロール(役割)」を各ユーザーに割り当てて、各ロールに異なる権限を付与することで、アクセスを制御します。RBACは、1つまたは複数のソフトウェアアプリケーションに対して適用できます。

role-based access control example

複数の人が一緒に暮らす家を思い浮かべてください。各住人が玄関のドアの合鍵を持っています。その合鍵のデザイン・形状は一人ひとり異なるわけではありません。裏庭の物置きなど家のほかのドアや入口を開けるには、別の鍵を受け取ることになります。物置きを開ける合鍵のデザイン・形状は一人ひとり異なるわけでもないし、物置きのドアと玄関のドアの両方を開けることができる特別な鍵を受け取るわけでもありません。

RBACでは、上記の例の家の鍵のようにロールは静的です。全員が同じものを持ち、ほかのアクセスが必要な人は、カスタマイズされた権限ではなく、追加のロール(2つ目の鍵)を割り当てられます。

理論的には、このアクセス制御に対するロールベースのアプローチでは、権限が個々のユーザーに特化したものではないため、ユーザー権限の管理が比較的簡単になります。しかし、多くのロールやアプリケーションがある大規模な企業では、RBACは複雑になり追跡が困難になることがあります。その結果、ユーザーに必要以上の権限が付与される可能性があります。

アクセス制御とは?

サイバーセキュリティでのアクセス制御は、ユーザーが何をすることができるかやどのデータを見ることができるかを制限および制御するツールのことを指します。最もわかりやすい例がスマートフォンをロック解除するためにパスコードを入力することです。パスコードを知っている人のみがスマートフォン上のファイルやアプリケーションにアクセスすることができます。

ロールとは?

会社での役職が「役割」を指す場合があります。しかし、RBACにおける「ロール(役割)」にはもっと技術的な意味合いがあります。会社システム内で使用される能力、つまり権限と明確に定義されています。各ユーザーには、少なくとも1つのロールが、場合によっては複数のロールが割り当てられます。

ロールは汎用的なものであり、組織内の従業員ごとに特化されたものではありません。たとえば、セールス担当者は各自のユーザーアカウントのためだけに設定された権限を付与されるわけではありません。代わりに、「セールス担当者」のロールと、顧客データベースを表示および編集できる権限といった、付随するすべての権限が割り当てられます。チームのほかのセールス担当者にも同じロールが割り当てられます。特定のセールス担当者が拡張された権限を必要とする場合、ほかのロールが割り当てられます。

このアプローチを取ることで、比較的簡単にユーザーを追加または削除することができます。個々のユーザーの権限を編集する代わりに、管理者は各自のロールを変更するだけで済みます。

ユーザー権限とは?

アクセス制御においてのパーミッション(権限)とは、特定のアクションの実行能力のことです。その一例は、会社のデータベースにファイルをアップロードできることです。信頼できるユーザー(社内の従業員など)は、ファイルをアップロードする権限を持っていますが、社外の請負業者はその権限を持っていません。RBACでは、すべてのロールが権限セットを持ちます。

属性ベースのアクセス制御(ABAC)とは?

属性ベースのアクセス制御(ABAC)とは、組織内のアクセスを制御するもう1つの方法です。ABACはRBACと似ていますが、よりきめ細かく制御できます。ABACにおける権限は、ユーザーのロールではなく、ユーザーの属性に基づいています。ユーザーの特性(役職やセキュリティクリアランスなど)、実行するアクションの属性、またはデータをアクセスしている現在の時刻や物理的な場所といった「実世界」の特性など、ほとんどすべてのものが属性になり得ます。

RBACとABAC

RBACとABACはどちらも、ユーザーの特性を考慮します。しかし、ABACは、ユーザーが行うアクションやアクセスするデータ/システムの特性など、より多くの背景情報を考慮するのに対して、RBACは、ユーザーのロールのみを考慮します。したがって、ABACはRBACよりも動的になりますが、効果的に管理するのが難しいです。

ルールベースのアクセス制御とは?

ロールベースのアクセス制御とルールベースのアクセス制御は同じものではありません。ルールベースのアクセス制御は一連のルールに基づいているのに対して、ロールベースのアクセス制御はユーザーに基づいています。ルールベースのアクセス制御は、リクエストがどこから来るかに関係なく、ポート、IPアドレス、またはデータインプットのタイプなど、特定のアクションをブロックします。ファイアウォールは、ルールベースのアクセス制御を実装するのに使用されることが多いです。

Cloudflareはどのようにアクセス制御ポリシーの適用を支援するのか?

Cloudflare for Teamsスイートの一部であるCloudflare Accessにより、企業は、Cloudflare上のドメイン、アプリケーション、またはパスへのユーザーのアクセスを、保護する、認証する、監視する、許可する/拒否することができます。Cloudflare Accessは、アプリケーションレベルのユーザー権限を企業の社内リソースに素早く適用して、ユーザーがアクセスするすべてのリソースのログも保持します。