diff --git "a/\345\256\271\345\231\250\344\270\216\345\256\271\345\231\250\347\274\226\346\216\222/Kubernetes/\351\205\215\347\275\256\347\256\241\347\220\206/HashicorpVault/.assets/Vault\347\256\200\344\273\213/1.png" "b/\345\256\271\345\231\250\344\270\216\345\256\271\345\231\250\347\274\226\346\216\222/Kubernetes/\351\205\215\347\275\256\347\256\241\347\220\206/HashicorpVault/.assets/Vault\347\256\200\344\273\213/1.png" new file mode 100644 index 00000000..1c8bd05b Binary files /dev/null and "b/\345\256\271\345\231\250\344\270\216\345\256\271\345\231\250\347\274\226\346\216\222/Kubernetes/\351\205\215\347\275\256\347\256\241\347\220\206/HashicorpVault/.assets/Vault\347\256\200\344\273\213/1.png" differ diff --git "a/\345\256\271\345\231\250\344\270\216\345\256\271\345\231\250\347\274\226\346\216\222/Kubernetes/\351\205\215\347\275\256\347\256\241\347\220\206/HashicorpVault/.assets/Vault\347\256\200\344\273\213/2-20240820153737525.png" "b/\345\256\271\345\231\250\344\270\216\345\256\271\345\231\250\347\274\226\346\216\222/Kubernetes/\351\205\215\347\275\256\347\256\241\347\220\206/HashicorpVault/.assets/Vault\347\256\200\344\273\213/2-20240820153737525.png" new file mode 100644 index 00000000..b3a53027 Binary files /dev/null and "b/\345\256\271\345\231\250\344\270\216\345\256\271\345\231\250\347\274\226\346\216\222/Kubernetes/\351\205\215\347\275\256\347\256\241\347\220\206/HashicorpVault/.assets/Vault\347\256\200\344\273\213/2-20240820153737525.png" differ diff --git "a/\345\256\271\345\231\250\344\270\216\345\256\271\345\231\250\347\274\226\346\216\222/Kubernetes/\351\205\215\347\275\256\347\256\241\347\220\206/HashicorpVault/Vault\347\256\200\344\273\213.md" "b/\345\256\271\345\231\250\344\270\216\345\256\271\345\231\250\347\274\226\346\216\222/Kubernetes/\351\205\215\347\275\256\347\256\241\347\220\206/HashicorpVault/Vault\347\256\200\344\273\213.md" index b30bb2a1..03dbee55 100644 --- "a/\345\256\271\345\231\250\344\270\216\345\256\271\345\231\250\347\274\226\346\216\222/Kubernetes/\351\205\215\347\275\256\347\256\241\347\220\206/HashicorpVault/Vault\347\256\200\344\273\213.md" +++ "b/\345\256\271\345\231\250\344\270\216\345\256\271\345\231\250\347\274\226\346\216\222/Kubernetes/\351\205\215\347\275\256\347\256\241\347\220\206/HashicorpVault/Vault\347\256\200\344\273\213.md" @@ -1 +1,39 @@ -Vault 是 hashicorp 推出的 secrets 管理、加密即服务与权限管理工具 \ No newline at end of file +## 什么是 Vault + +Vault 是 hashicorp 推出的 secrets 管理、加密即服务与权限管理工具 + +Vault 是一个基于身份的秘密和加密管理系统。秘密是您想要严格控制访问的任何内容,例如 API 加密密钥、密码和证书。 Vault 提供由身份验证和授权方法控制的加密服务。使用 Vault 的 UI、CLI 或 HTTP API,可以安全地存储和管理、严格控制(限制)和审核对机密和其他敏感数据的访问 + +## 为什么需要 Vault + +- 执行密码轮换策略很痛苦 +- 掌握机密的员工离职后可能泄密或是恶意报复 +- 开发者不小心把机密信息随着代码上传到公网的源码仓库造成泄密 +- 管理多个系统的机密非常麻烦 +- 需要将机密信息安全地加密后存储,但又不想将密钥暴露给应用程序,以防止应用程序被入侵后连带密钥一起泄漏 + +## Vault 架构图 + +Vault 只暴漏了存储后端(Storage Backend) 和 API,其他部分都被保护起来了。Vault 并不信任后端存储,存放的都是密文 + +![img](./.assets/Vault简介/1.png) + +## 加密 + +![img](./.assets/Vault简介/2-20240820153737525.png) + +- Vault 保存在 Backend 中的数据都是加密的 +- Vault 密钥称为 Master Key 主密钥,Vault 默认使用 Shamir 算法,把主密钥切分成 M 份,管理员必须至少提供其中的 N 份才能还原出主密钥(这里的 M 和 N 都是可配置的,M>=N)理想状态下,我们必须把这 M 份密钥分配给公司内 M 个不同的人,只有在获取其中 N 个人的授权后,Vault 才可以成功解密主密钥。 + + + +## 参考文档 + +- + +- + +- + +- +- \ No newline at end of file diff --git "a/\350\256\241\347\256\227\346\234\272\345\237\272\347\241\200\347\220\206\350\256\272/\345\257\206\347\240\201\345\255\246\344\270\216\345\256\211\345\205\250\346\212\200\346\234\257/\345\257\206\347\240\201\345\255\246.md" "b/\350\256\241\347\256\227\346\234\272\345\237\272\347\241\200\347\220\206\350\256\272/\345\257\206\347\240\201\345\255\246\344\270\216\345\256\211\345\205\250\346\212\200\346\234\257/\345\257\206\347\240\201\345\255\246.md" new file mode 100644 index 00000000..6f6cdaef --- /dev/null +++ "b/\350\256\241\347\256\227\346\234\272\345\237\272\347\241\200\347\220\206\350\256\272/\345\257\206\347\240\201\345\255\246\344\270\216\345\256\211\345\205\250\346\212\200\346\234\257/\345\257\206\347\240\201\345\255\246.md" @@ -0,0 +1,3 @@ +参考资料 + +- \ No newline at end of file diff --git "a/\350\277\220\347\273\264\347\240\224\345\217\221/CMDB/CMDB.md" "b/\350\277\220\347\273\264\347\240\224\345\217\221/CMDB/CMDB.md" index 963417a4..79593bcf 100644 --- "a/\350\277\220\347\273\264\347\240\224\345\217\221/CMDB/CMDB.md" +++ "b/\350\277\220\347\273\264\347\240\224\345\217\221/CMDB/CMDB.md" @@ -16,7 +16,48 @@ CMDB 提供手动录入功能并可批量录入,将资源信息进行标准化 - 拉通监控、流程、智能分析平台数据,实现运维数据一体化消费场景,提高运维效率。 -可参考项目: +## 基础概念 + +CMDB(Configuration Management Database)是一种用于管理和维护信息技术(IT)基础设施配置项(CI,Configuration Item)的数据库。CMDB 旨在追踪和记录与 IT 环境相关的配置项及其关系,为 IT 管理、配置管理和服务管理提供支持 + +- 模型 + +模型是对某种实体或概念的抽象,它描述了实体的结构、属性和关系。在配置管理中,模型可以是一个高级别的概念,用于定义配置项的通用特征和属性。 + +- CI 类型 + +配置项可以根据其性质和用途分为不同的类型,如硬件配置项(服务器、路由器)、软件配置项(应用程序、操作系统)、文档配置项等。每个 CI 类型可能具有特定的属性和关系。 + +- 配置项(CI) + +配置项是 CMDB 中的基本单位,表示 IT 环境中的任何可管理的元素,如硬件、软件、文档、网络设备等。每个配置项都有唯一的标识符,并且可以包含与其相关的属性和关系。 + +如所有的物理机都属于同一类型,但每个物理机实例都是一个具体的 CI。CI Type 的定义可能包括一组通用属性,而具体的 CI 则包含每个实例的具体属性。 + +- 关系 + +关系描述了配置项之间的连接或依赖关系。 + +如服务器与数据库之间可以有一个安装关系,表示它们之间的依赖关系。关系有助于了解 IT 环境中不同配置项之间的交互和影响。 + +- 自动发现 + +自动发现是指使用工具和技术来自动收集和更新配置项信息,而无需手动输入。自动发现可以帮助确保 CMDB 中的信息始终保持最新和准确。 + +- ITIL + +CMDB 是 ITIL(IT Infrastructure Library) 框架中的一个关键组件,提供了支持 IT 服务管理(ITSM)和配置管理的工具和流程。 + +## 设计 + +要实现一个尽可能通用、灵活、可扩展的运维资源数据的配置和管理系统,系统必须要满足: + +- 运维人员能根据企业的运维场景和需求,自己去构建存储的数据模型,以及模型之间的关系 +- 提供丰富的 API,尤其是在数据和关系检索要做到通用,便于二次开发 +- 用户可以方便的订阅自己关心的数据,有丰富的图表展示 +- 数据的自动发现和细粒度的权限控制 + +## 可参考项目 - NetBox @@ -41,3 +82,11 @@ CMDB 提供手动录入功能并可批量录入,将资源信息进行标准化 WeCMDB(Configuration Management Database 配置管理数据库),是源自微众银行运维管理实践的的一套配置管理数据库系统。CMDB,作为运维工具的核心,提供了全体系IT信息唯一数据源,是IT运维自动化、智能化的基础和前提条件。依赖可靠的CMDB,IT信息从物理层(数据中心、机架机位、服务器、网络信息等), 到逻辑层(IP、系统架构信息),到应用层(业务应用系统信息)被完整的记录并管理起来。 + +- 维易 CMDB + + + +## 其他 + +Nacos 实现异地 CMDB: diff --git "a/\350\277\220\347\273\264\347\240\224\345\217\221/CMDB/CMDB\345\273\272\350\256\276/\350\207\252\345\212\250\345\217\221\347\216\260.md" "b/\350\277\220\347\273\264\347\240\224\345\217\221/CMDB/CMDB\345\273\272\350\256\276/\350\207\252\345\212\250\345\217\221\347\216\260.md" new file mode 100644 index 00000000..58beab57 --- /dev/null +++ "b/\350\277\220\347\273\264\347\240\224\345\217\221/CMDB/CMDB\345\273\272\350\256\276/\350\207\252\345\212\250\345\217\221\347\216\260.md" @@ -0,0 +1,23 @@ +## 维护 CMDB 数据 + +维护 CMDB 数据的常用方法无外乎 3 种: + +- 自动发现 + +这是最常用的采集数据的方法,比如服务器、网络设备、应用、软件等数据都可以通过自动发现的方式录入到CMDB里,以保证数据的准备性和及时性。 + +- 流程 + +流程是为了规范运维的操作与变更,对每个运维资源的生命周期进行管理,所以ITSM本身和CMDB是息息相关,ITSM的流程输出很多都会直接反馈到CMDB里,以保证数据的准确。 + +- 人工 + +一些数据比如负责人、位置信息需要人工去完善,也可以通过计算属性的方式自动填充。当然为避免人工遗漏或出错,要尽可能使用前面2种方法。 + +## 自动发现 + +自动发现的建设一般分为 3 步: 创建自动发现规则、模型关联自动发现规则、执行自动发现 + +## 参考资料 + +- \ No newline at end of file diff --git "a/\350\277\220\347\273\264\347\240\224\345\217\221/CMDB/\347\273\264\346\230\223OneOps/\347\273\264\346\230\223OneOps.md" "b/\350\277\220\347\273\264\347\240\224\345\217\221/CMDB/\347\273\264\346\230\223OneOps/\347\273\264\346\230\223OneOps.md" new file mode 100644 index 00000000..46fe51ec --- /dev/null +++ "b/\350\277\220\347\273\264\347\240\224\345\217\221/CMDB/\347\273\264\346\230\223OneOps/\347\273\264\346\230\223OneOps.md" @@ -0,0 +1,7 @@ +## 部署 + +安装参考: + +## 使用 + +模板市场: \ No newline at end of file