Skip to main content
QUICK REVIEW

[論文レビュー] PML: An Interpreter-Based Access Control Policy Language for Web Services

Yang Luo, Qingni Shen|arXiv (Cornell University)|Mar 23, 2019
Access Control and Trust参考文献 16被引用数 6
ひとこと要約

この論文では、モデル非依存かつ実装非依存なアクセス制御を実現するためのポリシー言語およびインタプリタベースの実装メカニズム(PML-EM)を提案する。Luaのインタプリタ内実行(インタプリタ・オン・インタプリタ)を活用することで、PML-EMはクロスプログラミング言語互換性とサンドボックスセキュリティを達成し、Lua JITを用いる場合、1件あたりのリクエスト当たりのポリシー実行オーバーヘッドが5.9μs未塔に抑えられ、IntelのRMDやVMwareのDispatchのような実世界のシステムでも高い性能と実用性を示している。

ABSTRACT

Access control is an important component for web services such as a cloud. Current clouds tend to design the access control mechanism together with the policy language on their own. It leads to two issues: (i) a cloud user has to learn different policy languages to use multiple clouds, and (ii) a cloud service provider has to customize an authorization mechanism based on its business requirement, which brings high development cost. In this work, a new access control policy language called PERM modeling language (PML) is proposed to express various access control models such as access control list (ACL), role-based access control (RBAC) and attribute-based access control (ABAC), etc. PML's enforcement mechanism is designed in an interpreter-on-interpreter manner, which not only secures the authorization code with sandboxing, but also extends PML to all programming languages that support Lua. PML is already adopted by real-world projects such as Intel's RMD, VMware's Dispatch, Orange's Gobis and so on, which proves PML's usability. The performance evaluation on OpenStack, CloudStack and Amazon Web Services (AWS) shows PML's enforcement overhead per request is under 5.9us.

研究の動機と目的

  • クラウドアクセス制御ポリシー言語における標準化の欠如により、ユーザーが複数の言語を学び、各プラットフォームで承認ロジックを再構築せねばならないという問題に対処する。
  • 異なるプログラミング言語間で再利用可能な1つのポリシー実行メカニズムを提供することで、クラウドサービスプロバイダの開発および保守コストを削減する。
  • ポリシーを異なるプラットフォーム間で再利用可能にするクロスクラウドポリシーのポータビリティを実現する。
  • ポリシー実行をホストシステムから分離するセキュアでサンドボックス化された実行メカニズムを提供する。
  • OpenStack、CloudStack、AWSを対象とした実世界の展開およびベンチマークにおいて、提案手法の実用的妥当性と高い性能を実証する。

提案手法

  • ACL、RBAC、ABACモデルを抽象的な承認論理によって分離し、具体的なポリシー規則とは独立して表現可能な高水準なポリシー言語PMLを設計する。
  • PML-EMをインタプリタ・オン・インタプリタ(IoI)アーキテクチャで実装し、PMLインタプリタをLuaインタプリタ内に実行することで、サンドボックス化とポータビリティを確保する。
  • Luaの軽量で埋め込み可能なランタイムを活用し、PML-EMがPython、Java、C++、およびLua埋め込みをサポートする他の言語で書かれたシステムと統合可能であることを実現する。
  • Luaのジャストインタイム(JIT)コンパイルを活用してパフォーマンスを最適化し、PMLマッチャーおよびインタプリタロジックをマシンコードにコンパイルして低遅延の実行を実現する。
  • OpenStack(Python)、CloudStack(Java)、AWS IAM(C++/Java)といった実世界のプラットフォームでPML-EMを評価し、現実的なワークロード下でのポリシー実行遅延を測定する。
  • ネイティブ実行メカニズムおよび非JITバージョンと比較することで、インタプリタレイヤーの影響とJIT最適化の効果を明確に分離する。

実験結果

リサーチクエスチョン

  • RQ11つのポリシー言語が、ACL、RBAC、ABACといった多様なアクセス制御モデルを、表現力やパフォーマンスを損なわずに表現できるか?
  • RQ2異なるクラウドプラットフォームおよびプログラミング言語間で、モデル非依存かつ実装非依存なポリシー実行メカニズムをどのように実現できるか?
  • RQ3生産用クラウドシステムにおいて、ポリシー実行にインタプリタ・オン・インタプリタ(IoI)アプローチを用いる場合のパフォーマンスオーバーヘッドはどの程度か?
  • RQ4Lua JITの使用が、ポリシー実行におけるインタプリタレイヤーに起因するパフォーマンスペナルティを顕著に低減できるか?
  • RQ5実世界のクラウドプラットフォームにおいて、PML-EMはネイティブ実行メカニズムと比較して遅延およびスケーラビリティの点でどの程度の性能を示すか?

主な発見

  • Lua JITを用いる場合、PML-EMは1件あたりのリクエスト当たりのポリシー実行オーバーヘッドが5.9μs未塔に抑えられ、低遅延クラウドワークロードに適している。
  • インタプリタ・オン・インタプリタ(IoI)メカニズムにより、PML-EMはLua埋め込みをサポートする任意の言語で書かれたシステム上で実行可能となり、実装言語非依存性が達成される。
  • Lua JITを有効にした場合、追加の抽象化レイヤーがあるにもかかわらず、PML-EMのパフォーマンスはネイティブ実装と競合可能であり、一部のベンチマークでは元のメカニズムの0.32倍という非常に低いオーバーヘッドを達成している。
  • PML-EMの設計により、承認論理とポリシー規則が明確に分離され、異なるアクセス制御モデルおよびプラットフォーム間で再利用可能となっている。
  • PMLはIntelのRMD、VMwareのDispatch、OrangeのGobisといった実世界のシステムでも採用されており、実用的妥当性と耐障害性が裏付けられている。
  • パフォーマンス評価の結果、インタプリタレイヤーが存在しても、合計遅延は一般的なインターネットのラウンドトリップ時間(30–100ms)の0.2%未塔に抑えられ、ユーザー体験にほとんど影響を与えないことが示された。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。