审计设备

审计设备是 Vault 中保存所有对 Vault 的请求和响应的详细日志的组件。由于所有对 Vault 的操作都是通过 API 请求/响应,因此审计日志包含与 Vault 的每个经过身份验证的交互,包括错误。

可以启用多个审核设备,Vault 会将审计日志发送给所有这些设备。这使得我们不仅可以拥有冗余副本,还可以拥有第二个副本,以防第一个副本被篡改。

格式

每行审计日志都是一个 JSON 对象。type 字段指定了对象的类型。目前,只有两种类型存在:requestresponse。该行包含一次请求和响应的所有信息。所有敏感信息在被记录进审计日志之前首先被哈希。

敏感信息

审计日志包含每次与 Vault 交互的完整请求和响应对象。可以使用分配给每个请求的唯一标识符来匹配请求和响应。

请求和响应中包含的大多数字符串都使用 HMAC-SHA256 加盐进行散列。散列的目的是使机密在审计日志中不以明文形式存在。但是,您仍然可以通过自己生成 HMAC 来检查机密的值,这可以通过使用 /sys/audit-hash API 端点调用审计设备的哈希函数和盐来完成。

请注意,目前只有来自 JSON 或以 JSON 返回的字符串会被 HMAC 的。其他数据类型,如整数、布尔值等,以明文形式传递。

虽然大多数字符串都被散列,但 Vault 确实会有一些例外,例如身份验证方法和机密引擎,用户可以使用 secrets enable 命令启用其他例外,然后再对其进行调整。

启用 / 禁用审计设备

第一次初始化 Vault 服务时,不会启用任何审计设备。必须由 root 用户使用 vault audit enable 启用审计设备。

启用审计设备时,可以将选项传递给它以对其进行配置。例如,用下面的命令启用文件审计设备:

$ vault audit enable file file_path=/var/log/vault_audit.log

在上面的命令中,我们通过传递 “file_path” 参数来指定审计日志将写入的路径。每个审计设备都有自己的一组参数。

注意:审核设备配置默认复制到集群内的所有节点,并复制到 Vault 企业版集群的性能/灾难恢复辅助节点。在启用审计设备之前,请确保集群内的所有节点都能够成功登录到审计设备,以避免 Vault 节点无法处理请求。一个审计设备的数据可以被限制在具有 local 参数的集群节点内部。

当审计设备被禁用时,它将立即停止接收日志。它存储的现有日志不会受到影响。

阻塞的审计设备

如果启用了审计设备,Vault 在完成一个请求之前会要求至少一个审计设备成功地保存了日志。

如果只启用了一台审计设备,并且它处于阻塞状态(网络阻塞等),则 Vault 将无法响应请求。在审计设备变得可以写入之前,Vault 不会完成任何请求。

如果启用了多个审计设备,那么只要一台审计设备成功地保存了日志,Vault 就会完成请求。

如果所有审计设备被阻塞,Vault 将不会响应任何请求,因为审计日志非常重要,而忽略被阻塞的日志记录请求会打开攻击途径。使用者必须明白使用的审计设备不可被阻塞。

results matching ""

    No results matching ""