파드 보안 표준
파드 수준에서 보안 모범 사례를 적용하도록 파드 보안 표준을 사용하세요.
파드 보안 표준은(는) CoddyKit의 무료 DevOps Bootcamp 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 DevOps Bootcamp 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. DevOps Bootcamp 강의에는 총 4개의 강의가 포함되어 있습니다.
PSS란 무엇입니까?
Kubernetes Pod 보안 표준(PSS)은 Pod에 보안 모범 사례를 적용하기 위한 지침과 제어 기능의 모음입니다.
Pod가 수행할 수 있는 작업을 제한하여 일반적인 보안 취약점과 권한 상승 공격으로부터 클러스터를 보호하는 데 도움이 됩니다.
Pod를 위한 보안 점검 목록이라고 생각하시면 됩니다!
세 가지 보안 수준
PSS는 서로 다른 수준의 보호 기능을 제공하는 세 가지 보안 수준을 정의합니다.
- Privileged: 제한이 없어 가장 안전하지 않습니다.
- Baseline: 알려진 권한 상승을 방지합니다.
- Restricted: 강화된 보안 모범 사례를 적용합니다.
이 수준은 누적됩니다. 즉 Restricted에는 모든 Baseline 보호 기능이 포함되고, Baseline에는 모든 Privileged 수준이 포함됩니다(정확히는 제한이 없습니다).
Privileged: 제한 없는 액세스
Privileged PSS 수준은 제한 없는 보안 정책을 제공합니다.
이 정책으로 실행되는 Pod는 어떤 기능이든 요청할 수 있으며 호스트의 리소스와 namespace에 완전히 액세스할 수 있습니다. 이는 호스트 머신에서 root로 실행하는 것과 유사합니다.
일반적으로 매우 안전하지 않은 방식으로 간주되며, 이러한 액세스가 반드시 필요한 시스템 수준 작업에만 사용해야 합니다.
Baseline: 공격 방지
Baseline PSS 수준은 알려진 권한 상승을 방지하는 것을 목표로 합니다.
대부분의 사용자가 정의한 애플리케이션에 적합한 시작점입니다.
주요 제한 사항은 다음과 같습니다.
- 권한 있는 컨테이너를 사용할 수 없습니다.
- hostPath 볼륨을 사용할 수 없습니다(특정 안전한 유형 제외).
- 호스트 네트워킹 또는 PID namespace 공유를 사용할 수 없습니다.
- 사용 가능한 기능이 제한됩니다.
이 수준은 일반적인 공격 경로를 많이 완화하는 데 도움이 됩니다.
Restricted: 강화된 보안
Restricted PSS 수준은 강화된 보안 모범 사례를 적용합니다.
보안에 매우 민감한 애플리케이션을 위해 설계되었으며 Pod가 최소 권한으로 실행되도록 요구합니다.
Restricted는 Baseline의 제한 사항에 더해 다음을 적용합니다.
- root가 아닌 사용자로 실행합니다.
- 모든 Linux 기능을 제거하고 필요한 특정 기능만 추가합니다.
seccomp및AppArmor프로필을 사용하도록 요구합니다.
가장 안전하고 엄격한 PSS 수준입니다.
Admission을 통한 PSS 적용
Pod 보안 표준은 Pod 보안 Admission이라는 Kubernetes 기능을 사용하여 적용합니다.
이 Admission 컨트롤러는 Pod 생성 요청을 가로채고, 해당 Pod의 네임스페이스에 구성된 PSS 수준에 따라 요청을 검사합니다.
네임스페이스에 특정 레이블을 추가하여 PSS 수준을 적용할 수 있습니다. 예를 들면 다음과 같습니다.
kubectl label namespace <namespace-name> pod-security.kubernetes.io/enforce=restrictedPod 보안 제어
Pod를 PSS에 맞게 구성하려면 Pod 정의에서 securityContext 필드를 자주 사용합니다.
이 필드를 사용하면 Pod 또는 Pod 내부의 개별 컨테이너에 대한 권한 및 접근 제어 설정을 정의할 수 있습니다.
일반적인 설정은 다음과 같습니다.
runAsUser: 컨테이너 프로세스의 사용자 ID를 지정합니다.allowPrivilegeEscalation: 프로세스가 부모 프로세스보다 더 많은 권한을 얻지 못하게 합니다.capabilities: Linux 기능을 관리합니다.
안전하지 않은 Pod 예시
보안 컨텍스트 때문에 기준선 PSS를 위반하는 Pod 정의를 살펴보겠습니다. 일반적으로 안전하지 않은 구성입니다.
apiVersion: v1
kind: Pod
metadata:
name: unsafe-pod
spec:
containers:
- name: my-container
image: nginx
securityContext:
privileged: true
# This allows the container to run with root capabilities
# and access host devices directly.
# Violates Baseline PSS.기준선 준수 Pod 예시
기준선 PSS 수준을 준수하는 Pod를 정의하는 방법은 다음과 같습니다. privileged: true 및 기타 제한 설정이 없다는 점에 주목하시기 바랍니다.
더 엄격한 제한됨 수준을 준수하려면 runAsNonRoot: true, readOnlyRootFilesystem: true를 추가하고 모든 기능을 제거해야 합니다.
apiVersion: v1
kind: Pod
metadata:
name: safe-pod
spec:
containers:
- name: my-container
image: nginx
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
# This Pod runs with minimal privileges and
# adheres to the Baseline PSS.PSS 빠른 확인
Pod 보안 표준(PSS)에 대한 다음 설명 중 TRUE인 것은 무엇입니까?
복습: Pod 보안 표준
이 레슨에서는 Kubernetes Pod 보안 표준(PSS)과 클러스터 보안에서의 중요성을 배웠습니다.
- PSS는 특권, 기준선, 제한됨의 세 가지 수준을 정의합니다.
- 기준선은 알려진 권한 상승을 방지하므로 대부분의 앱에 적합합니다.
- 제한됨은 최소 권한을 요구하여 강화된 보안을 적용합니다.
securityContext필드를 사용하면 PSS를 준수하도록 Pod를 구성할 수 있습니다.
PSS를 적용하는 것은 더 안전한 Kubernetes 환경을 구축하기 위한 중요한 단계입니다!
자주 묻는 질문
“파드 보안 표준” 강의는 무료인가요?
네 — “파드 보안 표준” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 DevOps Bootcamp 강의 전체를 잠금 해제할 수 있습니다. DevOps Bootcamp 강의에는 총 4개의 강의가 포함되어 있습니다.
“파드 보안 표준”에서 뭘 배우나요?
파드 수준에서 보안 모범 사례를 적용하도록 파드 보안 표준을 사용하세요. 브라우저에서 직접 실행하는 실습 코드로 DevOps Bootcamp을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
DevOps Bootcamp을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 DevOps Bootcamp은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.
“파드 보안 표준” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 DevOps Bootcamp 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 DevOps Bootcamp 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.