Cedar: A New Language for Expressive, Fast, Safe, and Analyzable Authorization (Extended Version)
Open accessAbstract
Cedar is a new authorization policy language designed to be ergonomic, fast, safe, and analyzable. Rather than embed authorization logic in an application's code, developers can write that logic as Cedar policies and delegate access decisions to Cedar's evaluation engine. Cedar's simple and intuitive syntax supports common authorization use-cases with readable policies, naturally leveraging concepts from role-based, attribute-based, and relation-based access control models. Cedar's policy structure enables access requests to be decided quickly. Cedar's policy validator leverages optional typing to help policy writers avoid mistakes, but not get in their way. Cedar's design has been finely balanced to allow for a sound and complete logical encoding, which enables precise policy analysis, e.g., to ensure that when refactoring a set of policies, the authorized permissions do not change. We have modeled Cedar in the Lean programming language, and used Lean's proof assistant to prove important properties of Cedar's design. We have implemented Cedar in Rust, and released it open-source. Comparing Cedar to two open-source languages, OpenFGA and Rego, we find (subjectively) that Cedar has equally or more readable policies, but (objectively) performs far better.
The claims and statistics of this paper haven’t been checked yet.
Run the check — free, no account needed. It reads the open-access text and checks the sources it cites.
Integrity signals
Registry
Cites
Statistics
Claims the paper makes
The claims and statistics of this paper haven’t been checked yet.
Run the check — free, no account needed. It reads the open-access text and checks the sources it cites.
Claims other papers make about this one
Each is checked against this paper’s own text: does it say what the citing paper says it does?
Cedar is a new, open-source authorization policy language.
“Cedar [7, 11] is a new, open-source authorization policy language.”
From How We Built Cedar: A Verification-Guided Approach (2024) · cites this paper as [11]
Self-check
Percentages, sums and reported differences re-computed from the paper’s own numbers.
The self-check needs the paper’s full text.
Cites
No references could be resolved yet.
Research works printed but not linked: 30
- David Aspinall. 1994. Subtyping with singleton types. In CSL: International Workshop on Computer Science Logic. 1-15.
- John Backes, Pauline Bolignano, Byron Cook, Catherine Dodge, Andrew Gacek, Kasper Luckow, Neha Rungta, Oksana Tkachuk, and Carsten Varming. 2018. Semantic-based Automated Reasoning for AWS Access Policies using SMT. In 2018 Formal Methods in Computer Aided Design (FMCAD). 1-9. https://doi.org/10.23919/FMCAD.2018.8602994 · DOI · Paper page
- Haniel Barbosa, Clark W. Barrett, Martin Brain, Gereon Kremer, Hanna Lachnitt, Makai Mann, Abdalrhman Mohamed, Mudathir Mohamed, Aina Niemetz, Andres Nötzli, Alex Ozdemir, Mathias Preiner, Andrew Reynolds, Ying Sheng, Cesare Tinelli, and Yoni Zohar. 2022. cvc5: A Versatile and Industrial-Strength SMT Solver. In Tools and Algorithms for the Construction and Analysis of Systems -28th International Conference, TACAS 2022, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2022, Munich, Germany, April 2-7, 2022, Proceedings, Part I (Lecture Notes in Computer Science, Vol. 13243), Dana Fisman and Grigore Rosu (Eds.). Springer, 415-442. https://doi.org/10.1007/978-3-030-99524-9_24 · DOI
- David Basin, Manuel Clavel, and Marina Egea. 2011. A decade of model-driven security. In Proceedings of the 16th ACM symposium on Access control models and technologies (SACMAT).
- Carmine Caserio, Francesca Lonetti, and Eda Marchetti. 2022. A Formal Validation Approach for XACML 3.0 Access Control Policy. Sensors 22, 8 (2022). https://www.mdpi.com/1424-8220/22/8/2984
- Karl Crary, David Walker, and Greg Morrisett. 1999. Typed Memory Management in a Calculus of Capabilities. In Proceedings of the 26th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (San Antonio, Texas, USA) (POPL '99). Association for Computing Machinery, New York, NY, USA, 262-275. https://doi.org/10.1145/ 292540.292564 · DOI
- Joseph W. Cutler, Craig Disselkoen, Aaron Eline, Shaobo He, Kyle Headley, Michael Hicks, Kesha Hietala, Eleftherios Ioannidis, John Kastner, Anwar Mamat, Darin McAdams, Matt McCutchen, Neha Rungta, Emina Torlak, and Andrew M. Wells. 2024. Cedar: A New Language for Expressive, Fast, Safe, and Analyzable Authorization. Proc. ACM Program. Lang. 8, OOPSLA1 (2024).
- Nicodemos Damianou, Naranker Dulay, Emil Lupu, and Morris Sloman. 2001. The Ponder Policy Specification Language. In Policies for Distributed Systems and Networks, Morris Sloman, Emil C. Lupu, and Jorge Lobo (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 18-38.
- Carolina Dania and Manuel Clavel. 2016. OCL2MSFOL: a mapping to many-sorted first-order logic for efficiently checking the satisfiability of OCL constraints. In Proceedings of the ACM/IEEE 19th International Conference on Model Driven Engineering Languages and Systems. 65-75.
- Evgeny Dantsin, Thomas Eiter, Georg Gottlob, and Andrei Voronkov. 2001. Complexity and expressive power of logic programming. ACM Computing Surveys (CSUR) 33, 3 (2001), 374-425.
- Naranker Dulay, Emil Lupu, Morris Sloman, and Nicodemos Damianou. 2001. A policy deployment model for the Ponder language. In 2001 IEEE/IFIP International Symposium on Integrated Network Management Proceedings. Integrated Network Management VII. Integrated Management Strategies for the New Millennium (Cat. No. 01EX470). IEEE, 529-543.
- William Eiers, Ganesh Sankaran, Albert Li, Emily O'Mahony, Benjamin Prince, and Tevfik Bultan. 2022. Quantifying permissiveness of access control policies. In Proceedings of the 44th International Conference on Software Engineering. 1805-1817.
- William Eiers, Ganesh Sankaran, Albert Li, Emily O'Mahony, Benjamin Prince, and Tevfik Bultan. 2023. Quacky: Quantitative Access Control Permissivness Analyzer. In Proceedings of the 37th IEEE/ACM International Conference on Automated Software Engineering (<conf-loc>, <city>Rochester</city>, <state>MI</state>, <country>USA</country>, </conf-loc>) (ASE '22). Association for Computing Machinery, New York, NY, USA, Article 163, 5 pages. https: //doi.org/10.1145/3551349.3559530 · DOI
- David F. Ferraiolo and D. Richard Kuhn. 1992. Role-Based Access Control. In 15th National Computer Security Conference.
- K. Fisler, S. Krishnamurthi, L.A. Meyerovich, and M.C. Tschantz. 2005. Verification and change-impact analysis of access-control policies. In Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005. 196-205. https://doi.org/10.1109/ICSE.2005.1553562 · DOI
- C.A.R. Hoare. 2009. Null References: The Billion Dollar Mistake. Presentation at the QCon conference. https: //www.infoq.com/presentations/Null-References-The-Billion-Dollar-Mistake-Tony-Hoare/
- Vincent C. Hu, D. Richard Kuhn, David F. Ferraiolo, and Jeffrey Voas. 2015. Attribute-Based Access Control. Computer 48, 2 (2015), 85-88. https://doi.org/10.1109/MC.2015.33 · DOI · Paper page
- Graham Hughes and Tevfik Bultan. 2008. Automated verification of access control policies using a SAT solver. International journal on software tools for technology transfer 10, 6 (2008), 503-520.
- Trevor Jim. 2001. SD3: A Trust Management System with Certified Evaluation. In IEEE Symposium on Security and Privacy.
- Ninghui Li, John C. Mitchell, and William H. Winsborough. 2005. Beyond proof-of-compliance: security analysis in trust management. J. ACM 52 (2005).
- Torsten Lodderstedt, David Basin, and Jürgen Doser. 2002. SecureUML: A UML-based modeling language for model- driven security. In International Conference on the Unified Modeling Language. 426-441.
- William M McKeeman. 1998. Differential testing for software. Digital Technical Journal 10, 1 (1998), 100-107.
- Baoluo Meng, Andrew Reynolds, Cesare Tinelli, and Clark Barrett. 2017. Relational Constraint Solving in SMT. In Automated Deduction -CADE 26, Leonardo de Moura (Ed.). Springer International Publishing, Cham, 148-165.
- Leonardo de Moura and Sebastian Ullrich. 2021. The Lean 4 Theorem Prover and Programming Language. In Automated Deduction -CADE 28, André Platzer and Geoff Sutcliffe (Eds.). Springer International Publishing, Cham, 625-635.
- Michał H. Pałka, Koen Claessen, Alejandro Russo, and John Hughes. 2011. Testing an Optimising Compiler by Generating Random Lambda Terms. In Proceedings of the 6th International Workshop on Automation of Software Test.
- Ruoming Pang, Ramon Caceres, Mike Burrows, Zhifeng Chen, Pratik Dave, Nathan Germer, Alexander Golynski, Kevin Graney, Nina Kang, Lea Kissner, Jeffrey L. Korn, Abhishek Parmar, Christina D. Richards, and Mengzhi Wang. 2019. Zanzibar: Google's Consistent, Global Authorization System. In 2019 USENIX Annual Technical Conference (USENIX ATC '19). Renton, WA.
- Sorawee Porncharoenwase, Luke Nelson, Xi Wang, and Emina Torlak. 2022. A Formal Foundation for Symbolic Evaluation with Merging. Proc. ACM Program. Lang. 6, POPL, Article 47 (jan 2022), 28 pages. https://doi.org/10.1145/ 3498709 · DOI
- Oded Shmueli. 1993. Equivalence of Datalog queries is undecidable. The Journal of Logic Programming 15, 3 (1993), 231-241. https://doi.org/10.1016/0743-1066(93)90040-N · DOI
- K Tuncay Tekle and Yanhong A Liu. 2010. Precise complexity analysis for efficient Datalog queries. In Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming. 35-44.
- Xuejun Yang, Yang Chen, Eric Eide, and John Regehr. 2011. Finding and understanding bugs in C compilers. In Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation. 283-294. define maintainer: [user,team#member] or admin define owner: [organization] define reader: [user,team#member] or triager or repo_reader from owner define triager: [user,team#member] or writer define writer: [user,team#member] or maintainer or repo_writer from owner type organization relations define member: [user] or owner define owner: [user] define repo_admin: [user,organization#member] define repo_reader: [user,organization#member] define repo_writer: [user,organization#member]
Cited by
Sorted by citations
How We Built Cedar: A Verification-Guided Approach
Disselkoen, C., Eline, A., He, S., Headley, K., Hicks, M., Hietala, K., Kastner, J., Mamat, A., McCutchen, M., Rungta, N., et al. (2024) · Companion Proceedings of the 32nd ACM International Conference on the Foundations of Software Engineering · doi:10.1145/3663529.3663854 · Cited by 3 · see citing works
Self-citation
- Authors
- Cutler, J. W., Disselkoen, C., Eline, A., He, S., Headley, K., Hicks, M., Hietala, K., Ioannidis, E., Kastner, J., Mamat, A., McAdams, D., McCutchen, M., Rungta, N., Torlak, E., & Wells, A.
- Affiliations
- Amazon (United States) (US)
- ORCID
- Venue
- arXiv
- Publisher
- arXiv
- Published
- 2024
- ISSN
- 2331-8422 (ISSN-L)
- arXiv
- 2403.04651
- OpenAlex
- W4392617601
- Cited by
- 2
- References
- 0
- Citations by year
- 2025: 1 · 2024: 1
- Type
- posted content
- Language
- en
- Open access
- green
- arxiv.org
- Licence
- Locations
- arXiv (Cornell University) (submittedVersion, cc-by)
- arXiv (Cornell University) (cc-by)
- Topics
- Social Sciences › Sociology and Political Science › Access Control and Trust
- Physical Sciences › Computer Science › Artificial Intelligence › Logic, programming, and type systems
- Physical Sciences › Computer Science › Information Systems › Digital Rights Management and Security
- Keywords
- access control, cedar, policy evaluation, policy verification, policy analysis, role-based access control, attribute-based access control, Lean proof assistant, Rust implementation, policy performance
About these checks
Registry, retraction, Cites and statistics results are computed, not judged, with one exception: a printed reference that no index lists is read once by a model before it counts as a citation error. Claims are extracted by a model and kept only when their quote appears verbatim in the text; each cited source is then checked, with a model’s help, for whether it says what the claim relies on. Those verdicts can be wrong — read the claim’s quote and the cited source before relying on one.
Statistics and arithmetic are recomputed, not judged.
Confidence bands are shown only for fields calibrated on our annotated test set. None is calibrated yet, so no band is shown.
What counts as a claim ›How we measure confidence ›How we check this ›
Are you an author, or do you see a problem with this page? Request a review