보안 (Security)
보안 (Security)
클라우드 네이티브 워크로드를 안전하게 유지하기 위한 개념입니다.
Kubernetes 문서의 이 섹션은 워크로드를 더 안전하게 실행하는 방법과, Kubernetes 클러스터를 안전하게 유지하기 위한 필수 측면을 배우는 데 목적이 있습니다.
Kubernetes는 클라우드 네이티브 아키텍처를 기반으로 하며, 클라우드 네이티브 정보 보안에 대한 모범 사례에 관한 CNCF의 조언을 적용합니다.
클러스터와 그 위에서 실행 중인 애플리케이션을 어떻게 보호할지에 대한 더 넓은 맥락은 Cloud Native Security and Kubernetes 문서를 읽어보세요.
Kubernetes 보안 메커니즘
Kubernetes는 여러 API와 보안 제어 장치를 포함하며, 정보 보안을 관리하는 방식의 일부를 구성할 수 있는 정책을 정의하는 방법도 제공합니다.
컨트롤 플레인 보호
Kubernetes 클러스터의 핵심 보안 메커니즘은 Kubernetes API에 대한 접근 제어입니다.
Kubernetes는 TLS를 구성하고 사용하여 컨트롤 플레인 내부와 컨트롤 플레인과 그 클라이언트 사이에서 전송 중 데이터 암호화를 제공할 것을 요구합니다. 또한 Kubernetes 컨트롤 플레인 내에 저장된 데이터에 대해 저장 데이터 암호화를 활성화할 수도 있는데, 이는 여러분의 워크로드 데이터에 대한 자체 저장 데이터 암호화와는 별개입니다(후자도 좋은 생각일 수 있습니다).
시크릿 (Secrets)
Secret API는 기밀성이 필요한 구성 값에 대한 기본적인 보호를 제공합니다.
워크로드 보호
Pod 보안 표준을 적용하여 Pod와 그 컨테이너가 적절히 격리되도록 보장할 수 있습니다. 필요하다면 RuntimeClasses를 사용해 사용자 지정 격리를 정의할 수도 있습니다.
네트워크 정책을 사용하면 Pod 사이, 또는 Pod와 클러스터 외부 네트워크 사이의 네트워크 트래픽을 제어할 수 있습니다.
더 넓은 생태계에서 보안 제어 장치를 배포하여 Pod, 그 컨테이너, 그리고 그 안에서 실행되는 이미지 주변에 사전 예방적 또는 탐지적 제어 장치를 구현할 수 있습니다.
어드미션 컨트롤
어드미션 컨트롤러는 Kubernetes API 요청을 가로채고, 요청의 특정 필드를 기반으로 요청을 검증하거나 변경할 수 있는 플러그인입니다. 이러한 컨트롤러를 신중하게 설계하면 Kubernetes API가 버전 업데이트에 따라 변경될 때 의도하지 않은 중단을 피하는 데 도움이 됩니다. 설계 고려 사항은 Admission Webhook 모범 사례를 참조하세요.
감사 (Auditing)
Kubernetes 감사 로깅은 클러스터에서의 일련의 동작을 문서화하는, 보안과 관련된 시간순 레코드 집합을 제공합니다. 클러스터는 사용자, Kubernetes API를 사용하는 애플리케이션, 그리고 컨트롤 플레인 자체가 생성한 활동을 감사합니다.
클라우드 제공업체 보안
참고: 이 페이지의 항목은 Kubernetes 외부의 공급업체를 가리킵니다. Kubernetes 프로젝트 저자는 해당 제3자 제품이나 프로젝트에 대해 책임을 지지 않습니다. 이 목록에 공급업체, 제품, 프로젝트를 추가하려면 변경 사항을 제출하기 전에 콘텐츠 가이드를 읽어보세요. 자세한 내용.
자체 하드웨어나 다른 클라우드 제공업체에서 Kubernetes 클러스터를 실행한다면 보안 모범 사례에 대해 해당 문서를 참조하세요. 인기 있는 클라우드 제공업체의 보안 문서 링크를 정리했습니다.
| IaaS 제공업체 | 링크 |
|---|---|
| Alibaba Cloud | https://www.alibabacloud.com/trust-center |
| Amazon Web Services | https://aws.amazon.com/security |
| Google Cloud Platform | https://cloud.google.com/security |
| Huawei Cloud | https://www.huaweicloud.com/intl/en-us/securecenter/overallsafety |
| IBM Cloud | https://www.ibm.com/cloud/security |
| Microsoft Azure | https://docs.microsoft.com/en-us/azure/security/azure-security |
| Oracle Cloud Infrastructure | https://www.oracle.com/security |
| Tencent Cloud | https://www.tencentcloud.com/solutions/data-security-and-information-protection |
| VMware vSphere | https://www.vmware.com/solutions/security/hardening-guides |
정책 (Policies)
NetworkPolicy(네트워크 패킷 필터링에 대한 선언적 제어) 또는 ValidatingAdmissionPolicy(Kubernetes API를 사용해 누군가 할 수 있는 변경에 대한 선언적 제한) 같은 Kubernetes 네이티브 메커니즘을 사용해 보안 정책을 정의할 수 있습니다.
하지만 Kubernetes 주변의 더 넓은 생태계에서 제공하는 정책 구현에 의존할 수도 있습니다. Kubernetes는 소스 코드 리뷰, 컨테이너 이미지 승인, API 접근 제어, 네트워킹 등에 대한 자체 정책 제어를 구현할 수 있도록 생태계 프로젝트에 확장 메커니즘을 제공합니다.
정책 메커니즘과 Kubernetes에 대한 자세한 내용은 정책 (Policies)을 읽어보세요.
다음 단계
관련 Kubernetes 보안 주제를 알아보세요.
-
Kubernetes의 알려진 취약점(및 추가 정보 링크)
-
컨트롤 플레인의 전송 중 데이터 암호화
-
Pod용 네트워크 정책
-
RuntimeClasses 맥락을 알아보세요.
-
Cloud Native Security and Kubernetes 자격증을 취득하세요.
-
Certified Kubernetes Security Specialist 자격증 및 공식 교육 과정. 이 섹션에서 더 읽어보세요.
-
Kubernetes API 접근 제어 (Controlling Access to the Kubernetes API)
-
Kubernetes 시크릿 모범 사례 (Good practices for Kubernetes Secrets)
-
강화 가이드 - 인증 메커니즘 (Hardening Guide - Authentication Mechanisms)
-
강화 가이드 - 동적 리소스 할당 (Hardening Guide - Dynamic Resource Allocation)
-
강화 가이드 - 스케줄러 구성 (Hardening Guide - Scheduler Configuration)
-
Kubernetes API 서버 우회 위험 (Kubernetes API Server Bypass Risks)
-
Pod와 컨테이너를 위한 Linux 커널 보안 제약 (Linux kernel security constraints for Pods and containers)
이 페이지의 항목은 Kubernetes에 필요한 기능을 제공하는 제3자 제품이나 프로젝트를 가리킵니다. Kubernetes 프로젝트 저자는 해당 제3자 제품이나 프로젝트에 대해 책임을 지지 않습니다. 자세한 내용은 CNCF 웹사이트 가이드라인을 참조하세요.
제3자 링크를 추가하는 변경 사항을 제안하기 전에 콘텐츠 가이드를 읽어야 합니다.