ansible
비밀 암호
수색…
비고
Ansible가 제공 볼트 (로 착각하지 HashiCorp 볼트 !) 민감한 데이터의 암호화를 처리 할 수 있습니다. Vault는 주로 변수, 작업, 처리기와 같은 모든 구조화 된 데이터를 암호화하는 것을 목표로합니다.
민감한 구조화 된 데이터 암호화
먼저 vault_pass_file
과 같은 키 파일을 생성합니다.이 파일에는 긴 순서의 임의 문자가 포함되어있는 것이 이상적입니다. 리눅스 시스템에서는 pwgen
을 사용하여 임의의 암호 파일을 만들 수 있습니다 :
pwgen 256 1 > vault_pass_file
그런 다음이 파일을 사용하여 중요한 데이터를 암호화하십시오 (예 : groups_vars/group.yml
.
ANSIBLE_VAULT_PASSWORD_FILE=vault_pass_file ansible-vault encrypt group_vars/group.yml
이제부터는 vault_pass_file
북을 실행하기 위해 vault_pass_file
이 필요합니다 :
ANSIBLE_VAULT_PASSWORD_FILE=vault_pass_file ansible-playbook -i inventories/nodes my-playbook.yml
ANSIBLE_VAULT_PASSWORD_FILE
환경 변수를 설정하는 대신 --vault-password-file vault_pass_file
플래그를 사용할 수도 있습니다.
디스크의 비밀 정보를 편집하거나 해독하려면 각각 ansible-vault edit
과 ansible-vault decrypt
사용할 수 있습니다.
조회 파이프를 사용하여 구조화되지 않은 볼트로 암호화 된 데이터의 암호를 해독합니다.
Vault를 사용하면 비공개 키 파일과 같이 구조화되지 않은 데이터를 암호화 할 수 있으며 lookup
모듈을 통해 재생할 때도 해독 할 수 있습니다.
---
- name: Copy private key to destination
copy:
dest=/home/user/.ssh/id_rsa
mode=0600
content=lookup('pipe', 'ANSIBLE_VAULT_PASSWORD_FILE=vault_pass_file ansible-vault view keys/private_key.enc')
local_action을 사용하여 볼트로 암호화 된 템플릿의 암호를 해독
local_action
모듈을 사용하여 볼트로 암호화 된 템플릿에 의존하는 플레이를 실행할 수 있습니다.
---
- name: Decrypt template
local_action: "shell {{ view_encrypted_file_cmd }} {{ role_path }}/templates/template.enc > {{ role_path }}/templates/template"
changed_when: False
- name: Deploy template
template:
src=templates/template
dest=/home/user/file
- name: Remove decrypted template
local_action: "file path={{ role_path }}/templates/template state=absent"
changed_when: False
changed_when: False
유의하십시오. 이것은 가능한 역할로 멱등 원 (idempotence) 테스트를 실행하는 경우에 중요합니다. 그렇지 않으면 시나리오를 실행할 때마다 변경 내용이 전달됩니다. group_vars/all.yml
에서 재사용을위한 전역 암호 해독 명령을 설정할 수 있습니다 (예 : view_encrypted_file_cmd
.
group_vars / all.yml
---
view_encrypted_file_cmd: "ansible-vault --vault-password-file {{ lookup('env', 'ANSIBLE_VAULT_PASSWORD_FILE') }} view"
이제 게임을 실행할 때 ANSIBLE_VAULT_PASSWORD_FILE
환경 변수를 볼트 암호 파일 (절대 경로 포함)을 가리 ANSIBLE_VAULT_PASSWORD_FILE
도록 설정해야합니다.