HashiCorp Vault

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):用来为写入存储后端的数据加/解密

    • 加密密钥是由主密钥加密的
    • 与数据一起存储在存储后端的密钥环中
    • 易于手动操作
0%