测验:密钥管理
确认文件是加密 Vault 文件的最可靠方法是什么?
- 比较文件大小是否明显大于原文件
- 使用
ls -l确认文件权限是否锁定为 600 - 检查第一行是否为以
$ANSIBLE_VAULT;开头的标头 - 确认文件名是否以
.vault扩展名结尾
为什么通常更倾向于使用 encrypt_string 而不是加密整个文件?
- 因为按值加密使用的算法比整文件加密更强
- 因为文件其余部分仍是明文,代码审查时可以阅读 diff
- 因为运行时无需 Vault 密码也能自动解密
- 因为只单独保存加密值后,就可以把 Vault 密码一起放进仓库
如果处理 Secret 的任务没有设置 no_log: true,会怎样?
- 处理 Secret 的任务会忽略 notify,导致处理程序无法触发
- 解密后的值会以明文留在执行日志中,使加密失去意义
- 接收 Vault 值作为参数的模块会拒绝执行并使任务失败
- Vault 文件会以解密状态保存在磁盘上
发现 Secret 已经以明文提交。正确的应对顺序是什么?
- 将仓库改为私有 → 重写历史
- 只 revert 相关提交 → 重新部署
- 重写历史 → 废止凭据 → 发出通知
- 废止(使其失效)→ 调查影响 → 清理历史
执行 ansible-vault rekey 后,使用旧密码打开该文件会怎样?
- 只能读取
- 显示警告后仍能打开
- 仍然可以打开
- 无法打开
像 --vault-id prod@파일 这样使用标签,有什么实际理由?
- 把标签混入密钥,使加密强度提升一个等级
- 按标签拆分缓存,提高解密速度
- 区分生产和开发密钥,减少使用错误密钥打开文件的事故
- 允许把密码文件一起放进仓库