服务器 Gind.cn

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

Ansible安全最佳实践

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