写点什么

亚马逊云科技开源 PBAC 领域特定语言 Cedar

  • 2023-06-26
    北京
  • 本文字数:1640 字

    阅读完需:约 5 分钟

亚马逊云科技开源PBAC领域特定语言Cedar

亚马逊云科技开源了他们用来定义策略访问权限的领域特定语言Cedar。Cedar 已集成在Amazon Verified PermissionsAWS Verified Access中,还可以通过 SDK 和语言规范将 Cedar 直接集成到应用程序中。


Cedar可以在应用程序代码之外定义访问策略,这种分离使得它们能够独立地进行编写、分析和审计。Cedar 支持基于角色的访问控制(RBAC)和基于属性的访问控制(ABAC)。


SDK 可用于编写和验证策略和授权访问请求。Cedar 是用 Rust 编写的,但同时提供了 Rust crate 和 Java 包,可以在Java中使用 Cedar。


可以通过调用 Cedar 授权引擎来验证请求是否被授权。请求信息会被转换为 Cedar 请求并传给 Cedar 授权引擎。下面是在 Rust 中使用 Cedar 的示例:


pub fn is_authorized(    &self,    principal: impl AsRef<EntityUid>,    action: impl AsRef<EntityUid>,    resource: impl AsRef<EntityUid>,) -> Result<()> {    let es = self.entities.as_entities();    let q = Request::new(        Some(principal.as_ref().clone().into()),        Some(action.as_ref().clone().into()),        Some(resource.as_ref().clone().into()),        Context::empty(),    );    info!(        "is_authorized request: principal: {}, action: {}, resource: {}",        principal.as_ref(),        action.as_ref(),        resource.as_ref()    );    let response = self.authorizer.is_authorized(&q, &self.policies, &es);    info!("Auth response: {:?}", response);    match response.decision() {        Decision::Allow => Ok(()),        Decision::Deny => Err(Error::AuthDenied(response.diagnostics().clone())),    }}
复制代码


可以使用 self.authorizer.is_authorized(&q, &self.policies, &es)self.authorizer 来调用 Cedar 授权引擎。参数包括访问请求、Cedar 策略和实体集合。访问请求包含了所需的主体、操作和资源信息。根据具体的分析结果,授权引擎将返回 Decision::Allow 或 Decision::Deny。


策略也可以通过 SDK 来创建。在下面的 Java 示例中,我们创建了一个策略,允许主体 Alice 对 Vacation 资源的子资源执行 View_Photo 操作:


private Set<Policy> buildPolicySlice() {   Set<Policy> ps = new HashSet<>();   String fullPolicy = "permit(principal == User::\"Alice\", action == Action::\"View_Photo\", resource in Album::\"Vacation\");";   ps.add(new Policy(fullPolicy, "p1"));   return ps;}
复制代码


在 Java 中,可以调用 isAuthorized 方法来查询授权情况:


public boolean sampleMethod() throws AuthException {    AuthorizationEngine ae = new WrapperAuthorizationEngine();    AuthorizationQuery q = new AuthorizationQuery("User::\"Alice\"", "Action::\"View_Photo\"", "Photo::\"pic01\"");    return ae.isAuthorized(q, buildSlice()).isAllowed();}
复制代码


在亚马逊云科技宣布开源 Cedar 之后,Permit.io发布了Cedar-Agent,一个 HTTP 服务器,作为基于 Cedar 的策略的策略存储和数据存储。策略存储支持创建、检索、更新和删除策略,数据存储支持在内存中存储应用程序数据。Cedar-Agent 可以针对存储的数据执行授权检查,这些检查可以基于传入的请求进行。


HackerNews 上的一位用户dadadad100评论说,他们看到 Cedar 可能填补了应用程序授权领域的空白:


Cedar 介于 OPA(基于数据的搜索方法)和Zanzibar之间。目前还不清楚哪一方会胜出,但不管怎样,现在这个问题开始引起人们的关注了。


其他用户,如Oxbadcafebee,对亚马逊云科技没有为 Open Policy Agent 提供支持表示失望。


