PBAC(ポリシーベースアクセス制御) ぴーばっく/ぽりしーべーすどあくせすせいぎょ
簡単に言うとこんな感じ!
「誰が・どんな状況で・何をしていいか」をルール(ポリシー)として書いておいて、そのルールに照らし合わせてアクセスを許可するしくみだよ。「役職」だけで決めるんじゃなく「時間帯・場所・デバイスの状態」まで条件にできるから、より細かく・柔軟にアクセスを管理できるってこと!
PBACとは
PBAC(Policy-Based Access Control/ポリシーベースアクセス制御) とは、あらかじめ定義した「ポリシー(規則)」に基づいてアクセス権を判定するしくみです。「誰が(主体)」「何に(リソース)」「どんな条件のときに(コンテキスト)」アクセスできるかを、人間が読める形のルールとして記述し、システムがそのルールを評価して許可・拒否を自動的に決定します。
従来の RBAC(ロールベースアクセス制御) が「部長ならこのファイルを見てよい」という「役割」中心の発想だったのに対し、PBACは「部長であり・社内ネットワークからであり・業務時間内であれば許可」といった 複合的な条件 を一つのポリシーとして表現できます。これにより、現実のビジネスルールを忠実にシステムへ落とし込めるのが最大の強みです。
近年のゼロトラスト・セキュリティの考え方(「ネットワークの内側だから信頼する」をやめる考え方)とも相性がよく、クラウド環境・リモートワーク・マルチデバイスが当たり前になった現代のIT環境において注目度が高まっています。
PBACの核心:ポリシーの構造
PBACのポリシーは大きく 4つの要素 で構成されます。
| 要素 | 英語 | 具体例 |
|---|---|---|
| 主体(Subject) | Who | ユーザー、グループ、サービスアカウント |
| リソース(Resource) | What | ファイル、API、データベース、画面 |
| アクション(Action) | How | 読む、書く、削除する、実行する |
| 条件(Condition) | When / Where | 時間帯、IPアドレス、デバイスの状態、MFA済みか |
これら4要素を組み合わせた「ポリシー文」を評価エンジン(PDP: Policy Decision Point)が判定し、実際のアクセス制御ポイント(PEP: Policy Enforcement Point)が適用します。
ポリシーの例(自然言語):
「営業部のメンバーが、会社支給デバイスから、
平日9〜18時の間に、顧客情報CSVを閲覧するのは許可。
それ以外は拒否。」
PDP・PEPって何?覚え方
PDP(Policy Decision Point)=「判事」、PEP(Policy Enforcement Point)=「警備員」 と覚えましょう。判事(PDP)がポリシーを読んで「許可」か「拒否」かを判決し、警備員(PEP)がドアの前に立って実際に通すか止めるかを執行するイメージです。
ABACとの違い:PBACはABACの上位概念?
よく混同されるのが ABAC(Attribute-Based Access Control/属性ベースアクセス制御) です。
| 観点 | RBAC | ABAC | PBAC |
|---|---|---|---|
| 判定の基準 | 役割(ロール) | 属性(ユーザー・リソース・環境) | ポリシー(ルール文) |
| 柔軟性 | 低 | 高 | 非常に高 |
| 管理のしやすさ | 高い | 複雑になりがち | ポリシー言語次第 |
| 代表的な実装 | Active Directory | AWS IAM条件キー | OPA、Cedar、XACML |
| ゼロトラストとの親和性 | △ | ○ | ◎ |
PBACはABACの考え方を取り込みながら、「ポリシーとして明文化・管理できる」点を重視した概念です。両者を同義に使う文脈も多くあります。
歴史と背景
- 1990年代: DAC(任意アクセス制御)・MAC(強制アクセス制御)が主流。シンプルだが柔軟性に欠ける
- 1990年代後半〜2000年代: RBACが登場・普及。「役割ごとに権限をまとめる」発想がエンタープライズに広まる
- 2001年: OASIS(標準化団体)が XACML(eXtensible Access Control Markup Language) の策定を開始。ポリシーをXMLで記述するPBACの初期標準が登場
- 2003年: XACML 1.0 が正式リリース。PDP/PEPのアーキテクチャが定義される
- 2013年: XACML 3.0 リリース。より複雑なポリシー記述が可能に
- 2010年代後半: クラウドの普及でAWS IAM・Google Cloud IAMなどがポリシーベースの権限管理を採用。PBACが実質標準に
- 2022年: Amazon が Cedar というポリシー言語をオープンソースとして公開。可読性の高いPBAC記述が広まる
- 2023年以降: ゼロトラスト・アーキテクチャの普及とともに、PBACは現代的なアクセス制御の主流概念として確立
代表的な実装・ポリシー言語との比較
PBACを実現するためのツール・言語は複数あります。
| 名称 | 開発元 | 特徴 | 主な用途 |
|---|---|---|---|
| XACML | OASIS | XMLベース。表現力は高いが記述が複雑 | 金融・医療など規制産業 |
| OPA(Open Policy Agent) | CNCF | Regoというポリシー言語。Kubernetes等と親和性◎ | クラウドネイティブ環境 |
| Cedar | AWS | 人間が読みやすい構文。AWS AVP(Verified Permissions)で使用 | SaaSアプリの認可 |
| Casbin | オープンソース | 多様なモデル(RBAC/ABAC/PBAC)に対応 | アプリ組み込み |
| AWS IAM | Amazon | JSONポリシーでPBACを実現 | AWSリソースへのアクセス管理 |
PBACのアーキテクチャ図
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| XACML 3.0(OASIS) | PBACの国際標準ポリシー言語。PDP/PEP/PAPのアーキテクチャを定義 |
| RFC 2904 | AAA(認証・認可・アカウンティング)のアーキテクチャ。PBACの認可モデルの前身 |
| RFC 7519 | JWT(JSON Web Token)。PBACのポリシー評価に使うクレーム(属性情報)の標準形式 |
| NIST SP 800-162 | ABACのガイドライン。PBACの実装指針として広く参照される |
関連用語
- RBAC(ロールベースアクセス制御) — 役割(ロール)を軸にアクセス権を管理する手法。PBACの比較対象として必ず登場する
- ABAC(属性ベースアクセス制御) — ユーザー・リソース・環境の属性を組み合わせてアクセスを判定する手法
- ゼロトラスト — 「内側だから安全」をやめ、すべてのアクセスを検証するセキュリティの考え方。PBACと強く連携する
- OPA(Open Policy Agent) — PBACを実現するオープンソースのポリシーエンジン。クラウドネイティブ環境で広く使われる
- IAM(Identity and Access Management) — 誰が何にアクセスできるかを一元管理する仕組みの総称
- JWT(JSON Web Token) — ユーザーの属性・権限情報をトークンとして安全に伝達する規格
- 認可(Authorization) — 認証済みのユーザーに「何をしていいか」を決めるプロセス全般
- 最小権限の原則 — 必要最小限の権限だけを与えるセキュリティの基本原則。PBACで実現しやすくなる