Hashicorp Vault配置加固问题:VAULT_SKIP_VERIFY=true仍可无token访问
Hashicorp Vault 配置加固方案
1. 先修复配置文件语法错误
你提供的vault-config.json存在明显语法问题:tls_cert_file字段末尾缺少闭合双引号,导致配置无法正确加载,Vault会 fallback 到不安全的默认状态(比如自动生成临时证书、甚至跳过TLS校验)。修正后该字段应为:
"tls_cert_file": "/path/to/fullchain.pem",
2. 解决无需Token即可访问数据的问题
默认情况下,Vault初始化并unseal后,所有业务数据端点都需要有效Token才能访问。出现无权限访问的情况,排查以下几点:
- Vault未完成初始化:如果还没执行
vault operator init,此时所有操作无需认证,属于极度危险状态,立即执行初始化并妥善保管unseal密钥和root token。 - 存在宽松匿名Policy:检查是否有允许无认证访问的Policy:
若发现vault policy list vault policy read <可疑策略名>path "*" { capabilities = ["read", "list"] }这类规则,立即删除或修改。 - 环境变量默认Token:检查终端是否设置了
VAULT_TOKEN:
若有值,执行echo $VAULT_TOKENunset VAULT_TOKEN清空。 - 认证方法未启用:确认token认证是否正常启用:
若没有vault auth listtoken/条目,执行vault auth enable token启用。
3. 加固TLS,阻止VAULT_SKIP_VERIFY=true的不安全连接
VAULT_SKIP_VERIFY是客户端侧设置,但可以从服务端强制双向TLS校验,彻底阻断不安全连接:
- 在TCP listener配置中添加双向TLS字段:
只有携带指定CA签发的客户端证书的请求才能通过校验,即使客户端设置"tls_client_ca_file": "/path/to/ca-cert.pem", "tls_require_and_verify_client_cert": trueVAULT_SKIP_VERIFY也无效。 - 限制TLS版本与加密套件:
"tls_min_version": "tls13", "tls_max_version": "tls13", "tls_cipher_suites": "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256"
4. 其他加固措施
- 禁用不必要的UI:将
"ui": true改为"ui": false,或限制UI绑定的私有IP。 - 开启审计日志:添加审计配置记录所有请求:
"audit": { "file": { "path": "/var/log/vault/audit.log", "log_raw": true } } - 定期轮换密钥与Token:使用
vault operator rekey生成新的unseal密钥,用vault token create -role root生成新root token后作废旧token。
内容的提问来源于stack exchange,提问作者Yotamo
相关产品推荐
相关产品推荐

