[Docker] 컨테이너 보안 기본 개념 가이드
KUKJIN LEE • 2개월 전 작성
1. 최소 권한 원칙
- 루트가 아닌 사용자로 애플리케이션 실행
- 필요한 포트만 열기
- 필요한 파일 시스템 접근 권한만 부여
FROM ubuntu:20.04
RUN groupadd -r myapp && useradd -r -g myapp myuser
USER myuser
2. 이미지 보안
안전한 기본 이미지 사용 및 취약점 스캔을 통한 이미지 보안 강화
- 신뢰할 수 있는 소스 이미지 사용
- 정기적 이미지 업데이트
- 취약점 스캐닝 도구를 사용 (Docker Scout)
docker scout cve <image_name>
3. 네트워크 분리
컨테이너 간 네트워크 트래픽 격리 및 제어
- Docker 네트워크 생성 및 컨테이너 그룹화
- 필요한 경우에만 컨테이너 간 통신 허용
docker network create mynetwork
docker run --network mynetwork myapp
4. 리소스 제한
컨테이너가 사용할 수 있는 시스템 리소스를 제한하여 DoS 공격 방지
- CPU, 메모리, I/O 제한 설정
docker run --memory=512m --cpu-shares=512 myapp
5. 로깅 및 모니터링
컨테이너 활동 추적 및 이상 징후 탐지
- 로깅 시스템 구축
- 컨테이너 활동 모니터링 도구 활용
docker run --log-driver=syslog --log-opt syslog-address=udp://logserver:514 myapp
6. 정기적인 업데이트 및 패치
최신 보안 패치 적용으로 알려진 취약점 제거
- 이미지 및 의존성 정기 업데이트
- 자동화된 업데이트 파이프라인 구축
FROM ubuntu:20.04
RUN apt-get update && apt-get upgrade -y