Uber如何重新定义微服务的访问控制

Uber如何重新定义微服务的访问控制

💡 原文英文,约2200词,阅读约需8分钟。
📝

内容提要

Uber开发了基于属性的访问控制(ABAC)系统Charter,以应对复杂的授权需求。该系统通过动态评估属性和条件,提高了授权决策的精确性和灵活性,支持数千个资源的管理,简化了政策管理并提升了性能。

🎯

关键要点

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

继续阅读