컨테이너 보안

GCP에서 컨테이너 환경을 안전하게 보호합니다.

개요

컨테이너화 덕분에 개발팀은 더욱 신속하게 움직이고 효율적으로 소프트웨어를 배포하며 전례 없는 수준의 확장성을 확보할 수 있게 되었습니다. 기업에서 생성되는 컨테이너식 작업 부하가 늘면서 빌드 및 배포 주기의 각 단계에 대한 보안 요소 통합 작업이 반드시 필요해졌습니다. 여기에서는 GCP에서 컨테이너 환경을 안전하게 보호하는 방법을 3가지 주요 영역으로 나누어 살펴봅니다.

인프라 보안

인프라 보안은 컨테이너 관리 플랫폼에서 적절한 보안 기능을 제공한다는 의미입니다. Kubernetes에는 사용자 신원, 기밀, 네트워크를 보호하는 보안 기능이 포함되어 있으며 Kubernetes Engine은 Cloud IAM, Cloud Audit Logging, 가상 사설 클라우드와 같은 기본 구성 GCP 기능을 사용하여 Google 최고의 보안 성능을 작업 부하에 적용합니다.

소프트웨어 공급망

소프트웨어 공급망의 보안을 강화하면 컨테이너 이미지를 안전하게 배포할 수 있게 됩니다. 이로써 컨테이너 이미지의 취약점이 사라지고 빌드하는 이미지가 배포 전에 수정되는 것을 방지할 수 있습니다.

런타임 보안

런타임 보안이 보장되면 프로덕션 단계에서 악의적으로 작동하는 컨테이너를 파악하여 워크로드를 보호하기 위한 조치를 취할 수 있습니다.

컨테이너를 실행하면 근본적으로 다른 보안 모델을 도입하는 것이 가능합니다.

보다 단순한 패치 관리 및 불변성

보다 단순한 패치 관리 및 불변성

컨테이너는 불변성을 가지므로 변경하려면 새 이미지를 배포해야 합니다. 이미지를 정기적으로 다시 빌드하는 방식으로 패치 관리를 간소화하면 차후 컨테이너 배포 시 패치를 선택할 수 있습니다. 정기적인 이미지 보안 검토를 통해 환경의 전반적인 상태를 파악하세요.

좁아진 공격 면적

좁아진 공격 면적

컨테이너는 더 많은 부분이 애플리케이션에 직접 패키징되어 있으므로 VM에 비해 훨씬 규모가 작은 호스트 OS에서 실행되는 것이 일반적입니다. 최소한의 호스트 OS 덕분에 작업 부하의 공격 가능 면적이 더 좁습니다.

리소스 및 워크로드 격리

리소스 및 워크로드 격리

컨테이너는 cgroup 및 네임스페이스를 사용하여 스토리지 볼륨과 같은 리소스를 특정 프로세스로 간편하게 격리할 수 있는 방법을 제공합니다. gVisor와 같은 기술을 통해 워크로드를 다른 애플리케이션과 별도로 VM 하위 샌드박스에 논리적으로 격리할 수 있습니다.

인프라 보안

컨테이너 인프라 보안을 위해서는 개발자가 컨테이너 방식의 서비스를 안전하게 빌드할 수 있는 도구를 갖추고 있어야 합니다. 이러한 기능은 일반적으로 Kubernetes와 같은 컨테이너 조정자에 내장되어 있다가 Kubernetes Engine을 사용하는 경우 다른 Google Cloud 기능과 더불어 기본 구성으로 사용 가능해집니다.

신원 확인 및 승인

Kubernetes Engine에서는 프로젝트 액세스 관리에 Cloud IAM을 사용하고, 클러스터 및 네임스페이스 액세스 관리에 역할 기반 액세스 제어(RBAC)를 사용합니다.

감사 로깅

Kubernetes에서는 API 감사 로그가 자동으로 캡처됩니다. Kubernetes Engine에서는 Cloud Audit Logging이 자동으로 API 감사 로그를 기록합니다.

네트워킹

Kubernetes Engine에서는 클러스터의 pod 간 통신을 관리하기 위한 네트워크 정책을 생성할 수 있습니다. 비공개 IP에 비공개 클러스터를 사용하고 공유 VPC에 Kubernetes Engine 리소스를 포함하세요.

규정 준수

Kubernetes Engine은 ISO 27001, ISO 27017, ISO 27108, HIPAA, PCI-DSS를 비롯한 여러 규정 준수 인증을 취득했습니다.

최소한의 호스트 OS

Kubernetes Engine은 용도에 맞춰 설계되고 컨테이너 실행에 최적화된 OS인 COS(컨테이너 최적화 OS)를 기본적으로 사용합니다. COS는 Google에서 오픈소스로 관리합니다.

구성 요소 업데이트

Kubernetes Engine에서는 마스터가 최신 Kubernetes 버전으로 자동 패치되며 사용자 노드에 노드 자동 업그레이드를 사용할 수 있습니다.

소프트웨어 공급망

소프트웨어 공급망을 갖추면 환경에 무엇이 배포되는지 정확하게 파악할 수 있어 코드에서 이미지, 배포에 이르기까지 애플리케이션 제어가 가능합니다. 이러한 기능은 일반적으로 CI/CD 파이프라인, 컨테이너 레지스트리(예: Google Container Registry)에 내장되어 있고 컨테이너를 프로덕션 단계로 배포하기 전 자격 확인 절차로 수행됩니다.

안전한 기본 이미지

Google Container Registry는 DebianUbuntu 기본 이미지를 모두 제공하며 이러한 이미지는 Google에서 정기적인 패치 및 테스트로 관리합니다.

취약점 스캔

Google Container Registry는 이미지와 패키지에 CVE 데이터베이스의 알려진 취약점이 있는지 검사하는 취약점 스캔 기능을 제공합니다.

배포 정책

Kubernetes Engine에서 Binary Authorization을 사용하면 이미지 증명을 기반으로 환경에 배포하는 항목을 제한할 수 있습니다.

정기 빌드

컨테이너는 정기적으로 다시 빌드하고 배포할 수 있으므로 사용자 환경에 대해 지속적으로 출시되는 최신 패치의 이점을 활용할 수 있습니다.

런타임 보안

컨테이너 런타임 보안을 확보하려면 보안 대응팀이 사용자 환경에서 실행되는 컨테이너의 보안 위협을 감지하고 이에 대응할 수 있어야 합니다. 이러한 기능은 일반적으로 보안 작업 도구에 내장되어 있습니다.

모니터링

Kubernetes Engine에는 Stackdriver가 통합되어 있어 간편한 로그 분석을 제공합니다. 또한 Cloud Security Command Center(Cloud SCC)에 보안 이벤트를 작성하는 것도 가능합니다.

이상 작업 감지

Aqua Security, Capsule8, StackRox, Sysdig Secure, Twistlock을 비롯한 Google 파트너를 활용하여 Cloud SCC에서 공격을 모니터링하고 결과를 확인할 수 있습니다.

격리

악성 컨테이너가 다른 컨테이너에 영향을 주지 않도록 하세요. 컨테이너 런타임 샌드박스인 gVisor를 사용하면 컨테이너를 안전하게 격리할 수 있습니다.

리소스

컨테이너 보안과 관련된 자세한 정보를 살펴보세요.

Google Cloud

시작하기

학습 및 빌드

GCP를 처음 사용하시나요? $300 크레딧으로 모든 GCP 제품을 무료로 시작해 보세요.

도움이 더 필요하신가요?

요구사항에 맞는 솔루션을 빌드하거나 파트너를 찾을 수 있도록 Google 전문가들이 도와 드립니다.