컨테이너 보안은 컨테이너를 실행하고 관리함에 있어서 매우 중요한 부분입니다.
여기서는 컨테이너 보안에 있어 중요한 요소들을 알아보겠습니다.
독립성은 컨테이너화된 환경의 보안과 견고성을 보장하는데 중요합니다.
컨테이너들은 호스트 시스템과 다른 컨테이너들과 독립됨으로써 허가되지 않은 접근을 막고 다른 컨테이너가 손상되었을 때 다른 컨테이너가 받는 피해를 완화합니다.
docker에서는 namespace와 Cgroups를 통해 컨테이너들을 독립시킵니다.
Namespaces
Docker는 namespace 기술을 이용해 컨테이너에 독립된 환경을 제공합니다.
namespace는 각 컨테이너가 읽거나 접근하는 것을 제한합니다.
Cgroups
Cgroups는 컨테이너가 사용할 수 있는 자원을 제한시킵니다.
CPU나 memory나 I/O같은 것들을 제한시킨다는 것입니다.
적절한 Cgroups의 사용은 Dos 공격을 막거나 자원 고갈을 막는데 도움을 줍니다.
접근 제어는 컨테이너 관리와 컨테이너 데이터에 적용되어야 합니다.
이는 민감한 정보에 접근하는 것을 막고 전체적인 안전 상태를 유지합니다.
Container Management
역할 기반 접근 제어를 사용해 컨테이너 관리 플랫폼에 접근하는 것을 제한하는 것이 좋습니다.
그리고 사용자가 최소한의 필요한 권한만 가지게 하는 것이 좋습니다.
Container Data
저장 및 전송 중인 데이터를 암호화하는 것이 중요합니다. 특히 민감한 데이터의 경우 그러합니다.
Image Scanning
자동화된 스캐닝 도구를 이용함으로써 컨테이너와 이미지의 취약점을 파악할 수 있습니다.
이 도구는 개발 파이프 라인에 통합해서 프로덕션 환경에 가기전에 잠재적인 위협을 발견하게 하느 것이 좋습니다.
Secure Base Images
작은 그리고 안전한 기본 이미지를 사용하는 것이 좋습니다.
Regular Updates
기본 이미지를 지속적으로 최신화해주는 것이 중요합니다.