HashiCorp Vault概述
HashiCorp Vault是一项管理密钥,保护敏感数据的网络安全技术。
为人与计算机双方提供了一个单一的密钥来源。
为密钥的整个生命周期提供了一个管理功能,包括:
- 防止密钥传播
- 安全存储密钥
- 提供获取密钥的管理方法
Vault 生成Token

Vault Token的使用

HashCorp Vault的优点
- 可以存储长期的、静态密钥。这种方式不建议,永久的密钥是不安全的
- 根据需求动态生成密钥。
- 提供许多特色API
- 支持基于身份的,跨云平台或系统的访问
- 提供加密服务。所有在传播途中的数据都应该被加密
- 充当根证书或中间证书颁发机构
Vault组件
存储后端(Storage Backends)
- 配置Vault数据的存储位置
- 使用时所需的参数在Vault主配置文件中定义存储
- 所有数据在传输(TLS, Transport Layer Security)和静止时使用AES256进行加密
- 有的存储后端支持HA(High Availablity),有的不支持
- 不同的存储后端根据你所使用的后台有不同的工具,如管理或数据保护等工具
- 每个Vault集群只有一个存储后端
密钥引擎(Secrets Engines)
- 密钥引擎负责为你的组织管理密钥
- 密钥引擎能够用来存储、生成、加密数据
- 许多密钥引擎可以连接其他服务,根据需求生成动态凭证
- 许多密钥引擎可以被启用和使用,甚至是多个相同类型的密钥引擎
- 密钥引擎是在“路径”上进行隔离和启用的,所有的交互都是直接与“路径”本身进行的
认证方法(Authentication Methods)
- 认证方法执行身份验证和管理身份的 Vault 组件
- 负责为用户分配身份和策略
- 可以根据你的用例启用多种身份验证方法,认证方法可分为人类识别和系统识别两种
- 一旦通过身份验证,Vault将发出一个客户端token,用于发出所有后续Vault请求(读/写)
- 所有身份验证方法的基本目标是获取token
- 每个令牌都有一个或多个关联策略和一个TTL(Time-To-Live)
- 新 Vault 部署的默认身份验证方法是token
审计设备(Audit Devices)
- 保留对 Vault 的所有请求和响应的详细日志
- JSON格式的审计日志audit log(审计日志),通常包含访问资源、目标地址、源地址、时间戳、用户登录信息等信息
- 日志记录前对敏感数据哈希处理
- 可以(并且应该)启用超过1个的审计设备
- 在完成 Vault 请求之前,如果启用设备,则Vault 需要至少一个审核设备来写日志
- 安全比可用性的优先级高
Vault路径
- 在Vault中所有组件是基于路径的(path-based)
- 路径前缀负责告诉Vault一个请求应该指向哪一个组件
- 密钥引擎、认证方法、音频设备都被挂载(mounted)在规定路径上,通常被称为’mount’
- 可用的路径是由Vault中启用的功能决定的。
- 系统后端是Vault中的一个默认后端,挂载在/sys端点上
- Vault组件可以在任意路径下启用,使用’-path’。每个组件都有默认路径
- Vault有一些系统保留路径是不能使用或删除的:
Vault工作原理

主密钥(Master Key):用来给主密钥解密
- 在Vault初始化或重键操作期间创建
- 使用传统解封(Unseal)机制时从不写入存储
- 使用自动解封(Auto Unseal)时写入core/master(存储后端)
加密密钥(Encryption Key):用来为写入存储后端的数据加/解密
- 加密密钥是由主密钥加密的
- 与数据一起存储在存储后端的密钥环中
- 易于手动操作