Ansible 기본 설정의 민감정보 로그 노출 위험

민감한 작업의 출력에 no_log를 적용하고 디버그 출력과 로그 저장소도 별도로 보호하세요.

설명

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

작업 세부 정보의 출력 제한을 기본으로 적용합니다. 작업별 설정과 별도 출력 경로를 확인해야 하며, 기존 로그를 삭제하는 설정은 아닙니다.

참조