概述
把口令明文提交进 group_vars,等于向任何能访问仓库的人交出全部凭据。Vault 加密让仓库中只留密文,口令则从密钥管理或运行时注入,从而把静态暴露面降到最低。
关键步骤
- 加密密钥变量文件,只提交密文。
- 在运行时从密钥管理或环境提供 vault 口令。
- 把密钥与非密钥变量分文件保存以便审查。
- 需要多口令时使用 vault id。
验证
- 仓库中读不到明文密钥。
- 运行时口令来自安全来源。
- 敏感任务设置 no_log 不打印取值。
- 不同环境使用不同密钥。
注意事项
- Vault 加密保护静态文件,但不能保护运行期间解密后的取值或日志。
- 轮换 vault 口令需重新加密文件,属手工且易错的步骤。
适用范围
本条目围绕「用 Ansible Vault 加密密钥变量」给出可复制的步骤、验证方式与常见问题,适合需要按此流程落地的工程团队。执行时请结合自身上下文调整命令与阈值,并在变更前后留存证据,便于后续复核与回滚。
ansible-vault encrypt group_vars/prod/secrets.yml
ansible-playbook site.yml \
--vault-password-file <(echo "$VAULT_PASS")