[AWS Summit Japan 2022] 거기 Dockerfile 작성하고 있는 분 잠깐만요, 그 컨테이너는 안전한가요?

Classmethod Korea Co., Ltd.
Classmethod Korea Co., Ltd.
4 min readJun 13, 2022

안녕하세요, 서은우입니다.

2022년 5월25–26일, 2일간 진행된 AWS Summit Online 2022 의 세션 리포트입니다. 일본에서 진행된 Summit Online은 어떤 세션이 있는지 한국분들과 공유하기 위해서 작성을 해보았습니다. 관련 세션은 링크를 통해 확인할 수 있기에 일본어로 진행되지만 관심이 있으신 분들은 보셔도 좋을 것 같습니다.

세션 개요

컨테이너 이미지 작성 시 과제나 보다 안전한 컨테이너 이미지 작성을 위한 포인트, 컨테이너 이미지 작성 보조 도구에 대해 Demo를 통해 알아가봅시다.

발표자

  • AWS Cloud Application Architect -Sugita
  • AWS Cloud Application Architect -Takahashi

세션 레벨

Level 200: 초급자

레포트

고객의 요구

  • Amazon ECS on Fargate를 사용하여 웹 서비스를 출시하고 싶습니다.
  • 컨테이너 개발 경험이 없기 때문에 특히 보안 및 Docker 파일을 만드는 데 걱정됩니다.

가지고 있는 과제

  • 컨테이너 보안의 전반적인 모습을 잘 모른다
  • 기반 팀, 개발 팀 등 Docker 파일의 책임의 소재가 모호하다
  • Docker 파일 개선

컨테이너 보안의 전체 이미지

  • 컨테이너 보안의 전반적인 이미지는 NIST SP800–190을 참고하면 이해할 수 있습니다.

Docker 파일의 책임 위치가 모호하다

  • Docker 파일, ECS 작업 정의, ECS 서비스 정의와 관련하여 책임의 범위를 명확히해야합니다

Docker 파일 개선

  • 보다 안전한 컨테이너 이미지

필요한 최소한의 구성 요소

필요한 최소 권한

취약한 구성 요소를 정기적으로 확인

  • 「The Twelve俺たちのDockerfuleベストプラクティス」를 참고

Docker 파일 개선 Demo

  • Cloud9에서 데모 진행
  • Docker image 빌드
  • 프리뷰 기능으로 만든 이미지를 확인
  • 상대 경로

WORKDIR에서 작업할 위치를 명시하기

  • 최소 레이어

RUN 정리하기

yum clean all 하기

  • COPY 와 ADD 명령

COPY: 그냥 복사만

ADD : 다른 파일을 확장하고 원격으로 파일을 가져옵니다.

  • 테스트 환경과 프로덕션 환경은 동일한 이미지를 사용해도 괜찮음

애플리케이션 종속성에 유의해야합니다.

  • 권한은 최소화

USER에서 루트가 아닌 사용자를 지정

기본 이미지 OS 선택

  • 요구 사항에 따라 선택
  • 언어 런타임 도입 방법

a. 스스로 도입

이미지를 완전히 제어 가능

b. 언어 런타임 도입된 이미지 선택

전문가에 의해 최적화된 이미지를 사용 가능

이미지 변경 Demo

  • 이미지 태그 지정
  • ECR First

공식 이미지를 ECR에서 다운로드할 수 있으면 그쪽을 우선한다

컨테이너 이미지 생성 보조 도구

  • hadolint

Dockerfile의 정적 분석

  • Dockle

컨테이너 이미지의 정적 분석

컨테이너 이미지의 취약성 스캔 도구

  • Trivy

OS 패키지 및 언어별 종속성에 대한 스캔

Dockerfile을 포함한 IaC의 정적 분석

  • Amazon ECR — 이미지 스캔 기능

이미지를 push한 타이밍이나 수동으로 OSS의 CoreOS Clair project를 사용한 스캔 (Basic scanning)

Amazon Inspector에서 프로그래밍 언어 패키지를 포함한 스캔 (Enhanced scanning)

Dockerfile을 사용하지 않는 이미지 작성 방법

  • Cloud native Buildpacks(CNB)

애플리케이션 소스 코드를 OCI 호환 컨테이너 이미지로 변환 가능

  • Jib

Maven 또는 Gradle 플러그인

  • AWS App2Container

Dockerfile를 포함한 일련의 아티팩트 출력

  • AWS App Runner

컨테이너화된 웹 앱과 API를 쉽고 빠르게 배포

마지막으로

저도 컨테이너에 대한 지식이 없었기 때문에 매우 도움이되었습니다.

특히 Demo도 함께 했으므로 설명하기 쉬웠고, 관련 툴도 소개되고 있어 개발시 도움이 될 것 같습니다.

일본어로 진행되어서 제약이 있다고 생각이 되지만, 컨테이너 초보자가 참고하기에 많은 도움이 되는 세션이라고 생각합니다.

클래스메소드코리아에 문의사항이 있으신 분들은

​info@classmethod.kr 로 연락 주시면 빠른 시일 내 담당자가 회신 드릴 수 있도록 하겠습니다 !

--

--