情報セキュリティにおいて、ロールベースアクセス制御(RBAC)[ 1 ] [ 2 ]またはロールベースセキュリティ[ 3 ]は、システムへのアクセスを許可されたユーザーに制限する手法です。これは、ロールと権限に基づいて定義された、ポリシーに依存しないコンピュータアクセス制御メカニズムです。ロール権限、ユーザーロール、ロール間の関係など、RBACの構成要素により、ユーザー割り当てが容易になります。RBACは、数百人のユーザーと数千の権限を持つ大規模組織におけるセキュリティ管理を容易にするために使用できます。
RBACは、強制アクセス制御や任意アクセス制御(DAC)のフレームワークとは異なりますが、これらのポリシーを適用することができます。また、コンテキストベースアクセス制御やアクセス制御リストともアプローチが異なります。属性ベースアクセス制御と関係ベースアクセス制御は、 RBACの概念に基づいたモデルです。
1990年代にNISTが行った調査では、RBACが商業組織や政府組織の多くのニーズに対応していることが実証されました。[ 4 ] RBACは、アクセス制御に関連する情報セキュリティ標準の実装を含め、情報セキュリティ管理におけるベストプラクティスとして今でも広く認識されています。

組織内では、さまざまな職務に応じて役割が作成されます。特定の操作を実行するための権限は、特定の役割に割り当てられます。ユーザーには権限が直接割り当てられるのではなく、役割を通じてのみ権限が付与されるため、個々のユーザー権限の管理は、ユーザーアカウントに適切な役割を割り当てるだけで済みます。これにより、ユーザーの追加や所属部署の変更といった一般的な操作が簡素化されます。
RBACには、主に3つのルールが定められています。
さらに追加の制約が適用される場合もあり、上位レベルの役割が下位レベルの役割が持つ権限を包含する階層構造で役割を組み合わせることも可能です。
役割階層と制約の概念を用いることで、RBACを制御して格子型アクセス制御(LBAC)を作成またはシミュレートすることができる。したがって、RBACはLBACの上位概念とみなすことができる。
RBACモデルを定義する際には、以下の規則が役立ちます。
制約とは、相反する役割間で権限が継承される可能性に制限を設けるルールです。そのため、適切な職務分掌を実現するために使用できます。例えば、同一人物がログインアカウントを作成する権限と、そのアカウント作成を承認する権限の両方を持つことは認められません。
したがって、集合論の記法を用いると次のようになる。
被験者は、異なる役割で複数のセッションを同時に受けることができる。
NIST/ANSI/ INCITS RBAC 規格 (2004) では、RBAC の 3 つのレベルが認識されています。[ 5 ]
RBAC は柔軟なアクセス制御技術であり、その柔軟性により、任意アクセス制御(DAC) [ 6 ]または強制アクセス制御(MAC) [ 7 ]を実装できます。グループを使用した DAC (たとえば、POSIX ファイルシステムで実装されているもの) は RBAC をエミュレートできます。[ 8 ]役割グラフが部分的に順序付けられたセットではなくツリーに制限されている場合、MAC は RBAC をシミュレートできます。[ 9 ]
RBAC の開発以前は、Bell-LaPadula (BLP) モデルは MAC と同義であり、ファイルシステムのパーミッションは DAC と同義でした。これらはアクセス制御の既知の唯一のモデルと考えられていました。モデルが BLP でない場合は DAC モデルと考えられ、その逆も同様でした。1990 年代後半の研究により、RBAC はどちらのカテゴリにも該当しないことが実証されました。[ 10 ] [ 11 ]コンテキストベースのアクセス制御(CBAC)とは異なり、RBAC はメッセージのコンテキスト (接続の送信元など) を考慮しません。RBAC は、ロール爆発につながるという批判も受けています。[ 12 ]これは、ロールが操作やデータ型に本質的に割り当てられているため、RBAC が提供できるよりも細かい粒度のアクセス制御を必要とする大規模なエンタープライズ システムでの問題です。CBAC と同様に、エンティティ関係ベースのアクセス制御システムは、実行主体との関連付けを考慮することでデータのインスタンスを保護することができます。[ 13 ]
アクセス制御リスト(ACL) は、従来の裁量アクセス制御 (DAC) システムで低レベルのデータ オブジェクトに影響を与えるために使用されます。RBAC は、複数のエンティティ間の直接的な関係を変更する操作に権限を割り当てる点で ACL とは異なります (下記のACLg を参照)。たとえば、ACL は特定のシステム ファイルへの書き込みアクセスを許可または拒否するために使用できますが、そのファイルがどのように変更されるかを規定するものではありません。RBAC ベースのシステムでは、操作は金融アプリケーションでの「クレジット アカウントの作成」トランザクションや医療アプリケーションでの「血糖値検査記録の入力」である可能性があります。したがって、ロールは、より大きなアクティビティ内の一連の操作です。RBAC は、重要な操作の承認に 2 人以上の人が関与する必要があることを保証する職務分離 (SoD) 要件に特に適していることが示されています。RBAC における SoD の安全性の必要十分条件が分析されています。SoD の基本的な原則は、二重の特権によってセキュリティ侵害を引き起こす個人があってはならないということです。さらに、いかなる人も、他の同時保有の役割に対して監査、管理、またはレビュー権限を行使する役割を担うことはできない。[ 14 ] [ 15 ]
「最小限のRBACモデル」であるRBACmは、 ACLのエントリとしてグループのみが許可されるACLメカニズムであるACLgと比較することができる。Barkley(1997) [ 16 ]は、 RBACmとACLgが同等であることを示した。
データ交換や「高レベル比較」のために、ACLデータはXACMLに変換できます。
属性ベースアクセス制御(ABAC)は、ロールとグループに加えて追加の属性を考慮するようにRBACから発展したモデルです。ABACでは、以下の属性を使用できます。
ABACは、静的な権限ではなくポリシーを使用して、何が許可され、何が許可されないかを定義するという意味で、ポリシーベースである。
関係性に基づくアクセス制御(ReBAC)は、RBACから発展したモデルです。ReBACでは、主体がリソースにアクセスする権限は、主体とリソース間の関係性の存在によって定義されます。
このモデルの利点は、きめ細かな権限設定が可能であることです。例えば、ソーシャルネットワークでは、ユーザーが他の特定のユーザーと投稿を共有することができます。[ 17 ]
単一のシステムまたはアプリケーション内でユーザー権限(コンピュータのアクセス許可)を管理するためにRBACを使用することは、ベストプラクティスとして広く受け入れられています。リサーチ・トライアングル・インスティテュートがNIST向けに作成した2010年のレポートでは、企業にとってのRBACの経済的価値を分析し、従業員のダウンタイムの削減、プロビジョニングの効率化、アクセス制御ポリシー管理の効率化による従業員一人当たりのメリットを推定しました。[ 18 ]
異種混在のIT インフラストラクチャと、数十または数百のシステムおよびアプリケーションにまたがる要件を持つ組織では、階層的な役割の作成と権限の割り当てなしに RBAC を使用して十分な役割を管理し、適切な役割メンバーシップを割り当てることは非常に複雑になります。 [ 19 ]新しいシステムは、古い NIST RBAC モデル [20] を拡張して、エンタープライズ全体への展開における RBAC の制限に対処しています。NIST モデルは、 INCITSによって ANSI/INCITS 359-2004 として標準として採用されました。NIST モデルの設計上の選択肢に関する議論も公開されています。[ 21 ]
米国連邦政府機関やその他の組織で使用されている情報セキュリティ標準であるNIST特別刊行物800-53には、AC-3(7)のアクセス強制制御にロールベースのアクセス制御が含まれています。[ 22 ]
ベストプラクティスの集合であるCISコントロールの実装では、コントロール6「アクセス制御管理」を満たす一環として、ロールベースのアクセス制御が組み込まれることが多い。[ 23 ]
米国の医療保険の携行性と説明責任に関する法律(HIPAA)の規制では、電子保護医療情報に対する技術的保護の一環としてアクセス制御の実装が義務付けられており(45 CFR 164.312)、役割ベースのアクセス制御は業界で一般的なアプローチです。[ 24 ]
決済カード業界データセキュリティ基準(PCI DSS)では、実装者に対し、「システムコンポーネントおよびカード所有者データへのアクセスを、そのアクセスを必要とする職務に就いている個人のみに制限する」ことを求めており、これには「権限の割り当てが個々の従業員の職務分類および機能に基づいていることを保証すること」(要件7)が含まれており、これは役割ベースのアクセス制御の一形態である。[ 25 ]
{{cite journal}}: CS1 maint: 複数の名前: 著者リスト (リンク){{cite book}}: CS1 maint: 複数の名前: 著者リスト (リンク){{cite journal}}: CS1 maint: 複数の名前: 著者リスト (リンク)