Cedar是一种开源的授权策略语言和SDK。现在,它已正式加入Cloud Native Computing Foundation(CNCF),成为一个沙盒项目。

该项目最初由亚马逊网络服务公司开发。其目标是为现代应用程序提供一种中立的规范,以定义和强制执行细粒度的权限管理。

在云原生环境中,传统的访问控制方式依赖于硬编码的逻辑或通用的策略引擎。而Cedar则通过让开发者能够以策略的形式来表达权限,从而将访问控制与应用程序逻辑分离开来。这种分离使得团队可以在不重新部署代码的情况下更新权限设置,这就是所谓的“策略即代码”模式。

该语言支持多种授权模型,包括基于角色的访问控制、基于属性的访问控制以及基于关系的访问控制。Cedar的另一个特点是注重安全性和可靠性,它通过正式的验证来确保其功能的准确性。该语言的规范是通过Lean定理证明器进行验证的,而其Rust实现则经过了对该规范的多重测试。这种数学上的严谨性确保了策略引擎能够按照预期的方式运行,这对于安全性要求较高的操作来说非常重要。

除了核心语言之外,该项目的自动化推理功能还提供了高级工具能力。开发人员可以使用策略验证器来在部署前检查是否存在错误,从而确保策略符合定义的架构。这种能力允许对策略进行数学分析,从而回答诸如某个请求是否会被允许或拒绝等问题,这比单纯的测试方法要更加可靠。

在公告中,KubernetesSIG的名誉主席兼CNCF大使Lucas Käldström指出,Cedar的设计具有平衡性:“我最欣赏的是Cedar背后的设计理念——它能够很好地平衡表达性和可分析性。”

加入CNCF后,Cedar可以与Open Policy Agent一起处于同一个生态系统中。虽然OPA及其语言Rego都是能够处理基础设施、准入控制和应用程序策略的通用工具,但Cedar则是专门为应用程序级授权而设计的。它的设计重点在于为拥有数百万用户和资源的应用程序提供高性能的评估能力。此外,Cedar还支持基于关系的访问控制,这与Google的Zanzibar模型相契合,从而为其他类似的开源项目提供了替代方案。

自首次开源以来,该语言已经在多个行业得到应用。例如,Cloudflare、MongoDB、StrongDM和Cloudinary等组织已经将该技术集成到他们的系统中。该语言还被应用于AWS的服务中,如Amazon Verified Permissions和AWS Systems Manager。该项目还开始与其他开源项目进行整合,比如Linux基金会的Janssen项目和Kubernetes-Cedar-Authorizer。

通过加入CNCF,该项目将进入一个中立的治理模式。这一转变旨在吸引更多的贡献者,并促进与云原生环境的更深入融合。该项目的路线图是逐步从沙盒模式过渡到孵化模式,最终达到CNCF标准的成熟状态。

Comments are closed.