跳转到主要内容

RBAC

本文约需 2 分钟阅读

RBAC (Role-Based Access Control) とは、ユーザーに直接権限を付与するのではなく、 「ロール (役割)」を介して権限を管理するアクセス制御モデルです。 1992 年に David Ferraiolo と Richard Kuhn が NIST で提唱し、 2004 年に ANSI/INCITS 359 として 標準化されました。「営業部長」「開発者」「監査人」といったロールに権限をまとめ、 ユーザーにはロールを割り当てるだけで済むため、大規模組織での権限管理を劇的に簡素化します。IAM の中核概念であり、アクセス制御の 実装方式として最も広く採用されています。

NIST RBAC モデルの 3 階層

NIST は RBAC を段階的に拡張可能な 3 つのレベルで定義しています。 組織の規模や要件に応じて、どのレベルまで実装するかを選択します。

Core RBAC

基本モデル。ユーザー、ロール、パーミッション、セッションの 4 要素で構成される。ユーザーにロールを割り当て、ロールにパーミッションを紐づける。ほとんどのシステムはこのレベルで十分。

Hierarchical RBAC

ロール間に親子関係 (継承) を導入する。「部長」ロールは「課長」ロールの権限を自動的に継承する。組織階層をそのままロール階層にマッピングでき、権限の重複定義を排除できる。

Constrained RBAC

職務分離 (SoD: Separation of Duties) の制約を追加する。「経理担当」と「承認者」を同一ユーザーに割り当てられないといった排他制約を定義し、不正や誤操作を構造的に防止する。

RBAC、ABAC、PBAC の比較

アクセス制御モデルは RBAC だけではありません。属性ベース (ABAC) やポリシーベース (PBAC) と 比較し、要件に合ったモデルを選択することが重要です。

観点RBACABACPBAC
判断基準ロール (役割)ユーザー・リソース・環境の属性ポリシー (ルールエンジン)
粒度粗い (ロール単位)細かい (属性の組み合わせ)最も柔軟 (任意の条件)
導入の容易さ容易中程度複雑
管理コストロール数に比例属性定義の維持ポリシーの整合性維持
適するケース組織構造が明確な企業動的な条件判断が必要な場合複雑なビジネスルール
代表的な実装AWS IAM ロール, Kubernetes RBACAWS IAM ポリシー条件, Azure ABACOPA (Open Policy Agent)

実際のシステムでは RBAC と ABAC を組み合わせるハイブリッド方式が増えています。 AWS IAM はロールベースの基本構造に、 Condition 要素で属性ベースの条件を追加できる 典型的なハイブリッド実装です。

最小権限の原則との関係

最小権限の原則は 「業務に必要な最低限の権限だけを付与する」というセキュリティの基本原則です。 RBAC はこの原則を組織的に実現するための仕組みといえます。ロールを適切に設計すれば、 個々のユーザーに過剰な権限が付与されるリスクを構造的に排除できます。 ただし、ロール設計が粗いと「開発者ロールに本番環境の削除権限が含まれている」といった 過剰権限が生じます。ロールの粒度設計が最小権限の実効性を左右します。

ロール爆発 (Role Explosion) の問題

RBAC の最大の課題は、組織の複雑化に伴いロール数が爆発的に増加する「ロール爆発」です。 部門 × 職位 × プロジェクト × 環境の組み合わせでロールを作ると、数百から数千のロールが 生まれ、管理が破綻します。

ロール爆発の例:
5 部門 × 4 職位 × 10 プロジェクト × 3 環境 = 600 ロール
→ ABAC の属性条件で部門・環境を動的に判定すれば、ロール数を 20 程度に抑えられる

ロール爆発を防ぐには、ロールの粒度を「職務機能」に限定し、部門やプロジェクトの区別は ABAC の属性条件で処理するハイブリッド方式が有効です。定期的なロール棚卸し (ロールの 利用状況を監査し、不要なロールを統廃合する) も欠かせません。

主要プラットフォームでの RBAC 実装

AWS IAM

IAM ロールにポリシー (JSON) をアタッチし、ユーザーやサービスにロールを引き受けさせる (AssumeRole)。クロスアカウントアクセスにもロールを使用する。

Kubernetes RBAC

Role / ClusterRole でリソースへの操作権限を定義し、 RoleBinding / ClusterRoleBinding でユーザーやサービスアカウントに紐づける。名前空間レベルの分離が可能。

Azure AD (Entra ID)

ディレクトリロール (Global Admin, User Admin 等) と、アプリケーション固有のカスタムロールを組み合わせる。 PIM (Privileged Identity Management) で特権ロールの Just-In-Time 付与が可能。

RBAC はゼロトラストアーキテクチャの 基盤でもあり、コンプライアンス監査で 必ず確認される項目です。企業のパスワードポリシースタートアップのセキュリティチェックリストゼロトラストセキュリティも あわせて参照してください。アクセス制御の関連書籍 (Amazon)で設計パターンを深く学ぶことを推奨します。

相关术语

这篇文章对您有帮助吗?

XHatena