kate90***
2021-02-14

컨테이너 환경에 특화된 보안 문제를 다루는 실무 지침서. 컨테이너의 작동 및 통신 원리를 파헤친 뒤 컨테이너를 격리하는 다양한 방법을 안내하고, 리눅스가 제공하는 기능을 활용하여 컨테이너별로 보안을 강화하는 방법을 익힌다.
가벼움과 재사용 가능한 코드, 그리고 무엇보다 2013년 도커의 등장 이래로 컨테이너에 대한 관심이 증가하고 있습니다. 컨테이너는 격리된 공간에서 프로세스가 동작하는 기술로, 도커의 초기 광고 문구인 Build Once Run Anywhere 처럼, 한 번만 빌드하고 어디서든 실행할 수 있게 해줍니다. 컨테이너를 이용하면 간단한 한 두개의 명령어를 통해 다종다양한 실행 환경에서 우려되는 각종 오류와 지원 문제를 해결해준다는 점에서도 크나큰 매력이 있습니다.
이 책은 컨테이너 기반 시스템을 구성하는데 쓰이는 여러 기반 기술들과 매커니즘을 소개하고, 리눅스 운영체제에서 구체적으로 어떻게 작용하는지 설명하고 있습니다. 전반부는 시스템 호출과 리눅스 능력 등 컨테이너와 관련된 리눅스 메커니즘을 설명하면서, 컨테이너가 어떻게 작동하고 컨테이너의 구성 요소들이 어떻게 서로 혹은 외부와 통신하는지 다루고 있습니다. 또한 컨테이너 이미지를 안전하게 구축하는 best practice를 사례와 함께 설명하고, 기본 구현 이상으로 컨테이너 보안을 강화하는데 사용할 수 있는 추가적인 리눅스 보안 수단들을 설명해주고 있습니다.
이어지는 후반부에서는, 컨테이너간의 통신 방식과 연결에 제한을 두어 보안을 개선하는 방법을 살펴보고 있습니다. 컨테이너화된 구성 요소들이 서로를 식별하고 보안 네트워크 연결을 설정하는데 사용되는 개인 키/공개 키 방식과 인증서를 사례로 알아보고, 마지막으로 컨테이너의 기능을 활용해 공격을 방지하는 여러 보안 도구들을 소개하고 있습니다.
이 책은 아래 범주에 속하는 독자를 대상으로 하고 있습니다.
ps나 grep, cat, chown, chmod 등의 기본적인 리눅스 명령어에 익숙한 사람
docker나 kubectl 등의 도구를 통해 컨테이너 응용 프로그램을 실행하고 관리해본 경험이 있는 사람
다만 특정 컨테이너에 종속되어 설명된다기보단, 여러 컨테이너 구현들이 공통의 특징들을 많이 공유한다는 점을 강조하고자 다양한 컨테이너 도구들을 사용하며 설명해주고 있습니다. 또한 그 근간이 되는 기술에 대한 설명과 다양한 예시를 함께 제공해주어, 초보자라도 차근차근 따라갈 수 있는 난이도의 책이라 생각됩니다. 책의 마지막 부분인 부록의 보안 점검 목록 항목들을 통해, 먼저 운영 중인 컨테이너의 보안을 점검하기 위한 현황표를 작성하고 역으로 필요한 부분 순으로 읽는 것도 이 책을 활용하는 좋은 방법일 것 같습니다.