💡
原文英文,约2200词,阅读约需8分钟。
📝
内容提要
Uber开发了基于属性的访问控制(ABAC)系统Charter,以应对复杂的授权需求。该系统通过动态评估属性和条件,提高了授权决策的精确性和灵活性,支持数千个资源的管理,简化了政策管理并提升了性能。
🎯
关键要点
- Uber开发了基于属性的访问控制(ABAC)系统Charter,以应对复杂的授权需求。
- Charter通过动态评估属性和条件,提高了授权决策的精确性和灵活性。
- Uber的基础设施依赖于数千个微服务,每天进行数百万次授权决策。
- 传统的访问控制无法处理复杂的授权需求,ABAC提供了更好的解决方案。
- 每个访问请求可以分解为:一个行为者在特定上下文中对资源执行某个动作。
- Charter作为集中式服务管理所有授权策略,简化了政策管理。
- 基本政策将行为者与资源通过动作连接,但在复杂场景中存在局限性。
- ABAC通过添加条件扩展了基本政策模型,使得授权决策可以考虑更多上下文和属性。
- Uber定义了四种属性存储接口,以获取行为者、资源、动作和环境的属性。
- 选择Common Expression Language (CEL)作为表达条件的语言,支持多种数据类型和内置函数。
- ABAC在Kafka主题管理中展示了实际应用,简化了对数千个主题的授权管理。
- ABAC的实施带来了更精确的授权政策、动态适应性和显著的可扩展性。
- 70个Uber服务已采用基于属性的政策,以满足特定的授权需求。
➡️