← 中文资源

简体中文版本

用 Ansible Vault 加密密钥变量

用 ansible-vault 加密变量文件、从安全来源提供 vault 口令,并组织结构使密钥不落入明文清单。

阅读英文原文

概述

把口令明文提交进 group_vars,等于向任何能访问仓库的人交出全部凭据。Vault 加密让仓库中只留密文,口令则从密钥管理或运行时注入,从而把静态暴露面降到最低。

关键步骤

  1. 加密密钥变量文件,只提交密文。
  2. 在运行时从密钥管理或环境提供 vault 口令。
  3. 把密钥与非密钥变量分文件保存以便审查。
  4. 需要多口令时使用 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")