[AWS][트러블슈팅] 도커파일 USER 미지정 문제 해결

2025. 8. 12. 15:47·AWS

1. 문제 상황

https://studying404.tistory.com/79

 

[AWS] EC2 to ECS 마이그레이션 (Spring 프로젝트, https)

0. ECS로의 마이그레이션0.1 ECS로의 마이그레이션이 필요한 경우ECS는 AWS의 컨테이너 오케스트레이션 서비스로, Docker 컨테이너의 배포, 관리, 확장을 손쉽게 할 수 있도록 해주는 서비스이다.컨테

studying404.tistory.com

지난 EC2 -> ECS 마이그레이션을 진행하면서, 로컬의 환경을 그대로 ECS에 올리기 위해 Dockerfile을 작성해 이미지를 생성했었다.

 

하지만, 프로젝트를 진행하면서 Dockerfile에서 USER 미지정되어 있어

컨테이너 내에서 기본 사용자가 root로 실행될 수 있는 위험이 존재한다는 정적 취약점 분석 결과를 알게 되었다.

 

왜 이런 문제가 발생하는걸까?

기본적으로 amazoncorretto:17-alpine 이미지는 root 사용자로 실행되기 때문에, 

비루트(non-root) 사용자를 지정하는 게 권장된다.

 

2. 현재 Dockerfile

FROM amazoncorretto:17-alpine
WORKDIR /app
COPY build/libs/*.jar app.jar
ENTRYPOINT ["java", "-jar", "app.jar"]

 

위 Dockerfile은 root 사용자로 실행되기 때문에 문제가 발생한다.

 

FROM amazoncorretto:17-alpine
WORKDIR /app

# 1. 비루트 사용자 생성 (예: appuser)
RUN addgroup -S appgroup && adduser -S appuser -G appgroup

COPY build/libs/*.jar app.jar

# 2. 권한 변경: appuser가 읽고 실행할 수 있도록
RUN chown appuser:appgroup app.jar

# 3. 사용자 변경
USER appuser

ENTRYPOINT ["java", "-jar", "app.jar"]

 

따라서 기존 코드에, 다음 3줄의 코드를 추가하여 비루트 사용자를 추가하고, 전환시킬 수 있다.

 

3. 검증

잘 적용되었는지 확인해보자.

# 도커 이미지 빌드
docker build -t my-backend .

# 백그라운드로 실행 (환경변수 필요없으면 --env-file .env 제외)
docker run -d --env-file .env -p 8080:8080 my-backend

# 현재 실행중인 Container ID 확인
docker ps

# 해당 컨테이너에 접속
docker exec -it [Container ID] sh

# 컨테이너 내부에서 사용자 확인
whoami

 

잘 적용되었다면, whoami를 했을 때 비루트 사용자의 이름이 출력된다.

 

'AWS' 카테고리의 다른 글

[AWS] EC2에 CloudWatch Agent 설정하기  (0) 2025.08.22
[AWS] CloudFront HTTP 보안 헤더 적용  (4) 2025.08.12
[AWS][트러블슈팅] CodeDeploy 오류 해결 (ResourceInitializationError, Only target group in ECS deployment group)  (1) 2025.08.06
[AWS][트러블슈팅] 프론트 -> 백엔드 API 요청 막힘 문제 해결  (2) 2025.08.06
[AWS] EC2 to ECS 마이그레이션 (Spring 프로젝트, https)  (3) 2025.08.04
'AWS' 카테고리의 다른 글
  • [AWS] EC2에 CloudWatch Agent 설정하기
  • [AWS] CloudFront HTTP 보안 헤더 적용
  • [AWS][트러블슈팅] CodeDeploy 오류 해결 (ResourceInitializationError, Only target group in ECS deployment group)
  • [AWS][트러블슈팅] 프론트 -> 백엔드 API 요청 막힘 문제 해결
공부하는 나무꾼
공부하는 나무꾼
  • 공부하는 나무꾼
    헤맨 만큼 내 땅이다
    공부하는 나무꾼
  • 전체
    오늘
    어제
  • 글쓰기/관리
    • 분류 전체보기 N
      • AWS N
      • SAA-C03
      • 네트워크 보안
      • 최신정보보안이론
      • 컴퓨터네트워크
      • OpenFaaS
      • C++
      • Java
      • HTML, CSS
      • 자료구조
      • 알고리즘
      • 정보보안인재양성
      • [MAC]트러블슈팅&Tip
      • 공부
      • Web(Django)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    클라우드
    SAA-C03
    web application server
    등록번호
    웹서버
    WAS
    자격증
    웹클라이언트
    AWS
    Web Server
    java #자바 #객체지향프로그래밍 #복습
    웹애플리케이션서버
    cloud
    aws-c03
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
공부하는 나무꾼
[AWS][트러블슈팅] 도커파일 USER 미지정 문제 해결
상단으로

티스토리툴바