Ansible Tower(Container 환경)에서 PostgreSQL 보안 취약점 패치 방법
개요
최근 보안 취약점 점검 과정에서 Ansible Tower에서 사용 중인 PostgreSQL 버전에 대한 보안 취약점(CVE)이 확인되는 경우가 있습니다.
특히 Ansible Tower 또는 AWX가 Container 기반(Docker/Podman)으로 구성되어 있는 경우 일반적인 Linux 패키지 업데이트 방식과는 다른 접근이 필요합니다.
이번 포스팅에서는 Container 기반 Ansible Tower 환경에서 PostgreSQL 보안 패치 시 고려해야 할 사항과 기본적인 작업 절차를 정리해 보겠습니다.
사전 확인 사항
PostgreSQL 패치를 진행하기 전에 현재 구성 정보를 확인해야 합니다.
1. Ansible Tower 버전 확인
awx-manage --version
or
tower-cli --version
2. PostgreSQL Container 확인
docker ps | grep postgres
or
podman ps | grep postgres
CONTAINER ID IMAGE
xxxxx postgres:13.16
3. PostgreSQL 버전 확인
docker exec -it awx_postgres psql -U postgres \
-c "select version();"
or
docker exec -it awx_postgres postgres --version
패치 전 반드시 확인해야 할 사항
보안팀에서 취약점이 발견되었다고 해서 무조건 최신 PostgreSQL 버전으로 업그레이드하면 안 됩니다.
Ansible Tower 또는 Red Hat Ansible Automation Platform(AAP)은 지원되는 PostgreSQL 버전이 정해져 있기 때문입니다.
확인 사항
- 현재 PostgreSQL 버전
- 취약점 CVE 번호
- Ansible Tower 지원 버전
- Red Hat Support Matrix
- 백업 가능 여부
동일 Major Version 내 패치
예를 들면 다음과 같은 경우입니다.
13.16 → 13.18
14.12 → 14.15
이 경우 일반적으로 이미지 교체 방식으로 진행할 수 있습니다.
1. 데이터베이스 백업
PostgreSQL 전체 백업 생성
docker exec awx_postgres \
pg_dumpall -U postgres \
> tower_db_backup.sql
``
2. Tower 서비스 중지
docker stop awx_task
docker stop awx_web
환경에 따라 Container 이름은 다를 수 있습니다.
3. 신규 PostgreSQL 이미지 다운로드
docker pull postgres:14.15
4. 기존 PostgreSQL Container 중지
docker stop awx_postgres
docker rm awx_postgres
5. 신규 이미지로 PostgreSQL 기동
Docker Compose 사용 시
docker compose up -d
``
or
docker-compose up -d
6. 서비스 정상 여부 확인
Container 상태 확인
docker ps
로그 확인
docker logs awx_postgres
PostgreSQL 버전 확인
docker exec -it awx_postgres \
psql -U postgres -c "select version();"
Major Version Upgrade 시 주의사항
다음과 같은 경우는 단순 이미지 변경만으로 처리할 수 없습니다.
PostgreSQL 12 → 14
PostgreSQL 13 → 15
Major Upgrade는 데이터 포맷 변경 가능성이 있으므로 추가 작업이 필요합니다.
대표적인 방법은 다음과 같습니다.
방법 1. pg_dump / pg_restore
기존 데이터 백업
pg_dumpall
신규 DB 구축 후
psql < backup.sql
복구 수행
방법 2. pg_upgrade
대규모 데이터베이스 환경에서는
pg_upgrade
방식을 사용할 수도 있습니다.
패치 후 점검 항목
PostgreSQL 패치 완료 후 반드시 다음 항목을 확인해야 합니다.
Tower 로그인 확인
Web UI 정상 접속
Inventory Sync 확인
Inventory Update 성공
``
Job Template 실행 확인
Playbook 정상 수행
정기 배치 정상 수행
docker logs awx_postgres
오류 메시지가 없는지 확인합니다.
장애 예방을 위한 권장 절차
운영 환경에서는 다음 순서로 진행하는 것을 권장합니다.
- 현재 버전 확인
- CVE 영향도 분석
- Red Hat 지원 여부 확인
- Full Backup 수행
- 테스트 환경 검증
- 운영 환경 패치 수행
- 기능 점검
- 증적 확보 및 변경 기록 등록
마무리
Container 기반 Ansible Tower 환경에서는 PostgreSQL 패치가 단순 OS 패키지 업데이트가 아니라 Container 이미지 관리 관점으로 접근해야 합니다.
또한 Ansible Tower와 PostgreSQL 간의 버전 호환성을 반드시 확인해야 하며, 운영 환경에서는 충분한 검증과 백업 후 작업을 수행하는 것이 중요합니다.
보안 취약점 대응도 중요하지만 서비스 안정성이 최우선이라는 점을 잊지 말아야 합니다.
'WORK-LIFE > ETC' 카테고리의 다른 글
| TiWorker 리소스 이슈 해결 (0) | 2023.05.01 |
|---|