Vault插件与Backstage集成异常:404错误且未按配置调用KV V2
问题:Backstage集成Hashicorp Vault遇到404错误(配置KV V2但系统调用V1)
问题描述
按照Hashicorp Vault与Backstage集成文档操作,目前遇到404错误,且系统实际调用的是KV V1版本接口,但我已经在配置中指定了KV V2版本。请帮忙排查问题或确认是否为Bug。
配置注解
annotations: backstage.io/linguist: 'https://github.com/backstage/backstage/tree/master/plugins/playlist' vault.io/secrets-path: sc/prod/mso-team/jenkins/ vault.io/secrets-engine: secrets
Vault配置
vault: baseUrl: https://vault.team.com token: hvs.xxxxx secretEngine: 'secrets' # Optional. Default: 'secrets' kvVersion: '2' # Optional. The available options are '1' or '2'
错误日志
[1] 2023-12-11T23:35:29.462Z backstage info ::1 - - [11/Dec/2023:23:35:29 +0000] "GET /api/vault/v1/secrets/sc%2Fprod%2Fmso-teams%2Fjenkins%2F?engine=secrets HTTP/1.1" 404 - "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" type=incomingRequest
排查建议
- 路径拼写不一致:错误日志中的请求路径是
sc%2Fprod%2Fmso-teams%2Fjenkins%2F,但配置注解里的vault.io/secrets-path是sc/prod/mso-team/jenkins/(注意mso-team和mso-teams的差异),路径不匹配会直接导致404,先修正路径拼写。 - KV V2路径格式问题:KV V2版本的Vault API需要在路径中包含
/data/前缀(例如v1/secrets/data/sc/prod/mso-team/jenkins),但错误日志里的请求没有这个前缀,说明插件可能未正确识别kvVersion: '2'的配置。可以检查配置文件是否被正确加载,或者插件是否存在版本兼容问题。 - 验证Vault引擎配置:确认Vault端的
secrets引擎确实是KV V2版本,且目标路径sc/prod/mso-team/jenkins下存在有效secret。 - 检查插件配置键名:确认
kvVersion的键名是否符合插件要求,部分版本可能要求使用kv_version下划线格式,可尝试修改配置后重启Backstage验证。
内容的提问来源于stack exchange,提问作者AhmFM
相关产品推荐
相关产品推荐

