웹사이트 검색

민감한 데이터를 보호하기 위해 플레이북에서 Ansible Vault를 사용하는 방법 - 10부


Ansible을 사용하면서 플레이북에 일부 기밀 정보를 입력해야 할 수도 있습니다. 여기에는 SSH 개인 및 공개 키, 비밀번호, SSL 인증서가 포함됩니다. 우리가 이미 알고 있듯이, 이러한 민감한 정보를 일반 텍스트로 저장하는 것은 분명한 이유로 나쁜 습관입니다. 이 정보는 해커나 권한이 없는 사용자가 이 정보를 손에 넣었을 경우 어떤 일이 일어날지 상상할 수 없기 때문에 자물쇠를 채워 보관해야 합니다.

다행히 Ansible은 Ansible Vault라는 편리한 기능을 제공합니다. 이름에서 알 수 있듯이 Ansible Vault는 앞서 논의한 것처럼 중요한 비밀 정보를 보호하는 데 도움이 됩니다. Ansible Vault는 나중에 설명하겠지만 변수 또는 전체 파일과 YAML 플레이북을 암호화할 수 있습니다. 파일을 암호화하고 해독할 때 동일한 비밀번호가 필요한 매우 편리하고 사용자 친화적인 도구입니다.

이제 Ansible Vault를 사용하여 수행할 수 있는 다양한 작업을 살펴보고 개요를 살펴보겠습니다.

Ansible에서 암호화된 파일을 생성하는 방법

암호화된 플레이북 파일을 생성하려면 ansible-vault create 명령을 사용하고 표시된 대로 파일 이름을 제공하기만 하면 됩니다.

ansible-vault create filename

예를 들어 암호화된 파일 mysecrets.yml을 생성하려면 명령을 실행합니다.

ansible-vault create mysecrets.yml

그 후 비밀번호를 입력하라는 메시지가 표시되며, 비밀번호를 확인한 후 vi 편집기를 사용하여 희곡 작성을 시작할 수 있는 새 창이 열립니다.

다음은 일부 정보의 샘플입니다. 완료되면 플레이북을 저장하고 종료하기만 하면 됩니다. 그리고 그것은 암호화된 파일을 생성할 때의 문제입니다.

파일 암호화를 확인하려면 표시된 대로 cat 명령을 사용하십시오.

cat mysecrets.yml

Ansible에서 암호화된 파일을 보는 방법

암호화된 파일을 보려면 아래와 같이 ansible-vault view 명령을 전달하면 됩니다.

ansible-vault view mysecrets.yml

다시 한 번 비밀번호를 입력하라는 메시지가 표시됩니다. 다시 한 번, 귀하는 귀하의 정보에 접근할 수 있습니다.

Ansible에서 암호화된 파일을 편집하는 방법

암호화된 파일을 변경하려면 표시된 대로 ansible-vault edit 명령을 사용하세요.

ansible-vault edit mysecrets.yml

언제나 그렇듯 비밀번호를 입력한 후 파일 편집을 진행하세요.

편집이 끝나면 vim 편집기를 저장하고 종료하세요.

Ansible Vault 비밀번호를 변경하는 방법

Ansible Vault 비밀번호를 변경해야 한다고 생각하는 경우 아래와 같이 ansible-vault rekey 명령을 사용하여 쉽게 변경할 수 있습니다.

ansible-vault rekey mysecrets.yml

그러면 볼트 비밀번호를 묻는 메시지가 표시되고 나중에 새 비밀번호를 입력하고 나중에 확인하도록 요청합니다.

Ansible에서 암호화되지 않은 파일을 암호화하는 방법

암호화되지 않은 파일을 암호화하고 싶다면 표시된 대로 ansible-vault encrypt 명령을 실행하여 암호화할 수 있습니다.

ansible-vault encrypt classified.txt

나중에 아래와 같이 cat 명령을 사용하여 파일을 볼 수 있습니다.

암호화된 파일을 해독하는 방법

암호화된 파일의 내용을 보려면 아래 예에 표시된 대로 ansible-vault encrypt를 사용하여 파일을 복호화하면 됩니다.

ansible-vault decrypt classified.txt

Ansible에서 특정 변수를 암호화하는 방법

또한 Ansible Vault는 특정 변수를 암호화하는 기능을 부여합니다. 이는 표시된 대로 ansible-vault encrypt_string 명령을 사용하여 수행됩니다.

ansible-vault encrypt_string 

Ansible Vault에서는 비밀번호를 묻는 메시지를 표시하고 나중에 비밀번호 확인을 요구합니다. 다음으로 암호화하려는 문자열 값을 입력합니다. 마지막으로 ctrl+d를 누르세요. 그런 다음 플레이북에서 암호화된 값 할당을 시작할 수 있습니다.

이는 아래와 같이 한 줄로 달성할 수 있습니다.

ansible-vault encrypt_string 'string' --name 'variable_name'

런타임 중에 플레이북 파일의 암호를 해독하는 방법

플레이북 파일이 있고 런타임 중에 이를 해독하려면 그림과 같이 --ask-vault-pass 옵션을 사용하세요.

ansible-playbook deploy.yml --ask-vault-pass

이는 동일한 비밀번호를 사용하여 암호화된 경우 플레이북에 사용되는 모든 파일의 암호를 해독합니다.

비밀번호 프롬프트는 때때로 짜증스러울 수 있습니다. 이러한 메시지는 특히 자동화가 핵심인 경우 자동화를 유지할 수 없게 만듭니다. 런타임 중에 플레이북을 해독하는 프로세스를 간소화하려면 Ansible Vault 비밀번호가 포함된 별도의 비밀번호 파일을 보유하는 것이 좋습니다. 이 파일은 표시된 대로 런타임 중에 전달될 수 있습니다.

ansible-playbook deploy.yml --vault-password-file  /home/tecmint/vault_pass.txt

이것으로 이 주제와 Ansible 자동화 시리즈의 결론을 내렸습니다. 튜토리얼을 통해 하나의 중앙 시스템에서 여러 서버에 걸쳐 작업을 자동화하는 방법에 대한 유용한 지식을 얻었기를 바랍니다.