RBAC
本文约需 2 分钟阅读
RBAC (Role-Based Access Control) とは、ユーザーに直接権限を付与するのではなく、 「ロール (役割)」を介して権限を管理するアクセス制御モデルです。 1992 年に David Ferraiolo と Richard Kuhn が NIST で提唱し、 2004 年に ANSI/INCITS 359 として 標準化されました。「営業部長」「開発者」「監査人」といったロールに権限をまとめ、 ユーザーにはロールを割り当てるだけで済むため、大規模組織での権限管理を劇的に簡素化します。IAM の中核概念であり、アクセス制御の 実装方式として最も広く採用されています。
NIST RBAC モデルの 3 階層
NIST は RBAC を段階的に拡張可能な 3 つのレベルで定義しています。 組織の規模や要件に応じて、どのレベルまで実装するかを選択します。
基本モデル。ユーザー、ロール、パーミッション、セッションの 4 要素で構成される。ユーザーにロールを割り当て、ロールにパーミッションを紐づける。ほとんどのシステムはこのレベルで十分。
ロール間に親子関係 (継承) を導入する。「部長」ロールは「課長」ロールの権限を自動的に継承する。組織階層をそのままロール階層にマッピングでき、権限の重複定義を排除できる。
職務分離 (SoD: Separation of Duties) の制約を追加する。「経理担当」と「承認者」を同一ユーザーに割り当てられないといった排他制約を定義し、不正や誤操作を構造的に防止する。
RBAC、ABAC、PBAC の比較
アクセス制御モデルは RBAC だけではありません。属性ベース (ABAC) やポリシーベース (PBAC) と 比較し、要件に合ったモデルを選択することが重要です。
| 観点 | RBAC | ABAC | PBAC |
|---|---|---|---|
| 判断基準 | ロール (役割) | ユーザー・リソース・環境の属性 | ポリシー (ルールエンジン) |
| 粒度 | 粗い (ロール単位) | 細かい (属性の組み合わせ) | 最も柔軟 (任意の条件) |
| 導入の容易さ | 容易 | 中程度 | 複雑 |
| 管理コスト | ロール数に比例 | 属性定義の維持 | ポリシーの整合性維持 |
| 適するケース | 組織構造が明確な企業 | 動的な条件判断が必要な場合 | 複雑なビジネスルール |
| 代表的な実装 | AWS IAM ロール, Kubernetes RBAC | AWS IAM ポリシー条件, Azure ABAC | OPA (Open Policy Agent) |
実際のシステムでは RBAC と ABAC を組み合わせるハイブリッド方式が増えています。 AWS IAM はロールベースの基本構造に、 Condition 要素で属性ベースの条件を追加できる 典型的なハイブリッド実装です。
最小権限の原則との関係
最小権限の原則は 「業務に必要な最低限の権限だけを付与する」というセキュリティの基本原則です。 RBAC はこの原則を組織的に実現するための仕組みといえます。ロールを適切に設計すれば、 個々のユーザーに過剰な権限が付与されるリスクを構造的に排除できます。 ただし、ロール設計が粗いと「開発者ロールに本番環境の削除権限が含まれている」といった 過剰権限が生じます。ロールの粒度設計が最小権限の実効性を左右します。
ロール爆発 (Role Explosion) の問題
RBAC の最大の課題は、組織の複雑化に伴いロール数が爆発的に増加する「ロール爆発」です。 部門 × 職位 × プロジェクト × 環境の組み合わせでロールを作ると、数百から数千のロールが 生まれ、管理が破綻します。
ロール爆発を防ぐには、ロールの粒度を「職務機能」に限定し、部門やプロジェクトの区別は ABAC の属性条件で処理するハイブリッド方式が有効です。定期的なロール棚卸し (ロールの 利用状況を監査し、不要なロールを統廃合する) も欠かせません。
主要プラットフォームでの RBAC 実装
IAM ロールにポリシー (JSON) をアタッチし、ユーザーやサービスにロールを引き受けさせる (AssumeRole)。クロスアカウントアクセスにもロールを使用する。
Role / ClusterRole でリソースへの操作権限を定義し、 RoleBinding / ClusterRoleBinding でユーザーやサービスアカウントに紐づける。名前空間レベルの分離が可能。
ディレクトリロール (Global Admin, User Admin 等) と、アプリケーション固有のカスタムロールを組み合わせる。 PIM (Privileged Identity Management) で特権ロールの Just-In-Time 付与が可能。
RBAC はゼロトラストアーキテクチャの 基盤でもあり、コンプライアンス監査で 必ず確認される項目です。企業のパスワードポリシー、スタートアップのセキュリティチェックリスト、ゼロトラストセキュリティも あわせて参照してください。アクセス制御の関連書籍 (Amazon)で設計パターンを深く学ぶことを推奨します。
这篇文章对您有帮助吗?