Cedar 采用了 Apache License 2.0,托管在 GitHub 上。更多细节可以在最近的亚马逊云科技的博客中找到,或者加入Cedar Policy Slack频道。


原文链接

https://www.infoq.com/news/2023/06/aws-cedar-open-source/


相关阅读:

亚马逊云科技 Lambda引入响应有效负载流

从微服务转为单体架构、成本降低 90%,亚马逊内部案例引发轰动!CTO:莫慌,要持开放心态

2023-06-26 08:004294

评论

发布
暂无评论
发现更多内容

添加DNS解析记录需要注意哪些事项?(国科云)

防火墙后吃泡面

拼叨叨砍价系统:实体店低成本引流的营销利器

微擎应用市场

医院更衣室外来物种:全新自动发衣系统,比你效率高

斯科信息

斯科信息 RFID自动发衣系统 RFID智能发衣机

Playwright MCP入门指南:从零开始构建自动化测试

测吧(北京)科技有限公司

原生 App 的开发费用

北京木奇移动技术有限公司

APP开发 软件外包公司 APP外包

一种智能调度分布式路径计算解决方案

天翼云开发者社区

CDN 安全加速

流量突然提升100倍QPS,怎么办?

测试人

2025 年 9 月《大模型 SQL 能力排行榜》发布

爱可生开源社区

sql LLM

舆情监测的全球协同:本土洞察与海外社交媒体监控的闭环管理

沃观Wovision

社交媒体 沃观Wovision 舆情监测系统 海外舆情监测

一佳教育培训课程系统小程序:一站式教育数字化解决方案

微擎应用市场

【隐语SecretFLow隐私计算】纵向联邦算法 SecureBoost Benchmark——SGB性能测试报告

隐语SecretFlow

算法 联邦学习 隐私计算 可信隐私计算评测

电商小程序开发,打通物流端的终极大招之API接口

快递鸟

喜报!网易灵动荣获2025全球数贸创新大赛机器人赛道金奖

网易伏羲

智慧矿山 网易伏羲 工程机械 网易灵动

思科SRv6 实现 VPN+流量工程测试

天翼云开发者社区

网络

婚纱摄影小程序管理系统:助力摄影商家数字化运营新方案

微擎应用市场

在AI技术唾手可得的时代,挖掘新需求成为核心竞争力——某知名AI代理框架需求洞察

qife122

开源项目 AI开发

SLS Copilot 实践:基于 SLS 灵活构建 LLM 应用的数据基础设施

阿里巴巴云原生

阿里云 云原生 sls

企业如何选择私有化部署的即时通讯(IM)系统?

BeeWorks

即时通讯 IM 私有化部署

如何通过内核版本检查判断FreeBSD是否需要重启

qife122

freebsd 内核更新

当游戏NPC有了“灵魂”,网易伏羲解码游戏智能交互场景新实践

网易伏羲

网易伏羲 游戏AI 逆水寒手游 新倩女幽魂

等保合规日志 “暗礁” 识别:5个常见错误+规避方法

运维有小邓

日志管理 日志审计 等保20 Syslog日志管理

如何设计一个高性能、不可篡改的选票系统——以美国总统选举为例

测试人

DeepSeek-V3.2的DSA稀疏注意力技术:在TPU平台上的效能革命与适配实践

中昊芯英

人工智能 tensorflow TPU 大语言模型 DSA

事件驱动重塑 AI 数据链路:阿里云 EventBridge 发布 AI ETL 新范式

阿里巴巴云原生

阿里云 云原生 EventBridge

提升AD管理效率:权限委派的两次进化

运维有小邓

AD域管理

华为坤灵分销伙伴“百&万计划”全面启航,首批10家分销钻石伙伴获得授牌

极客天地

如何像顶尖产品主理人一样思考?掌握这五个黄金维度

星云低代码中间件

软件 业务系统 企业系统

不止节能,更能 “生钱”:MyEMS 辅助企业参与电力现货市场的实操案例

开源能源管理系统

开源 能源管理系统

亚马逊云科技开源PBAC领域特定语言Cedar_云端开发_Matt Campbell_InfoQ精选文章