密码存储
维易CMDB中数据类型支持密码,密码属性可以确保用户的敏感信息(如密码)在存储和传输过程中得到保护,防止未经授权的访问者获取和篡改用户的密码信息。加密处理可以提高系统的安全性,降低密码泄露的风险,保护用户的隐私数据不被恶意攻击者窃取。这有助于确保系统和用户数据的机密性和完整性,增强系统的安全性和可信度。
平台支持两种存储形式,一种内置存储加密(inner),另一种是支持对接其他密码管理系统,目前是支持vault。


内置存储
目前配置中默认是内置存储方法,即配置中SECRETS_ENGINE="inner"
。在准备使用内置方法时,需要先手动初始化内置的存储系统。
1. 初始化
在服务启动之前,需要先使用初始化命令生成各种密钥。
flask cmdb-inner-secrets-init

初始化成功之后终端会输出五个解封密钥(unseal key)和一个根密钥(root token),需要手动将这些密钥保存下来放在安全的地方,以便后面安全地使用, 否则会导致后续无法解封秘钥,从而使密码功能不可用。
最简单的做法是在api容器里的配置文件settings.py 的配置项INNER_TRIGGER_TOKEN 填上root token 然后重启api服务即可。
2. 解封(可选)
解封就是激活系统的密码服务功 能,默认情况下,服务每次重启都需要执行解封的操作,解封操作使用初始化时生成的任意三个解封秘钥进行解封。
flask cmdb-inner-secrets-unseal -a http://127.0.0.1:5000

如果对于每次启动都需要解封比较麻烦,系统也支持自动解封的功能,即在配置中将root token放在配置文件中,这样即可实现自动解封的功能,不过这样会牺牲一部分安全性。当然也可以将其值配置成某个api地址,系统自动调用api实现自动解封。
INNER_TRIGGER_TOKEN = ""
3. 封印(可选)
这个功能是可选的,即可以选择暂时关闭密码服务,关闭服务之后将不能进行密码的读取和写入功能,也可以通过API进行封印。
flask cmdb-inner-secrets-seal -a http://127.0.0.1:5000

vault
vault 是一个被广泛认可的开源密码管理系统,如果您正在使用或者希望使用它来作为密码存储的后端,在当前版本中也给予了支持。
采用的是vault的transit加密引擎以及后端kv密码引擎,使用时只需要在vault中创建一个名称为CMDB的kv密码引擎,配置文件中指定以下信息即可。
SECRETS_ENGINE = 'vault'
VAULT_URL = ''
VAULT_TOKEN = ''