認可・アクセス制御

PBAC(ポリシーベースアクセス制御) ぴーばっく/ぽりしーべーすどあくせすせいぎょ

アクセス制御ポリシーABACRBAC認可ゼロトラスト
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/属性ベースアクセス制御) です。

観点RBACABACPBAC
判定の基準役割(ロール)属性(ユーザー・リソース・環境)ポリシー(ルール文)
柔軟性非常に高
管理のしやすさ高い複雑になりがちポリシー言語次第
代表的な実装Active DirectoryAWS 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を実現するためのツール・言語は複数あります。

名称開発元特徴主な用途
XACMLOASISXMLベース。表現力は高いが記述が複雑金融・医療など規制産業
OPA(Open Policy Agent)CNCFRegoというポリシー言語。Kubernetes等と親和性◎クラウドネイティブ環境
CedarAWS人間が読みやすい構文。AWS AVP(Verified Permissions)で使用SaaSアプリの認可
Casbinオープンソース多様なモデル(RBAC/ABAC/PBAC)に対応アプリ組み込み
AWS IAMAmazonJSONポリシーでPBACを実現AWSリソースへのアクセス管理

PBACのアーキテクチャ図

PBACのアーキテクチャ(PDP / PEP モデル) ユーザー (主体) デバイス情報 (属性・コンテキスト) PEP Policy Enforcement Point (アクセス制御の入口) PDP Policy Decision Point (ポリシー判定エンジン) ポリシーストア (ポリシー定義の保管場所) OPA / Cedar / XACML 保護リソース (API・ファイル・DB) 判定要求 許可/拒否 ポリシー参照 許可された場合のみ通過 主体・リソース 制御ポイント(PEP) 判定エンジン(PDP) ポリシー定義

関連する規格・RFC

規格・RFC番号内容
XACML 3.0(OASIS)PBACの国際標準ポリシー言語。PDP/PEP/PAPのアーキテクチャを定義
RFC 2904AAA(認証・認可・アカウンティング)のアーキテクチャ。PBACの認可モデルの前身
RFC 7519JWT(JSON Web Token)。PBACのポリシー評価に使うクレーム(属性情報)の標準形式
NIST SP 800-162ABACのガイドライン。PBACの実装指針として広く参照される

関連用語