Container Security

이정훈·2024년 8월 14일

Docker

목록 보기
20/34

컨테이너 보안은 컨테이너를 실행하고 관리함에 있어서 매우 중요한 부분입니다.
여기서는 컨테이너 보안에 있어 중요한 요소들을 알아보겠습니다.

Container Isolation

독립성은 컨테이너화된 환경의 보안과 견고성을 보장하는데 중요합니다.
컨테이너들은 호스트 시스템과 다른 컨테이너들과 독립됨으로써 허가되지 않은 접근을 막고 다른 컨테이너가 손상되었을 때 다른 컨테이너가 받는 피해를 완화합니다.

docker에서는 namespace와 Cgroups를 통해 컨테이너들을 독립시킵니다.

  • Namespaces
    Docker는 namespace 기술을 이용해 컨테이너에 독립된 환경을 제공합니다.
    namespace는 각 컨테이너가 읽거나 접근하는 것을 제한합니다.

  • Cgroups
    Cgroups는 컨테이너가 사용할 수 있는 자원을 제한시킵니다.
    CPU나 memory나 I/O같은 것들을 제한시킨다는 것입니다.
    적절한 Cgroups의 사용은 Dos 공격을 막거나 자원 고갈을 막는데 도움을 줍니다.

Security patterns And Practices

  • Least Privilege
    컨테이너는 최소한의 권한을 가지고 실행되어야 합니다.
    애플리케이션이 요구하는 최소한의 권한만을 허용한 컨테이너를 만드는 것이 좋습니다.
  • Immutable Infrastructure
    컨테이너는 불변하는 유닛이어야 합니다.
    한번 빌드되면 바뀌어서는 안된다는 것입니다.
    어떤 변화라도 새로운 이미지를 통해 새로운 컨테이너의 배포를 통해 이루어져야 합니다.
  • Version Control
    이미지는 버전 컨트롤이 되어야 하며 안전한 컨테이너 레지스트리에 저장되어야 합니다.

Secure Access Controls

접근 제어는 컨테이너 관리와 컨테이너 데이터에 적용되어야 합니다.
이는 민감한 정보에 접근하는 것을 막고 전체적인 안전 상태를 유지합니다.

  • Container Management
    역할 기반 접근 제어를 사용해 컨테이너 관리 플랫폼에 접근하는 것을 제한하는 것이 좋습니다.
    그리고 사용자가 최소한의 필요한 권한만 가지게 하는 것이 좋습니다.

  • Container Data
    저장 및 전송 중인 데이터를 암호화하는 것이 중요합니다. 특히 민감한 데이터의 경우 그러합니다.

Container Vulnerability Management

  • Image Scanning
    자동화된 스캐닝 도구를 이용함으로써 컨테이너와 이미지의 취약점을 파악할 수 있습니다.
    이 도구는 개발 파이프 라인에 통합해서 프로덕션 환경에 가기전에 잠재적인 위협을 발견하게 하느 것이 좋습니다.

  • Secure Base Images
    작은 그리고 안전한 기본 이미지를 사용하는 것이 좋습니다.

  • Regular Updates
    기본 이미지를 지속적으로 최신화해주는 것이 중요합니다.

profile
기록으로 흔적을 남깁니다.

0개의 댓글