2017-09-20 6 views
5

내 노트북에서 일부 클라우드 서버를 관리하기 위해 Ansible 2.2를 사용하고 있습니다. OpenSSL 개인 키를 서버 중 하나의 특정 위치로 전송하여 TLS 종료를 위해 nginx에서 사용하려고합니다. 당연히이 파일은 비밀로 유지해야하므로 Ansible Vault을 사용하여 암호화했습니다. 그러나 Vault는 제어 시스템의 디스크에있는 파일 만 보호합니다. 제어 시스템에서 관리 노드로 데이터를 전송할 때 작동하지 않습니다.파일을 안전하게 전송할 수 있습니까?

네트워크 트래픽을 모니터링하는 누군가가 전송하는 동안 개인 키가 손상되지 않았는지 확인하고 싶습니다. docs for the copy module에서 볼 수있는 내용을 구체적으로 언급하지 않았습니다. 내가 아는 한, 관리 노드와의 모든 통신은 SSH를 통해 수행됩니다. 그게 안전한가요? 파일 전송을 포함합니까?

+2

르네의 답변이 맞습니다. 보안을 강화하려면 -vvvv로 게임 북을 실행하여 ssh 연결을 통해 진행되는 모든 트래픽을 확인하십시오. 보안 채널을 통해 노드로 전송되는 편안함을 얻을 수 있습니다. 'ansible-playbook -vvvv myplaybook.yml' –

답변

2

답변은 연결 유형에 따라 다릅니다.

연결을 허용하는 Anipal 복제 플러그인이 있습니다. 플러그인의 소스 코드는 여기에 있습니다 :

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

이는 Connection.put_file에 연기 ActionBase._transfer_file에 복사를 지연시킵니다.

여러 가지 구현이 있지만 그 중 일부는 안전하고 그렇지 않은 것도 있습니다. SSH 연결을 사용하는 경우 scp 또는 sftp를 사용하여 실제 사본을 작성하고 안전합니다.

여기 ssh를 소스에서 볼 수있다 :

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

어느 다음 SCP, SFTP를 사용할 수 있습니다 대표 put_file_file_transport_command에, "스마트", 또는 파이프. Smart는 다른 세 가지 중에서 가장 사용하기 쉬운 것을 탐지합니다.

참고 : 파일을 로컬로만 복사하고 보안 복사가 필요없는 Anipal 복사 모듈이 있습니다. 그게 내 이전의 대답은 잘못 지적하고 그래서 그것을 삭제했습니다.

3

맞습니다. 관리 노드와의 모든 통신은 ssh를 통해 안전하게 수행됩니다. 저장소에서 컨트롤러의 암호가 해독되고 일반 텍스트 개인 키가 보안 ssh 연결을 통해 전송되고 대상 노드에서 삭제됩니다.

로그인 할 수있는 사용자, 소유권, 그룹 구성원 자격, 액세스 권한 등에 따라 대상 노드에서 일반 텍스트 개인 키가 안전하지 않을 수 있습니다. 안전하게 구성하는 것은 당신에게 달려 있습니다.

+0

'copy' 모듈에서 그 전송에 책임이있는 무능한 코드에서 정확한 위치를 찾으려고 노력했지만 저는 이것을 할 수 없었습니다. 내가 어디에서 찾을 수 있는지 아십니까? –

+0

@PiotrBabij https://github.com/ansible/ansible/blob/devel/lib/ansible/modules/files/copy.py는 ssh 또는 보안 사본에 대한 참조가 아닌 것 같습니다. –

+1

@PiotrBabij 실제로는 로컬 사본에만 해당됩니다. 사본 플러그인은 https://github.com/ansible/ansible/blob/bc66faa328b1413646ec249cd2753de5e09f1a35/lib/ansible/plugins/action/copy.py 자세한 내용은 여기를 클릭하십시오. –