1장. OpenShift 샌드박스 컨테이너 정보
OpenShift 샌드박스 컨테이너는 선택적 런타임으로 샌드박스 컨테이너를 실행하기 위한 기본 지원을 제공합니다. 이 런타임은 전용 VM(가상 머신)의 컨테이너를 지원하므로 워크로드 분리가 향상됩니다.
1.1. 기능 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift 샌드박스 컨테이너는 다음과 같은 기능을 제공합니다.
- 권한이 있거나 신뢰할 수 없는 워크로드 실행
권한 있는 컨테이너를 실행하여 클러스터 노드를 손상시킬 위험이 없으면 특정 권한이 필요한 워크로드를 안전하게 실행할 수 있습니다. 특수 권한이 필요한 워크로드에는 다음이 포함됩니다.
- 커널의 특수 기능이 필요한 워크로드는 CRI-O와 같은 표준 컨테이너 런타임에서 부여하는 기본 기능 이상으로, 예를 들어 낮은 수준의 네트워킹 기능에 액세스합니다.
- 예를 들어 특정 물리적 장치에 액세스하기 위해 높은 루트 권한이 필요한 워크로드입니다. OpenShift 샌드박스 컨테이너를 사용하면 특정 장치만 VM(가상 머신)에 전달하여 워크로드가 나머지 시스템에 액세스하거나 잘못 구성할 수 없도록 할 수 있습니다.
set-uid
루트 바이너리를 설치하거나 사용하는 워크로드입니다. 이러한 바이너리는 특수 권한을 부여하므로 보안 위험이 발생할 수 있습니다. OpenShift 샌드박스 컨테이너를 사용하면 추가 권한이 가상 머신으로 제한되며 클러스터 노드에 대한 특별한 액세스 권한이 부여되지 않습니다.일부 워크로드에서는 클러스터 노드를 구성하기 위해 특별히 권한이 필요할 수 있습니다. 가상 머신에서 실행하면 이러한 워크로드가 작동하지 않기 때문에 권한 있는 컨테이너를 계속 사용해야 합니다.
- 각 워크로드에 대한 커널 격리 확인
-
사용자 지정 커널 튜닝(예:
sysctl
, 스케줄러 변경 또는 캐시 튜닝)이 필요한 워크로드와 사용자 지정 커널 모듈 생성(예:트리 부족
또는 특수 인수)을 실행할 수 있습니다. - 테넌트 간에 동일한 워크로드를 공유
-
동일한 OpenShift Container Platform 클러스터를 공유하는 다양한 조직의 여러 사용자(테넌트)를 지원하는 워크로드를 실행할 수 있습니다. 또한 이 시스템을 사용하면 컨테이너 네트워크 기능(CNF) 및 엔터프라이즈 애플리케이션과 같은 여러 벤더의 타사 워크로드를 실행할 수 있습니다. 예를 들어 타사 CNF는 사용자 지정 설정이 패킷 튜닝 또는 다른 애플리케이션에서 설정한
sysctl
변수를 방해하는 것을 원하지 않을 수 있습니다. 완전히 격리된 커널 내에서 실행하면 "noisy neighbor" 구성 문제를 방지하는 데 도움이 됩니다. - 소프트웨어 테스트를 위한 적절한 격리 및 샌드박스 확인
-
알려진 취약점으로 컨테이너화된 워크로드를 실행하거나 레거시 애플리케이션의 문제를 처리할 수 있습니다. 또한 관리자는 이 격리를 통해 개발자에게 pod에 대한 관리 권한을 부여할 수 있습니다. 이 제어는 개발자가 일반적으로 부여한 것 이외의 구성을 테스트하거나 검증하려고 할 때 유용합니다. 예를 들어 관리자는 커널 패킷 필터링(eBPF)을 개발자에게 안전하게 위임할 수 있습니다. eBPF에는
CAP_ADMIN
또는CAP_BPF
권한이 필요하므로 컨테이너 호스트 작업자 노드의 모든 프로세스에 대한 액세스 권한이 부여되므로 표준 CRI-O 설정에서 허용되지 않습니다. 마찬가지로 관리자는 SystemTap과 같은 침입 툴에 대한 액세스 권한을 부여하거나 개발 중에 사용자 지정 커널 모듈 로드를 지원할 수 있습니다. - VM 경계를 통한 기본 리소스 포함 확인
- 기본적으로 CPU, 메모리, 스토리지 또는 네트워킹과 같은 리소스는 OpenShift 샌드박스 컨테이너에서 보다 강력하고 안전한 방식으로 관리됩니다. OpenShift 샌드박스 컨테이너는 VM에 배포되므로 추가 격리 및 보안 계층을 통해 리소스에 대한 보다 세분화된 액세스 제어가 가능합니다. 예를 들어, 잘못된 컨테이너는 VM에서 사용할 수 있는 것보다 더 많은 메모리를 할당할 수 없습니다. 반대로 네트워크 카드 또는 디스크에 대한 전용 액세스 권한이 필요한 컨테이너는 다른 장치에 액세스하지 않고도 해당 장치를 완전히 제어할 수 있습니다.