6.9 구축 시점 보안
121
6.9.2
보안을 위한
Dockerfile
모범 관행
아래의 권장 사항들은 모두 이미지의 보안을 개선하고 그 이미지로 실행된 컨테이너를 공격자
가 침해할 기회를 줄이는 데 도움이 된다.
기반 이미지
Dockerfile
의 첫 행은 새 이미지의 기반으로 삼을 기반 이미지(
base
image
)를 지정하는
FROM
명령이다.
•
신뢰된 (
trusted
; 신뢰할 수 있는 ) 레지스트리 (§
6
.
10
이미지 저장 보안 (
p
.124
))의
이미지를 지정해야 한다.
•
임의의 서드파티 기반 이미지에는 악성 코드가 포함되어 있을 수 있다. 그래서 어떤 조
직들은 소위 ‘골든
golden
’ 기반 이미지라고 부르는 사전 승인된 기반 이미지만 사용할 수
있게 한다.
•
기반 이미지가 작을수록 불필요한 코드가 포함될 가능성이 작아지며, 따라서 공격 표
면도 작아진다. 스크래치 이미지
scratch
image
(독립형 이진 실행 파일에 적합한 완전히 빈
이미지 )로부터 이미지를 구축하거나, ‘배포판 없는(
distroless
)’ 이미지(
https
://
oreil
.
ly
/
kaUEc
) 같은 최소한의 기반 이미지를 사용하는 것도 고려해 볼 만하다. 작은 이미
지에는 네트워크로 전송하는 데 걸리는 시간이 짧다는 장점도 있다.
•
기반 이미지를 태그로 지칭할지 다이제스트로 지칭할지를 신중하게 결정해야 한다. 다
이제스트를 사용하면 구축 과정을 재현하기가 쉽다. 태그를 사용하면 기반 이미지의
새 버전 (이를테면 보안 패치가 적용된)을 손쉽게 반영할 수 있다. ...