AWS推出新策略语言Cedar
AWS推出了名为Cedar的新策略语言,用于定义访问权限。Cedar由AWS的自动推理小组开发,旨在与AWS无关,并且易于理解策略的效果。目前,Cedar已应用于Amazon Verified Permissions和AWS Verified Access服务中。
Cedar策略的组成
Cedar策略由效果、范围和条件子句组成:
- 效果:可以为
permit(允许)或forbid(禁止)。与IAM策略类似,显式的forbid会覆盖任何permit声明,但显式的permit是获得访问权限的必要条件,因为请求默认是被隐式拒绝的。 - 范围:用于指定策略适用的主体、操作和资源。范围可以未定义,此时只要满足条件子句,策略将应用于所有可能的请求。
- 条件子句:用于指定效果适用的上下文。通常可能有一个或没有条件子句,但Cedar支持任意数量的子句。Cedar提供了一组基本操作符,包括比较操作符、布尔操作符和集合操作符(如
exists、in和has)。
策略模板与扩展
Cedar内置了策略模板的支持,可以简化创建具有相似结构但仅在主体或资源关键字上不同的策略。如果基础模板发生变化,所有派生的策略将自动更新。Cedar还通过扩展支持IP地址和小数,扩展使用函数式语法调用,并且必须使用内置方法进行操作。
自动推理工具
Cedar的设计使得可以构建自动推理工具来分析策略。自动推理工具可以尝试推断两个策略是否相同,或者某个策略是否会授予访问权限。AWS的杰出科学家Byron Cook表示,自动推理工具通过使用数学中的已知技术来尝试回答有关程序(或逻辑公式)的问题。
社交媒体的反应
社交媒体上对Cedar的反应褒贬不一。一些用户认为AWS应该提供一个WASM或eBPF API,而不是创建新语言,以便用户可以使用他们想要的任何语言的完整功能。另一些用户担心Cedar的与云无关的性质可能不会有效,认为某些声明可能只对特定的云提供商有意义。
当前可用性
目前,Cedar已在Amazon Verified Permissions、AWS Verified Access以及Cedar Playground中提供使用。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。