使用gMSA实现HashiCorp Vault的MSSQL凭据轮换问题求助
如何在HashiCorp Vault的MSSQL数据库引擎配置中使用gMSA?
核心需求
- 通过HashiCorp Vault实现MSSQL数据库凭据轮换,组织仅支持Windows服务器,必须使用gMSA作为服务账户
遇到的问题
- 直接在MSSQL连接字符串中指定
user id=domain\gmsaUser时,执行配置命令返回400错误:error creating database object: error verifying connection: InitialBytes InitializeSecurityContext failed 8009030c - 将Vault服务登录账户改为gMSA后:
- 节点可加入Raft集群并转发请求,但无法成为Leader节点
- 执行
vault operator step-down无法触发Leader切换 - 关闭最后一个以Local System账户运行的节点后,集群完全无响应
- 开启trace级日志仅记录成功unseal、处于standby模式及加入集群的信息,无异常报错
环境信息
- 5节点Vault集群,版本v1.10.3,采用Raft集成存储
- 所有节点部署在Windows Server 2022上,由nssm托管服务
- 默认以Local System账户运行Vault服务
已执行操作
配置数据库密钥引擎的命令
vault write database/config/testdb \ connection_url='server=myserver\testdb;user id=domain\gmsaUser;database=mydb;app name=vault;' \ allowed_roles="my-role"
修改Vault服务登录账户为gMSA的步骤
- 为gMSA用户配置Vault相关目录权限:配置文件、证书目录授予读取权限,存储目录授予读写权限
- 停止Vault服务
- 执行
vault operator raft remove-peer instanceName将节点从集群移除 - 删除旧存储文件
- 执行
sc.exe --% config "vault" obj="domain\gmsaUser" type= own修改服务登录账户 - 启动服务并等待数据复制完成
疑问
现有MSSQL密钥引擎文档多要求创建独立账户,不符合组织使用gMSA的要求,请问如何在MSSQL配置中正确使用gMSA?
内容的提问来源于stack exchange,提问作者Max B
相关产品推荐
相关产品推荐

