본문 바로가기
IT Knowledge/IaC

Ansible-Vault 사용하기

by Seok. 2021. 4. 27.
반응형

Ansible-Vault 변수와 파일을 암호화해주는 역할을 합니다.

민감한 컨텐츠를 일반 텍스트로 표기하지 않고, 암호화 하여 보호할 있습니다.

(ex. Ansible 이용하여 컨트롤하는 대상서버 계정정보 Hosts .)

(핵심은 유출 or 해킹 되었을때, 평문이 아니기 때문에 해당 파일을 없자는 장점)

 

암호화된 파일을 생성 or 기존 파일을 암호화 하면,

ansible-vault 명령과 함께 암호를 사용하여 변수 or 파일을 복호화해서 사용 합니다.

 

  암호화된 변수 암호화된 파일
암호화 대상 일반 텍스트 파일 내의 변수 전체 파일(구조화된 데이터 파일)
복호화될때 On Demand, only when needed 로드 or 참조 될때

[Ansible-Vault 설치]

Ansible 설치하면 함께 설치됩니다.

 

암호화 알고리즘 : AES256

     


 

[Ansible Vault 파일 암호화]

암호화된 파일 생성

$ ansible-vault create --vault-id test@multi_password_file foo.yml

 

기존파일 암호화(Encrypt)

$ ansible-vault encrypt foo.yml bar.yml baz.yml

 

암호화된 파일 보기(view)

$ ansible-vault view foo.yml bar.yml baz.yml

 

암호화된 파일 편집(edit)

$ ansible-vault edit foo.yml

 

암호화된 파일의 비밀번호 변경(rekey)

$ ansible-vault rekey foo.yml bar.yml baz.yml

 

영구적으로 암호화된 파일 복호화(decrypt)

ansible-vault decrypt foo.yml bar.yml baz.yml

암호화된 Hosts 복호화 Hosts

 

Ansible-vault 이용한 Ansible Command 예제

 

Hosts 파일을 읽기위해서 Vault Password 묻는것을 있다.

 


 

[Ansible Vault 변수 암호화]

Ansible-vault encrpyt_string 명령을 통해서, YAML 파일 내의 단일 값을 암호화 있습니다.

 

변수 암호화

 : 'a_password_file' 저장된 비밀번호를 이용해서, 'foobar' 암호화후 변수 이름을 'the_secret'으로 지정

ansible-vault encrypt_string --vault-password-file a_password_file 'foobar' --name 'the_secret'

암호화된 변수 내용 보기

Debug 모듈을 사용하여 변수의 원래값을 확인 있습니다.

 

참조 : https://docs.ansible.com/ansible/latest/user_guide/vault.html#id1

 

Encrypting content with Ansible Vault — Ansible Documentation

Encrypting content with Ansible Vault Ansible Vault encrypts variables and files so you can protect sensitive content such as passwords or keys rather than leaving it visible as plaintext in playbooks or roles. To use Ansible Vault you need one or more pas

docs.ansible.com

 


2021.04.25 - [IT Knowledge/DevOps] - Ansible 설명 및 기본내용

2021.04.25 - [IT Knowledge/DevOps] - Ansible 사용법(모듈)

 

 

반응형

댓글