BitBucket:如何隐藏BitBucket仓库中存储的敏感信息
敏感值隐藏落地方案
针对manifest文件中存储Jenkins构建、部署凭证的场景,可按以下方案实现敏感值隐藏,避免明文提交到仓库导致泄露:
方案1:占位符+环境变量替换(最常用、最轻量)
- 先把manifest文件中的明文用户名、密码替换为标准化占位符,比如
{{JENKINS_ADMIN_USER}}、{{JENKINS_DEPLOY_TOKEN}},修改后的无敏感值的manifest文件可以正常提交到仓库 - 在Jenkins流水线的凭证管理中配置对应名称的敏感凭证,设置为仅构建任务可读取
- 构建阶段执行前置步骤,用变量替换工具把占位符替换为真实凭证值,生成最终生效的manifest文件,将生成的manifest加入
.gitignore避免误提交
示例替换命令:
# 用envsubst工具直接替换占位符,模板文件命名为manifest.template避免和生成文件冲突 export JENKINS_ADMIN_USER=${jenkins_user} export JENKINS_DEPLOY_TOKEN=${jenkins_pwd} envsubst < manifest.template > manifest.yaml
方案2:敏感文件加密(适用于必须把敏感配置和代码放在同仓库的场景)
- 本地安装
git-secret或git-crypt加密工具,先把包含明文敏感值的manifest文件加入.gitignore,避免普通提交被捕获 - 执行工具的加密命令将manifest文件加密,将加密后的文件、工具的公钥配置提交到仓库
- 仅持有对应私钥的Jenkins构建节点、运维人员可以执行解密命令拿到明文配置,无权限人员即使拿到加密文件也无法读取敏感内容
git-secret解密示例:
git secret reveal
方案3:对接敏感信息管理平台(适用于中大型项目)
如果项目有统一的敏感信息管理服务,直接将Jenkins凭证存在专用的敏感管理平台中,构建部署时由Jenkins直接从平台拉取凭证填充,不需要在代码仓库的任何文件中留存敏感值相关内容。
注意:绝对不要直接提交包含明文敏感信息的文件到公开/内部仓库,即使后续删除提交记录,也存在敏感信息被历史快照抓取泄露的风险
内容的提问来源于stack exchange,提问作者Prudhvi B
相关产品推荐
相关产品推荐

