CMDB建设及复盘
2020-03-16 本文已影响0人
hugoren
什么是CMDB?如何建设? 如何动态维护? 如何安全审计?
- cmdb中文意思就是配置管理数据库
- 以应用为视角建设cmdb。
主要服务对象是什么?答案也许有资产管理,资源管理,应用管理, 用户基础数据管理......。我建设的cmdb经验来看,作用只有一个,就是服务于应用。为什么这么说?互联网的核心是应用,应用是能直接回报价值的。我们所做的一切,都是为了价值。 - 以发现注册机制,动态维护cmdb。
以应用为视角建设cmdb
image.pngCMDB数据建模
- 这里既有多对多的关系,也有多对一的关系,生成的表格既可以用orm(要注意关联关禾系在删除的影响,是否关联自动删除?), 也可以单表的形式生成,业务关系在应用程序体现,这也有一个弊端,要维护好数据的一致性,安全性。
动态维护数据
- 以前很多时候是用excel导入,以后再手工维护,这样的方式,工作量大且信息不够实时更新。
采用服务发现注册的方式
- zookeeper, consul, etcd等,这适于大服务器。
- 对于体量两三千台服务器,采用http接口注册的方式,往往事半功倍。
1.系统装机时,通过http接口写入信息
2.应用启动时,通过https接口更新信息
这里涉及到数据安全性校验,分两个层面来做,
(1) 数据库字段nn,uq 类型等强制性约束
(2)接口采用jwt校验,防篡改, 非空, 数据类型不匹配等校验....
安全审计
针对重点操作记录在案, 3W的原则
who 谁
when 何时
what 操作了什么
有了审计,还得有权限限制
- 采用类似linux的设计数字规则 4,2,1, 相对应的权限是读,写,执行,简单实用。
但数据库常用的操作有增,删,查,改,对应的数字是8, 4, 2, 1。 - 采用经典的RBAC,五张表,如一些特列需求,可直接用户绑定操作
用户权限数据建模
image.png复盘
1.数据安全性要出规范,不仅是操作流程,权限,备份...
2.程序在操作update,delete风险性操作,特别注意级联性操作的影响。
3.尽可能不要做物理删除,做逻辑性删除。
4.上面只是列出cmdb的核心,当然还有很多,如:
- 设备采购上架流程
- 状态流转流程
- 知识库
- 工单