Carbon Black Cloud Container 아키텍처 개요
Carbon Black Cloud Container는 클라우드 네이티브 SaaS 솔루션입니다. 온-프레미스와 퍼블릭 클라우드(Amazon EKS, Azure Kubernetes Service, Google Kubernetes Engine)에서여러 Kubernetes 클러스터를 보호할 수 있으며 모든 클러스터에 설치해야 합니다.
클러스터가 여러 개 필요한 이유는 무엇입니까? 현장에서 dev, pre-prod, prod, backup 등을 위한 여러 클러스터를 보다 안전하고 쉽게 실행할 수 있다는 것을 볼 수 있입니다. 그리고 왜 다른 클라우드에서 쿠버네티스를 운영합니까? 첫째, 조직이 다른 서비스를 인수할 때 발생하는 레거시적 이유이며, 둘째, 모든 팀이 동일한 서비스를 필요로 하는 것은 아니기 때문에 서로 다른 솔루션 간에 동일한 지식과 가격이 다를 수 있습니다.
Kubernetes 클러스터 구성 요소
Kubernetes 클러스터에서 Carbon Black Container는 서로 상호 작용하는 몇 가지 주요 구성 요소로 구성됩니다. 모든 Carbon Black 포드는 “cbcontainers-dataplane”이라는 전용 네임스페이스에서 실행되며, 모두 직접 연결 또는 프록시를 통해 Carbon Black Cloud에 연결해야 합니다.
이 다이어그램의 모든 카본 블랙 구성 요소는 녹색이고 모든 쿠버네티스 구성 요소는 파란색입니다. 다이어그램의 단순성을 위해 마스터 노드 1개와 작업자 노드 2개만 표시되지만 마스터 노드가 실패하더라도 서비스를 계속 사용할 수 있도록 하려면 3, 5, 7… 마스터 노드가 있어야 합니다.
Carbon Black 컨테이너는 Linux OS에서 런타임 보안 계층을 추가하기 위해 eBPF 기술을 사용합니다. eBPF는 Linux 커널에 기원을 둔 기술로, 커널 소스 코드를 변경하거나 커널 모듈을 로드하지 않고도 안전하고 효율적으로 커널의 기능을 확장하는 데 사용됩니다. 그렇기 때문에 Carbon Black은 Carbon Black Container, Carbon Black Endpoint 및 Workload Linux의 모든 Linux 커널 버전 4.4+에서 eBPF를 사용합니다. eBPF를 사용하면 Carbon Black 컨테이너는 모든 수신, 송신 및 내부 네트워크 연결을 모니터링할 수 있으므로 포트 검색, 비정상적인 동작 및 악의적인 IP 및 URL에 대한 연결을 탐지할 수 있습니다.
“node agent” 포드는 Kubernetes DaemonSet이며, 모든 노드에서 이 포드의 복사본을 실행하므로 Kubernetes 클러스터에 노드를 더 추가할 수 있으며 Carbon Black이 해당 노드를 자동으로 보호합니다. Kubernetes 솔루션에 따라 마스터 노드에서 “node agent”를 실행할 수 있거나 실행할 수 없지만 각 작업자 노드에 “node agent”가 하나씩 있습니다. 데몬셋은 일반적으로 모니터링, 네트워킹 및 보안 솔루션에 사용되며 이 기술은 모든 Kubernetes에서 사용할 수 있습니다.
Kubernetes Admission controller
VMware Carbon Black Container는 다음 두 가지 유형의 정책을 제공합니다.
- 하드닝(hardening) 정책(웹 후크 포함)
- 런타임 정책(eBPF 정책)
웹 후크는 Kubernetes 클러스터의 승인 제어를 확장하는 데 사용되며, 관리자가 Carbon Black Container 강화 정책을 준수하지 않는 리소스를 배포하는 경우 Carbon Black Container가 자동 적용(또는 변경)하거나 차단 또는 경고를 할 수 있습니다.
관리자가 새 애플리케이션을 배포하려고 할 때 인증하고 올바른 권한을 가지고 있어야 합니다. 그런 다음 “mutating admission” 단계에서 Carbon Black은 배포 내용을 수정하여 권한을 제한하거나 할당량을 추가하거나 응용 프로그램의 사용자를 변경할 수 있습니다. 그러면 결과 오브젝트 형식이 검증되고 Carbon Black이 개체 승인을 승인합니다. 다른 응용 프로그램은 웹 훅을 사용하여 배포를 수정할 수 있지만 Carbon Black은 항상 마지막에 결과를 확인합니다. 마지막으로, 애플리케이션 객체의 “desired state”가 etcd Kubernetes 내부 데이터베이스에 저장됩니다.
Cbctl
Carbon Black Container는 이미지 스캔 및 Carbon Black 서비스 계측을 위한 CLI 도구를 제공합니다. 이 도구는 Linux 및 Mac에서 사용할 수 있습니다. Dev/Sec/Ops 시스템에 설치하거나 CI/CD 파이프라인에 포함할 수 있습니다(예: Jenkins 또는 GitLab).
Cbctl은 Carbon Black Cloud에 연결하기 위한 인터넷 액세스와 컨테이너 레지스트리에 대한 액세스 권한이 필요합니다.
출처 : https://carbonblack.vmware.com/resource/carbon-black-container-architecture#carbon-black-container-architecture