설명
Ansible 작업의 입력이나 결과에 비밀번호, 토큰, 키가 포함되면 실행 출력이나 수집된 로그에 민감한 값이 남을 수 있습니다. [defaults]의 no_log=True는 작업 세부 정보의 출력과 로깅을 제한하는 기본 설정입니다. 이 설정의 생략만으로 정보가 실제로 유출되었다고 단정할 수는 없습니다.
로그는 여러 운영자가 보거나 외부 시스템으로 전송할 수 있습니다. 민감한 값이 남으면 원래 자격 증명에 접근할 수 없는 사용자에게도 노출될 수 있습니다.
잠재적 영향
- 비밀번호, 토큰, 키 같은 민감한 값이 공유된 실행 출력이나 로그에 남을 수 있습니다.
- 로그 보관본을 통해 사고 이후에도 자격 증명이 노출될 수 있습니다.
해결 방법
- 민감한 값을 다루는 작업에
no_log: true를 적용하세요. 전체 작업에 기본 적용하려면[defaults]의no_log=True를 검토하되, 문제 해결에 필요한 출력도 줄어드는 점을 고려하세요. no_log는 디버그 출력을 보호하지 않습니다. 별도의 디버그 출력이나 애플리케이션 로그에 비밀 값을 기록하지 마세요.- CI와 로그 저장소의 접근 권한·보존 정책을 확인하고, 이미 노출된 자격 증명은 교체하세요.
예시
ansible.cfg의 기본 설정을 비교한 발췌입니다. 다른 옵션의 지원 여부는 설치된 Ansible 버전에 맞춰 확인하세요.
변경 전
text
[defaults]
action_warnings=True
allow_unsafe_lookups=False
ask_pass=False
ask_vault_pass=False
debug=False
forks=5
gathering=implicit
전역 no_log 기본값을 지정하지 않습니다. 실제 노출 여부는 작업별 설정과 출력 내용에도 달려 있습니다.
변경 후
text
[defaults]
action_warnings=True
allow_unsafe_lookups=False
ask_pass=False
ask_vault_pass=False
debug=False
forks=5
gathering=implicit
no_log=True
작업 세부 정보의 출력 제한을 기본으로 적용합니다. 작업별 설정과 별도 출력 경로를 확인해야 하며, 기존 로그를 삭제하는 설정은 아닙니다.