Ansible安全最佳做法
我将把Ansible引入我的数据中心,并且我正在寻找有关在哪里放置控制机器以及如何管理SSH密钥的最佳安全性最佳实践。 问题1:控制机 我们当然需要一台控制机。控制计算机上已保存了公共SSH密钥。如果攻击者有权访问控制计算机,则它可能有权访问整个数据中心(或由Ansible管理的服务器)。那么在数据中心或远程控制机器(例如我的笔记本电脑远程连接到数据中心)中配备专用的控制机器会更好吗? 如果最佳实践是使用笔记本电脑(当然可能会被盗,但是我可以将我的公钥安全地在线存储在云中或离线保存在便携式加密设备上),如果我需要使用某些Web界面像Ansible Tower,Semaphore,Rundeck或Foreman这样的Ansible是否需要在集中式计算机上安装到数据中心?如何保护它并避免它成为“单一攻击点”? 问题2:SSH密钥 假设我需要使用Ansible来完成一些需要由root执行的任务(例如安装软件包或类似的东西)。我认为最佳实践不是在受控服务器上使用root用户,而是为具有sudo权限的Ansible添加普通用户。但是,如果Ansible需要执行几乎所有任务,则需要通过sudo访问每个命令。那么,什么是最佳选择: 让Ansible使用root用户(其公共密钥保存在 ~/.ssh/authorized_keys 创建一个专用于具有sudo访问权限的Ansible的非特权用户 让Ansible用户通过sudo指定密码来运行每个命令(每个使用Ansible来控制服务器的sysadmin都必须知道这是唯一的) 让Ansible用户通过sudo运行每个命令,而无需指定任何密码 还有其他提示吗?