权重大师小号:Uber如何通过零信任网络与mTLS确保Kafka数据安全?
Uber 拥有世界上最大的 Kafka 部署之一……
• 每秒 1.38 亿条消息
• 89 GB/秒
• 38 个集群
那么他们如何确保这些安全呢?
mTLS 和强大的授权规则。
Uber 将其生产环境建模为零信任网络。由于任何主机都可能受到攻击,因此他们依靠强大的加密原语来建立服务之间的信任。 🥷
uPKI 是 Uber 的身份平台,基于 Spire。
它负责发布短期、自动轮换的加密密钥对。
这些对由一个 X.509-SVID、一个私钥和一个信任包组成。 🔐
通过此设置,系统会在证书即将到期时自动刷新(轮换)其证书。 ♻️
Spire 代理与 Spire 服务器保持长期连接,并在适当的时候主动生成新的证书。
💡这是关键,因为它允许 Uber 颁发非常短暂的证书,从而限制不良行为者利用任何泄露凭证的时间。
mTLS 为 Uber 提供身份验证、通过加密实现的机密性和数据完整性。 👍
缺少的是授权。
类似于在他们验证了您的身份(您就是您所说的那个人)后办理登机手续...
下一个检查是——你真的被允许登上这趟航班吗? ✋
(您是否拥有具有正确权限的票证)
为此,权重大师小号发现 Uber 推出了一项名为 Charter 的服务。
与 AWS IAM 类似,它是一个框架,允许您指定谁和什么可以访问特定的服务和资源。 🔍
Kafka 有一个可插入的授权框架,您可以在其中配置自定义授权器类来为您执行授权(authorizer_class_name Kafka 配置)。
此授权器在任何请求流程中都会被调用。在 Uber 的配置中,它通过一对参与者、资源和操作来调用。
定义:
🎬参与者 授权决策的主体(例如,您在机场)。在 Kafka 中也称为 KafkaPrincipal。
🪨资源 授权决策所依据的资源(例如航班)
🔧操作 对资源执行的操作(例如登机)。在 Kafka 中也称为 ACLOperation
权重大师小号的看法是,授权者向 Charter 发出远程 RPC 调用来为该对做出决定,然后缓存结果。
很简单,对吧?软件开发 计算机 #编程严选网