Docker Compose Audit Logging 구축 완벽 가이드! 서버 변경 기록과 접근 이력 관리 방법 알아보기

Production 서버를 운영할 때 중요한 것은 문제가 발생했을 때 빠르게 원인을 찾는 것입니다.

하지만 단순히 현재 상태만 확인하는 것은 부족합니다.

반드시 확인해야 하는 정보:

누가 변경했는가?

언제 변경했는가?

무엇을 변경했는가?

왜 변경했는가?

예를 들어 운영 중인 Container가 갑자기 종료되었다고 가정해 보겠습니다.

일반적인 상황:

서비스 장애 발생

↓

Container 종료 확인

↓

원인 확인 어려움

Audit Logging 환경:

Container 종료 발생

↓

Audit Log 확인

↓

관리자 A가 설정 변경

↓

원인 파악

이처럼 Audit Logging은 서버에서 발생하는 모든 중요한 작업 기록을 저장하고 추적하는 시스템입니다.

이번 글에서는 Docker Compose 환경에서 Audit Logging 개념부터 Docker 이벤트 기록, 사용자 접근 기록, 변경 추적, 보안 분석, Production 운영 구조까지 알아보겠습니다.

Audit Logging이란 무엇인가?

Audit Logging은 시스템에서 발생하는 모든 중요한 활동을 기록하는 보안 관리 방식입니다.

기록 대상:

사용자 접근

↓

Container 생성

↓

Container 삭제

↓

Configuration 변경

↓

Network 변경

↓

권한 변경

목적:

추적 가능성 확보

↓

보안 강화

↓

장애 원인 분석

일반 Log와 Audit Log 차이

일반 Application Log:

사용자 로그인 성공

결제 처리 완료

API 오류 발생

Audit Log:

관리자 로그인

Container 삭제

권한 변경

설정 변경

차이:

구분Application LogAudit Log
목적서비스 동작 기록관리 작업 추적
대상Application사용자·시스템
보안 활용일반 분석감사·추적

Docker Compose에서 추적해야 하는 이벤트

Container 환경에서는 다양한 변경이 발생합니다.

Container 이벤트

예:

Container 생성

Container 시작

Container 중지

Container 삭제

Image 이벤트

예:

Image Pull

Image Build

Image 삭제

Network 이벤트

예:

Network 생성

Network 연결

Network 삭제

Volume 이벤트

예:

Volume 생성

Volume 삭제

Docker Compose Event Logging

Docker는 기본적으로 이벤트 정보를 제공합니다.

확인:

docker events

출력:

container start

container stop

image pull

network connect

구조:

Docker Engine

↓

Event Stream

↓

Logging System

Docker Compose Audit Logging 구조

기본 구조:

Docker Host

↓

Audit Collector

↓

Storage

↓

Dashboard

Production 구조:

User

↓

Docker API

↓

Audit Log

↓

ELK / Loki

↓

Security Analysis

Docker Daemon Audit 관리

Docker Engine 자체의 활동 기록도 중요합니다.

관리 대상:

Docker API 호출

Container 명령 실행

권한 변경

Image 변경

구조:

Docker Client

↓

Docker Daemon

↓

Audit Record

Docker Compose 사용자 접근 기록 관리

서버 접근 기록은 필수 관리 항목입니다.

확인:

SSH Login

Docker Command

Admin Access

예:

User A

↓

docker compose restart 실행

↓

Audit 기록

Docker Compose Configuration 변경 추적

운영 환경에서는 설정 변경이 위험할 수 있습니다.

예:

변경 전:

port: 8080

변경 후:

port: 9000

Audit 기록:

변경자:

관리자 A


시간:

2026-07-31


변경 내용:

Port 수정

Docker Compose Git 기반 Audit 관리

Infrastructure as Code 환경에서는 Git 기록도 중요합니다.

구조:

Developer

↓

Git Commit

↓

Review

↓

Deploy

확인:

누가

어떤 파일을

왜 변경했는가

Docker Compose CI/CD Audit Logging

배포 과정도 기록해야 합니다.

구조:

Git Push

↓

CI/CD 실행

↓

Build

↓

Deploy

↓

Audit Log 저장

기록:

  • Build 실행자
  • Deploy 시간
  • Version
  • 결과

Docker Compose Audit Log 저장 구조

대규모 환경에서는 중앙 저장이 필요합니다.

구조:

Server 1

↓

Audit Log


Server 2

↓

Audit Log


Server 3

↓

Audit Log


↓

Central Logging

사용:

  • ELK Stack
  • Loki
  • SIEM

Docker Compose Audit Logging과 SIEM 연동

기업 환경에서는 SIEM과 연결합니다.

구조:

Docker Host

↓

Audit Collector

↓

SIEM

↓

Security Team

활용:

  • 이상 행동 탐지
  • 보안 사고 조사
  • 감사 대응

Docker Compose Audit Alert 구성

중요 이벤트는 즉시 알림이 필요합니다.

예:

관리자 아닌 사용자

↓

Container 삭제 실행

↓

Alert 발생

구조:

Audit Event

↓

Alert Rule

↓

Slack / Email

Docker Compose Production Audit 구조

기업 운영:

User

↓

Authentication

↓

Docker Environment

↓

Audit Logging

↓

SIEM

↓

Security Monitoring

Audit Logging Best Practice

추천:

모든 관리자 작업 기록

변경 추적 가능하도록 구성

중앙 저장

서버별 Log 분산 방지

Log 보존 정책

필요 기간 유지

접근 제한

Audit Log 수정 방지

Alert 연동

중요 이벤트 즉시 알림

자주 묻는 질문

Audit Log와 일반 Log는 같은 것인가요?

아닙니다. Audit Log는 누가 무엇을 변경했는지 추적하는 목적입니다.

Docker Compose에서도 Audit Logging이 필요한가요?

Production 환경에서는 필요합니다.

Audit Log를 왜 보호해야 하나요?

공격자가 기록을 삭제하면 원인 분석이 어려워집니다.

작은 서버에도 적용할 수 있나요?

가능합니다. Docker events와 기본 접근 기록부터 시작할 수 있습니다.

마무리

Docker Compose Audit Logging 구축은 서버 변경 사항과 접근 기록을 추적하기 위한 핵심 보안 기술입니다.

최종 구조:

사용자

↓

작업 실행

↓

Audit Log 생성

↓

중앙 저장

↓

분석

↓

대응

Production 서버에서는 장애를 해결하는 것뿐 아니라 “무슨 일이 있었는지 증명할 수 있는 기록”을 유지하는 것이 중요합니다.

다음 글에서는 보안 정책을 코드로 관리하는 방식인 Docker Compose Policy as Code 운영 방법을 알아보겠습니다.

댓글 남기기