【问题标题】:Does ansible transfer files securely?ansible 是否安全地传输文件?
【发布时间】:2017-09-21 05:55:59
【问题描述】:

我正在使用 Ansible 2.2 从我的笔记本电脑管理一些云服务器。我想将 OpenSSL 私钥传输到其中一台服务器上的特定位置,以供 nginx 用于 TLS 终止。当然,这是一个应该保密的文件,所以我使用Ansible Vault 对其进行了加密。但是 Vault 只保护控制机上的磁盘文件。将数据从控制机传输到受管节点时,它不会发挥作用。

我想确保私钥在传输过程中不会被监控网络流量的人泄露。在docs for the copy module 中没有具体提及我正在寻找的内容。据我所知,我与托管节点的所有通信都是通过 SSH 完成的。这是一个安全的假设吗?是否包括文件传输?

【问题讨论】:

  • Rene 的回答是正确的。为了进一步保证,您可以使用 -vvvv 运行您的剧本,以查看通过 ssh 连接的所有流量,这将使您放心,它是通过安全通道发送到您的节点的,例如ansible-playbook -vvvv myplaybook.yml

标签: encryption ansible file-transfer ansible-vault


【解决方案1】:

你是对的,与被管节点的所有通信都是通过 ssh 安全地完成的。您的保管库在控制器上被解密,明文私钥通过安全的 ssh 连接发送并丢弃在您的目标节点上。

明文私钥在您的目标节点上可能变得不安全,具体取决于谁可以登录、所有权、组成员资格、访问权限等。安全配置由您决定。

【讨论】:

【解决方案2】:

答案是取决于连接的类型。

有一个依赖于连接的 Ansible 复制插件。该插件的源代码在这里:

https://github.com/ansible/ansible/blob/bc66faa328b1413646ec249cd2753de5e09f1a35/lib/ansible/plugins/action/copy.py

这会将副本推迟到 ActionBase._transfer_file,然后再推迟到 Connection.put_file

有许多不同的连接实现方式,其中一些是安全的,而另一些则不是。如果您使用的是 SSH 连接,那么它会使用 scp 或 sftp 进行实际复制,并且是安全的。

这可以在此处的 ssh 源中看到:

https://github.com/ansible/ansible/blob/442af3744ebd60c7ffcaae22b61fb762ccc7c425/lib/ansible/plugins/connection/ssh.py#L954

put_file 委托给_file_transport_command,然后可以使用 scp、sftp、“智能”或管道。 Smart 会检测其他三个中的哪一个最适合使用。

注意:有一个 Ansible 复制模块,它只在本地复制文件,不需要安全复制。这就是我之前的回答错误指向的内容,所以我删除了它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-29
    • 1970-01-01
    • 2013-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多