toplogo
Sign In

Cedar: A New Language for Expressive, Fast, Safe, and Analyzable Authorization


Core Concepts
Cedar is a new authorization policy language designed to be ergonomic, fast, safe, and analyzable.
Abstract
Cedar is a novel authorization language that aims to simplify access control logic by externalizing it into policies written in a domain-specific language. These policies are then evaluated by Cedar's authorization engine separately from the application code. Cedar's design balances expressiveness, safety, performance, and analyzability. The language supports role-based, attribute-based, and relation-based access control models. Cedar's policies are efficiently analyzable through reduction to SMT for automatic proof of access invariants. The implementation of Cedar in Rust outperforms other open-source languages like OpenFGA and Rego in terms of policy readability and performance.
Stats
Cedar performs 28.7×-35.2× faster than OpenFGA. Cedar is 42.8×-80.8× faster than Rego. Policy analysis questions are encoded into SMT-LIB formulas taking an average of 75.1 ms to solve.
Quotes
"Cedar's simple syntax supports common authorization use-cases with readable policies." "Cedar provides a policy validator leveraging optional typing to help policy writers avoid mistakes." "Cedar's design ensures precise policy analysis for maintaining authorized permissions during refactoring."

Key Insights Distilled From

by Joseph Cutle... at arxiv.org 03-08-2024

https://arxiv.org/pdf/2403.04651.pdf
Cedar

Deeper Inquiries

質問1

Cedarはポリシーの安全性を確保するためにどのような仕組みを採用していますか? Cedarはポリシーが安全であることを確認するためにいくつかのアプローチを取っています。まず、Cedarの設計ではデフォルトで拒否される仕組みがあります。つまり、明示的に許可されていない行動は自動的に拒否されます。さらに、forbidポリシーは常にpermitポリシーを上書きします。例えば、特定の行動がforbidされている場合、それをpermitする別のポリシーが存在しても最終的な決定は拒否となります。また、Cedarの評価エンジンは非決定的ではなく必ず同じ承認判断を返すよう保証されています。

質問2

実世界のアプリケーションでCedarを実装する際に生じる可能性がある課題は何ですか? Cedarを実際のアプリケーションで導入する際に潜在的な課題として以下が挙げられます。 学習コスト: 新しい言語やツールセット(例:Lean)へ移行することで従業員やチームメンバー全体へ新しいスキルや知識を教育しなければならない点。 既存インフラストラクチャへの適合: 既存のインフラストラクチャやデータベースと連携させるために適切なAPIや接続方法が必要とされる点。 パフォーマンス: Cedarが高速かつ効率的であることが強調されていますが、大規模アプリケーションではパフォーマンス面で改善すべき部分も考慮しなければなりません。

質問3

Cedarの設計原則は承認以外でも他領域にどう応用可能ですか? Cedarのデザイン原則(表現力・安全性・パフォーマンス・解析可能性)は他領域でも有益です。例えばIoTセキュリティ管理やビッグデータ処理時でも同様原則を活用して信頼性向上および効率化施策等展開可能です。このような原則から得られた洞察や手法は広範囲で応用可能であり、セキュアコード作成から複雑系統制御まで多岐にわたります。
0
visual_icon
generate_icon
translate_icon
scholar_search_icon
star