컨테이너를 안전하게 보호하는 방법

게시일: 2017-05-11 l 작성자: Justin Foster

지난 4월 넷째 주, 수 천명의 사람들이 DockerCon 2017을 위해 텍사스 오스틴으로 갔다. Docker (이하 도커)의 인기는 폭발적으로 증가하고 있으며, 수 천개의 기업이 어플리케이션을 현대화 하고, 마이크로서비스를 구축하며, 인프라 구조를 최적화 하고 DevOps를 수용 하기 위해 사용하는 플랫폼이다.

다른 변화와 마찬가지로 도커로의 전환은 기업에게 있어서 큰 여정이다. 긴 여정을 떠나기 전에 컨테이너를 어떻게 안전하게 옮길 것인가를 미리 알아 놓는 것이 중요하다.

지난 Simply Security 블로그에서도 말했듯 컨테이너는 컴퓨터 진화의 일부이다. 이러한 스펙트럼을 따라 이동함에 따라, 개발자가 많은 양의 마이크로서비스를 수용 하고, 워크로드는 상대적으로 줄어들고 있다. 가상화를 통해 전체 VM이었던 어플리케이션 템플릿을 제공했고, 클라우드를 통해 서버 간의 장벽이 없는 서버 구축을 위한 새로운 양식을 소개 했지만, 컨테이너는 매우 효율적이고 휴대하기 쉬운 방식으로 어플리케이션을 표준화하고 구분한다.

이러한 현대 환경을 수용함에 따라 보안 역시 채택되었다. 가상화를 위해 최초의 에이전트 없는 파일 및 네트워크 보안을 실현하는 방법을 확인했다. 클라우드에는 오토 스케일링과 소비 라이센스를 제공했다. 도커의 경우, 컨테이너 가시성을 제공하고 컨테이너가 지원하는 호스트 및 컨테이너를 보호할 수 있도록 보안이 강화되고 있다.

응용프로그램 이식성 외에도, 도커는 표준화된 어플리케이션 배포 방법을 도입했다. 개발자들은 CI/CD 파이프 라인은 사용하여 레지스트리에 이미지를 푸시 한 후 Docker Swarm 또는 Kubernetes와 같은 컨테이너 조정 툴을 사용해 컨테이너 워크로드를 배포, 관리 및 확장한다. 이러한 업무 분담은 도커를 기반으로 한 어플리케이션 환경을 보호하기 위한 첫번째 발걸음이다. 개발자는 단순히 이미지를 푸시 할 뿐이고, 이러한 이미지들을 사용해 어플리케이션의 가용성을 높인다. DevOps를 사용하면 이러한 역할이 동일한 팀에 속할 수 있지만 최소한의 권한만 적용하는 좋은 예를 도출 할 수 있다.

그 다음은 런타임 어플리케이션이다. 컴퓨터 세계의 다른 것들과 마찬가지로, 도커를 기반으로 한 배포와 그 안에서 운영되는 어플리케이션들은 당연히 결함을 가지고 있다. 이러한 결함은 운영 체제 취약점, 즉 주입 또는 스푸핑 공격을 소개하는 어플리케이션 로직 결함, 또는 악의적인 내부 침입 등의 형태로 발생합니다. 이럴 때 바로 침입 방지, 파일 무결성 모니터링, 로그 분석, 다른 기법 등의 보상을 적용한다. 어떠한 솔루션 이라도 어떻게 도커 호스트와 그 안에서 운영되는 컨테이너 모두를 보호 하는 지 이해 하는 것이 중요하다.

도커 환경은 신속한 구축과 반복을 의미한다. 몇몇의 도커 사용자는 하루에 100번도 넘게 업데이트를 하기도 한다. 이런 타입의 역동적인 환경에서 변화에 대응할 수 있고 도커 워크로드의 가시성을 제공할 수 있는 알맞은 툴을 선택하는 것이 중요하다. 더욱이, 만약 어플리케이션에 중요한 데이터가 포함되어 있다면, 규정 준수 기준을 따를 수 있다. 지속적인 컴플라이언스를 위해 설계된 보안 툴을 선택하면 조금 더 쉽게 감사를 할 수 있을 것이다. 그렇다면 컨테이너를 안전하게 보관하여 순풍에 돛을 달고 여정을 떠날 수 있는 것이다.

기업들은 그 어느 때보다도 빠른 속도록 컨테이너 세상을 위해 출범하고 있다. 위에 설명한 것들 것 거친 바다에서 도커와 함께 어떻게 하면 안전한 항해를 할 수 있는지에 대한 몇가지 팁일 뿐이다.

더 자세한 내용은 여기를 클릭하기 바란다.


원문: Setting Sail with Docker