3장. 컨테이너 보안

3.1. 컨테이너 보안 이해

컨테이너화된 애플리케이션은 여러 수준의 보안에 의존합니다.

  • 컨테이너 보안은 신뢰할 수 있는 기본 컨테이너 이미지로 시작하며 CI/CD 파이프라인에 따라 진행하면서 컨테이너 빌드 프로세스를 계속합니다.

    중요

    기본적으로 이미지 스트림은 자동으로 업데이트되지 않습니다. 이 기본 동작은 이미지 스트림에서 참조하는 이미지에 대한 보안 업데이트가 자동으로 발생하지 않기 때문에 보안 문제가 발생할 수 있습니다. 이 기본 동작을 재정의하는 방법에 대한 자세한 내용은 주기적으로 imagestreamtag 가져오기 구성 을 참조하십시오.

  • 배포된 컨테이너의 보안은 컨테이너가 보안 운영 체제 및 네트워크에서 실행 중이며 컨테이너와 상호 작용하는 사용자 및 호스트와 컨테이너 자체 사이에 확실한 경계가 설정되어 있는지에 따라 결정됩니다.
  • 컨테이너 이미지에서 취약점을 스캔하고 취약한 이미지를 효율적으로 수정 및 교체하는 기능이 있어야 지속적인 보안이 가능합니다.

OpenShift Container Platform과 같은 플랫폼이 기본적으로 제공하는 보안 외에도 조직에는 자체 보안 요구 사항이 있습니다. OpenShift Container Platform을 데이터 센터로 가져오려면 일정 수준의 컴플라이언스 확인이 필요할 수 있습니다.

마찬가지로 조직의 보안 표준을 충족하기 위해 자체 에이전트, 특수 하드웨어 드라이버 또는 암호화 기능을 OpenShift Container Platform에 추가해야 할 수도 있습니다.

이 가이드에서는 호스트 계층, 컨테이너 및 오케스트레이션 계층, 빌드 및 애플리케이션 계층의 솔루션을 포함하여 OpenShift Container Platform에서 사용 가능한 컨테이너 보안 조치의 수준 높은 검토 단계를 제공합니다. 그런 다음 보안 조치를 달성하는 데 도움이 되는 특정 OpenShift Container Platform 설명서를 표시합니다.

이 안내서에는 다음 정보가 포함되어 있습니다.

  • 컨테이너 보안이 중요한 이유 및 기존 보안 표준과의 비교
  • 호스트(RHCOS 및 RHEL) 계층에서 제공하는 컨테이너 보안 조치와 OpenShift Container Platform에서 제공하는 컨테이너 보안 조치
  • 컨테이너 콘텐츠 및 취약점의 소스를 평가하는 방법
  • 컨테이너 콘텐츠를 사전 예방식으로 확인하기 위해 빌드 및 배포 프로세스를 디자인하는 방법
  • 인증 및 권한 부여를 통해 컨테이너에 대한 액세스를 제어하는 방법
  • OpenShift Container Platform에서 네트워킹 및 연결된 스토리지를 보호하는 방법
  • API 관리 및 SSO에 사용하는 컨테이너화된 솔루션

이 가이드의 목표는 컨테이너화된 워크로드에 OpenShift Container Platform을 사용하여 얻을 수 있는 뛰어난 보안 이점과 Red Hat 에코시스템을 통해 컨테이너를 안전하게 만들고 유지하는 방법을 이해하는 것입니다. 또한 조직의 보안 목표를 달성하기 위해 OpenShift Container Platform에 참여하는 방법을 이해하는 데 도움이 됩니다.

3.1.1. 컨테이너 정의

컨테이너에서는 애플리케이션과 모든 종속 항목을 변경하지 않고 개발에서 테스트 및 프로덕션으로 승격할 수 있는 단일 이미지로 패키징합니다. 컨테이너는 다른 컨테이너와 밀접하게 작동하는 더 큰 애플리케이션의 일부일 수 있습니다.

컨테이너에서는 물리 서버, 가상 머신(VM) 및 프라이빗 또는 퍼블릭 클라우드와 같은 환경 및 여러 배치 대상 사이에 일관성을 제공합니다.

컨테이너를 사용하면 다음과 같은 이점이 있습니다.

인프라애플리케이션

공유 Linux 운영 체제 커널의 샌드박스 애플리케이션 프로세스

내 애플리케이션 및 모든 종속 항목 패키징

가상 머신보다 단순하고 가벼우며 밀도가 높음

몇 초 안에 모든 환경에 배포하고 CI/CD 활성화

다양한 환경에 이식 가능

컨테이너화된 구성요소에 쉽게 액세스 및 공유

Linux 컨테이너에 관한 자세한 내용은 Red Hat Customer Portal의 Linux 컨테이너 이해를 참조하십시오. RHEL 컨테이너 툴에 관해 알아보려면 RHEL 제품 설명서의 컨테이너 빌드, 실행 및 관리를 참조하십시오.

3.1.2. OpenShift Container Platform의 정의

컨테이너화된 애플리케이션이 배포, 실행 및 관리되는 방식을 자동화하는 것이 OpenShift Container Platform과 같은 플랫폼의 역할입니다. OpenShift Container Platform의 핵심은 쿠버네티스 프로젝트를 사용하여 확장 가능한 데이터 센터의 여러 노드에서 컨테이너를 조정하는 엔진을 제공하는 것입니다.

쿠버네티스는 프로젝트에서 지원 가능성을 보장하지 않는 여러 다른 운영 체제 및 애드온 구성요소를 사용하여 실행할 수 있는 프로젝트입니다. 결과적으로 쿠버네티스 플랫폼마다 보안이 다를 수 있습니다.

OpenShift Container Platform은 쿠버네티스 보안을 잠그고 다양한 확장 구성요소와 플랫폼을 통합하도록 설계되었습니다. 이를 위해 OpenShift Container Platform에서는 운영 체제, 인증, 스토리지, 네트워킹, 개발 툴, 기본 컨테이너 이미지 및 기타 여러 구성요소를 포함하는 광범위한 오픈소스 기술의 Red Hat 에코 시스템을 활용합니다.

OpenShift Container Platform은 플랫폼에서 실행 중인 컨테이너화된 애플리케이션 외에도 플랫폼 자체의 취약점을 발견하고 신속하게 수정 사항을 배포하는 Red Hat의 환경을 활용할 수 있습니다. Red Hat 환경에서는 새로운 구성요소가 사용 가능하게 되면 OpenShift Container Platform과 효율적으로 통합하고 개별 고객 요구 사항에 맞게 기술을 조정하는 범위까지 기능이 확장됩니다.