etcd 实战课
唐聪
腾讯云资深工程师,etcd 活跃贡献者
28449 人已学习
新⼈⾸单¥59
登录后,你可以任选3讲全文学习
课程目录
已完结/共 28 讲
开篇词 (1讲)
etcd 实战课
15
15
1.0x
00:00/00:00
登录|注册

05 | 鉴权:如何保护你的数据安全?

安全性更高
无状态
可描述性弱
有状态
JWT Token
Simple Token
增加密码hash值计算过程中的开销
加盐(salt)参数
不可逆的加密算法
Permission
Role
User
提升密码认证性能
保障密码安全性
授权
认证
鉴权存储(AuthStore)模块
Apply模块
Raft模块
AuthServer
鉴权API
客户端工具etcdctl
解决方法
问题
一致性
扩展性
性能
安全
RBAC
证书认证
密码认证
数据面
控制面
思考题
小结
授权
认证
整体架构
鉴权模块

该思维导图由 AI 生成,仅供参考

你好,我是唐聪。
不知道你有没有过这样的困惑,当你使用 etcd 存储业务敏感数据、多租户共享使用同 etcd 集群的时候,应该如何防止匿名用户访问你的 etcd 数据呢?多租户场景又如何最小化用户权限分配,防止越权访问的?
etcd 鉴权模块就是为了解决以上痛点而生。
那么 etcd 是如何实现多种鉴权机制和细粒度的权限控制的?在实现鉴权模块的过程中最核心的挑战是什么?又该如何确保鉴权的安全性以及提升鉴权性能呢?
今天这节课,我将为你介绍 etcd 的鉴权模块,深入剖析 etcd 如何解决上面的这些痛点和挑战。希望通过这节课,帮助你掌握 etcd 鉴权模块的设计、实现精要,了解各种鉴权方案的优缺点。你能在实际应用中,根据自己的业务场景、安全诉求,选择合适的方案保护你的 etcd 数据安全。同时,你也可以参考其设计、实现思想应用到自己业务的鉴权系统上。

整体架构

在详细介绍 etcd 的认证、鉴权实现细节之前,我先给你从整体上介绍下 etcd 鉴权体系。
etcd 鉴权体系架构由控制面和数据面组成。
上图是是 etcd 鉴权体系控制面,你可以通过客户端工具 etcdctl 和鉴权 API 动态调整认证、鉴权规则,AuthServer 收到请求后,为了确保各节点间鉴权元数据一致性,会通过 Raft 模块进行数据同步。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入剖析了etcd鉴权模块的设计和实现,重点关注了其安全性、性能和一致性。在安全性方面,etcd通过密码安全加密存储、证书认证和RBAC机制来保证安全性;在性能方面,etcd通过Token降低密码验证开销,支持证书认证,并具备良好的扩展性和灵活性;在一致性方面,etcd通过Raft模块同步鉴权指令日志指令,确保鉴权数据一致性。总之,本文为读者提供了深入了解etcd鉴权体系的机会,让读者能够快速了解etcd鉴权模块的核心原理和关键特点。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《etcd 实战课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(22)

  • 最新
  • 精选
  • jeffery
    每章都干货👍多租户模式下怎么设置鉴权、etcd不知道后期会不会支持多数据中心!相比Nacos、怎么选型!谢谢老师

    作者回复: 感谢jeffery同学的高度认可,如果有收获可以分享给更多人,谢谢你的支持。多租户模式下,如果使用密码鉴权,你可以直接调用API给不同租户添加账号、密码,每个租户分配一个唯一的路径,然后按路径前缀分配权限。如果使用的证书鉴权,你可以为每个用户生成证书,证书的CN字段为用户的名称即可,建议使用证书鉴权。同时重要业务不建议多租户模式哈,多租户场景不同租户可能会相互影响,导致各种稳定性问题,除非各个租户的行为是可控的,可信赖的。etcd选型、多数据中心这些后面实践篇将为你分析。

    2021-01-31
    7
  • 云原生工程师
    密码鉴权简单易用,但是潜在隐患多,证书可能略麻烦,特别是多租户场景,每个用户证书都不一样,需要独立生成,总的而言,还是不能为一时方便偷懒选用密码

    作者回复: 是的

    2021-01-29
    6
  • 于途
    1)撞库:黑客通过收集互联网已泄露的用户和密码信息,生成对应的字典表,尝试批量登陆其他网站后,得到一系列可以登录的用户。说的简单一点,就是一个小偷,入室盗窃后偷到了一串钥匙,然后他拿着这串钥匙,在整个小区里面挨家挨户的进行开锁。这个过程就是撞库。 2)漏水:某些企业自身出现风险导致的数据泄露。 3)拖库:指网站遭到黑客入侵后,数据库被窃取(黑客将数据库导出至本地)。 4)洗库:指黑客入侵网站后,通过技术手段将有价值的用户数据归纳分析,售卖变现的过程。简单而言,洗库就是黑客拖库后进一步牟利的手段。

    作者回复: 赞

    2021-02-03
    5
  • 吴展
    使用证书认证就不需要token了?

    作者回复: 是的。

    2021-09-21
    1
  • 小丢👣
    证书认证也有过期时间,有企业k8s应用中,一个证书(可能是超级证书)可能被很多调用方共享使用,为了减少证书变更带来下游调用方同步变更成本,通常会把证书过期时间设成10年甚至更久。不知道这样的设置是否合理?(以上场景是个人理解,不确保是否和我描述的一样)

    作者回复: 嗯,一般都5到20年,过短导致证书过期影响生产环境可用性,过长要注意证书安全性,不要泄露到github,并且有吊销机制,比如etcd中取证书的cn作为user name,如果证书泄露了,可以删除etcd中对应user权限

    2021-08-22
    1
  • 石小
    老师过年好,使用jwt token如果server不保存用户名,client 发来的用户名和签名若经过篡改的,服务器怎么知道呢?

    作者回复: 新年好,token是server使用RSA等签名算法对包含用户名、版本号等payload加密后的结果,server收到后会校验token有效性,因此只要你RSA等签名算法私钥不泄露,安全性就是有保障的。

    2021-02-18
    1
  • kaizen
    老师,这里给范围 key 加权限用的[],我看官方文档给的 [ ),是两种都适用吗 The range can be specified as an interval [start-key, end-key) where start-key should be lexically less than end-key in an alphabetical manner.

    作者回复: 嗯,细心,是),感谢反馈,已修正

    2021-02-06
  • Simon
    老师, 上一节的思考题答案还没有更新吗?

    作者回复: 好的,明天更新到05

    2021-02-01
  • 唐聪
    本讲是一个微型鉴权系统设计与实现分析,曾遇到好几次业务使用密码鉴权出现问题的,原因就在于大家对密码鉴权、适用场景,了解太少导致线上出问题,希望通过本讲帮助大家搞清楚etcd鉴权的一切
    2021-01-29
    17
  • types
    认证流程在Raft之前,鉴权流程在Raft之后,请问是什么考虑? 鉴权失败后,Raft中的日志条目是否要特殊处理?
    2021-09-01
    1
    3
收起评论
显示
设置
留言
22
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部