메인 콘텐츠로 이동하기

《Container Security》 Liz Rice

사실 나는 책으로 공부하는 걸 그다지 좋아하지 않았다.
빠르게 변하는 IT 세상에서 두꺼운 종이 책은 어딘가에 머무르고 있다고 느껴졌기 때문이다.

하지만 근래 《모던 리눅스 교과서》 라는 책을 읽게 되면서 이에 대한 인식이 변하게 됐는데 이유는 아래와 같다

  • 모르는 것은 인터넷을 검색하면 쉽게 알 수 있다 하지만 문제는 내가 뭘 모르는지 모른다는 것 이다
  • 책은 파편화된 정보가 아니라, 체계적이고 어느 정도 맥락(Context)을 유지하는 지식을 제공한다.

후기 #

《Container Security》 는 평소 관심있는 분야인 컨테이너 기술을 더 깊게 파보고 싶어서 구매하게 되었다.

컨테이너 관련 책이면 도커 사용이나 쿠버네티스에 대한 책들이 많은데,

나는 컨테이너의 구성 원리에 해당하는 부분들이 궁금했다

  • 리눅스의 namespace, cgroup 같은 개념들이 어떻게 조합되어 컨테이너를 만드는가?
  • 컨테이너는 정말 ‘완벽한 격리’라고 부를 수 있는가 등등

이전에 《모던 리눅스 교과서》를 읽은 것도 컨테이너 기반 기술인 리눅스에 대해 더 알고 싶어서였다..

책을 구입하기 전에 2021년도 발행이어서 너무 옛날 내용이진 않을까 걱정했었지만
역시 기반기술은 그리 쉽지 변하지 않는다

제목은 ‘컨테이너 보안’이지만, 초중반부에서는

  • VM과 컨테이너의 차이점 — 컨테이너가 가상 머신이 아닌 격리된 프로세스에 불과하다는 점을 명쾌하게 설명한다.
  • namespacecgroup을 통한 컨테이너 구성 원리

를 상세히 다룬다. 솔직히 이 기초 파트만으로도 책값이 아깝지 않다고 느꼈다.

  • 4장에서 다루는 네임스페이스 관련 실습은 눈으로 직접 확인하니 이해도 잘되고 재밌었다.

이후 후반에 나오는 진짜 보안에 대한 내용들은 사실 조금 느끼기 어려웠다
아직 컨테이너를 공격적인 관점에서 다뤄보거나 깊은 장애를 겪어보지 않아서 저자의 절실함을 이해하긴 쉽지 않았다.

그럼에도 책을 통해 저자가 바라보는 시야를 어깨너머로나마 엿볼 수 있었고, 그것만으로도 충분히 시야가 넓어진 느낌이 들었다.

“컨테이너? 그거 완전히 격리된 거 아니야?” 라는 안일한 생각을 깨주고, 컨테이너보안에도 신경 써야 할 포인트가 많다는 걸 깨닫게 해준 저자에게 감사를 전하고 싶다.

그리고 책을 읽고 나서 자연스럽게 드는 의문이 생겼다.
컨테이너가 결국 호스트 커널을 공유한다면, 진짜 완전한 격리는 어떻게 구현할 수 있을까?

gVisor처럼 시스템콜을 유저스페이스에서 가로채는 방식, Firecracker처럼 경량 microVM으로 커널 자체를 분리하는 방식, 혹은 앱에 필요한 커널 기능만 골라 단일 바이너리로 만드는 유니커널까지 — 이 질문의 답을 향한 다양한 시도들이 존재한다는 걸 알게 됐다. 이 방향이 지금은 가장 흥미롭게 느껴지는 것 같다.

마치며 #

컨테이너 환경의 인프라를 운영하거나 클라우드 생태계에 관심이 있더라면 한 번쯤 읽어보는 것을 추천한다

컨테이너에 더 가까워진 후에 이 책을 보면 느낌이 또 다를 것 같아 소장할 생각이다

이전에 컨테이너의 작동원리를 검색할 때 우연히 봤던 Liz Rice의 Containers From Scratch 영상을 좋게 보았더라면, 해당 책에서도 비슷한 느낌을 받을 수 있다