属性ベースアクセス制御(ABAC)
属性ベースアクセス制御(ABAC) とは何ですか?
属性ベースアクセス制御(ABAC)主体・リソース・アクション・環境の属性に対してポリシーを評価し、アクセス要求を許可するか否かを判断する認可モデル。
属性ベースアクセス制御は、静的なロール割り当てを動的なポリシーに置き換えます。判定エンジンは、4 種類の属性に対してルールを評価します。すなわち、主体(部門、クリアランス、ロール)、リソース(分類、所有者、タグ)、アクション(読み取り、削除、エクスポート)、そして環境(時間帯、送信元 IP、デバイスの状態、脅威レベル)です。これにより、極めて細粒度で文脈を考慮した判断が可能になります。たとえば、医師がオンコールのシフト中で、かつ管理対象デバイスからのみカルテを閲覧できるようにする、といった制御です。ABAC は NIST SP 800-162(2019 年改訂)で正式に定義されており、リソースごとに事前にアカウントをプロビジョニングすることなく情報共有を制御する手段として位置付けられています。
実運用の大半は XACML の参照アーキテクチャに従っており、エンフォースメントを協調する 4 つの機能に分割します。Policy Enforcement Point(PEP)は要求を横取りし、Policy Decision Point(PDP)はそれを評価し、Policy Information Point(PIP)は不足している属性を取得し、Policy Administration Point(PAP)はルールを管理します。近年のスタックでは、XACML の冗長な XML を Open Policy Agent の Rego や AWS/Azure の属性条件に置き換えることも多くあります。ABAC の強みは柔軟性とスケーラビリティであり、わずかなポリシーで、RBAC なら数千のロールを要するものを表現できます。一方で弱点は、ポリシーの複雑さ、監査の難しさ(「誰が X にアクセスできるか?」がソルバー問題になる)、そして信頼でき鮮度の高い属性ソースへの全面的な依存です。
flowchart LR U[主体がアクションを要求] --> PEP[Policy Enforcement Point] PEP --> PDP[Policy Decision Point] PDP -->|属性が必要| PIP[Policy Information Point] PIP -->|主体 / リソース / 環境| PDP PAP[Policy Administration Point] -->|ルール| PDP PDP -->|許可または拒否| PEP PEP -->|許可| R[リソース] PEP -->|拒否| X[ブロック]
● 例
- 01
user.region == resource.region かつ device.compliant == true の場合にのみアクセスを許可する OPA ポリシー。
- 02
EU の IP レンジからアクセスする EU ユーザーに対して個人データのエクスポートを制限する XACML ルール。
● よくある質問
属性ベースアクセス制御(ABAC) とは何ですか?
主体・リソース・アクション・環境の属性に対してポリシーを評価し、アクセス要求を許可するか否かを判断する認可モデル。 サイバーセキュリティの ID とアクセス カテゴリに属します。
属性ベースアクセス制御(ABAC) とはどういう意味ですか?
主体・リソース・アクション・環境の属性に対してポリシーを評価し、アクセス要求を許可するか否かを判断する認可モデル。
属性ベースアクセス制御(ABAC) からどのように防御しますか?
属性ベースアクセス制御(ABAC) に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
属性ベースアクセス制御(ABAC) の別名は何ですか?
一般的な別名: ABAC, ポリシーベースアクセス制御。