Kubernetes는 여러 Application과 사용자가 하나의 Cluster를 공유하는 구조입니다.
따라서 단순히 Application을 실행하는 것뿐만 아니라 누가 어떤 권한을 가지고 있고, 어떤 Resource에 접근할 수 있는지 관리하는 보안 체계가 필요합니다.
예:
개발자 접근
↓
API Server 요청
↓
권한 확인
↓
Resource 접근 허용 또는 차단
Kubernetes Security는 Authentication, Authorization, Admission Control, Network Security, Container Security 등 여러 계층으로 구성됩니다.
| 보안 영역 | 역할 |
|---|---|
| Authentication | 사용자 확인 |
| Authorization | 권한 관리 |
| RBAC | Resource 접근 제어 |
| Pod Security | Container 보호 |
| NetworkPolicy | Traffic 제한 |
| Secret | 민감 정보 보호 |
Security 구조를 이해하면 Enterprise Kubernetes 환경에서 안전한 Cluster 운영이 가능합니다.
Kubernetes Security가 필요한 이유
Kubernetes는 기본적으로 강력한 권한을 제공합니다.
하지만 잘못된 설정은 보안 위험으로 이어질 수 있습니다.
예:
모든 사용자에게 Admin 권한 부여
↓
잘못된 Deployment 삭제
↓
서비스 장애 발생
따라서 최소 권한 원칙(Least Privilege)이 필요합니다.
Kubernetes Security Architecture
전체 보안 구조:
User
↓
Authentication
↓
Authorization
↓
Admission Controller
↓
API Server
↓
Kubernetes Resource
요청이 여러 보안 단계를 통과한 후 실행됩니다.
Kubernetes Authentication이란?
Authentication은 사용자가 누구인지 확인하는 과정입니다.
방식:
- Certificate
- Token
- ServiceAccount
- External Identity Provider
예:
kubectl
↓
Certificate 확인
↓
사용자 인증
인증 성공 후 권한 검사가 진행됩니다.
Kubernetes Authorization이란?
Authorization은 인증된 사용자가 무엇을 할 수 있는지 결정합니다.
예:
User A:
Pod 조회 가능
Pod 삭제 불가능
User B:
Admin 권한
권한 제어 단계입니다.
Kubernetes RBAC(Role Based Access Control)
RBAC는 Kubernetes 권한 관리의 핵심 기능입니다.
구성:
| 요소 | 역할 |
|---|---|
| Role | 권한 정의 |
| RoleBinding | 사용자 연결 |
| ClusterRole | 전체 Cluster 권한 |
| ClusterRoleBinding | Cluster 권한 연결 |
사용자별 권한을 세밀하게 관리할 수 있습니다.
Kubernetes RBAC 동작 구조
예:
개발자
↓
RoleBinding
↓
Role
↓
Pod 조회 권한
권한이 연결되어야 접근 가능합니다.
Kubernetes Role 예시
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: developer-role
rules:
- apiGroups:
- ""
resources:
- pods
verbs:
- get
- list
Pod 조회 권한만 부여하는 예입니다.
Kubernetes ServiceAccount 보안
Pod가 Kubernetes API와 통신할 때 사용하는 Identity입니다.
예:
Application Pod
↓
ServiceAccount
↓
API Server 접근
Application별 권한 분리가 가능합니다.
Kubernetes Secret 보안
Secret은 민감 정보를 저장합니다.
대상:
- Password
- Token
- API Key
- Certificate
예:
Database Password
↓
Secret 저장
↓
Pod 연결
중요 정보는 일반 ConfigMap 대신 Secret을 사용합니다.
Kubernetes Pod Security
Pod Security는 Container 실행 권한을 제한합니다.
관리:
- Root 실행 제한
- Privileged Container 차단
- Host Network 제한
- Capability 제한
Container 탈취 위험을 줄입니다.
Kubernetes Pod Security Admission
현재 Kubernetes에서는 Pod Security Admission을 사용합니다.
보안 수준:
| Level | 설명 |
|---|---|
| Privileged | 제한 없음 |
| Baseline | 일반 보호 |
| Restricted | 강력한 보안 |
Production 환경에서는 Restricted 적용을 고려합니다.
Kubernetes Network Security
NetworkPolicy를 통해 Pod 간 통신을 제한합니다.
구조:
Pod A
↓
NetworkPolicy 확인
↓
Pod B 접근 허용/차단
Zero Trust Network 구현에 사용됩니다.
Kubernetes Container Image Security
Container Image도 보안 대상입니다.
관리:
- 취약점 Scan
- 신뢰할 수 있는 Registry 사용
- Image 서명
- 최신 Patch 적용
잘못된 Image는 보안 위험이 됩니다.
Kubernetes Security Context
Security Context는 Container 실행 보안을 설정합니다.
예:
securityContext:
runAsNonRoot: true
Root 권한 실행을 방지합니다.
Kubernetes Admission Controller
Admission Controller는 Resource 생성 전에 검증하는 단계입니다.
흐름:
kubectl 요청
↓
API Server
↓
Admission Controller
↓
Resource 생성
정책 적용에 활용됩니다.
Kubernetes Audit Logging
Audit Log는 Cluster 작업 기록을 저장합니다.
기록:
- 누가
- 언제
- 어떤 작업 수행
보안 분석과 감사에 중요합니다.
Kubernetes Security Monitoring
확인 항목:
- 비정상 API 요청
- 권한 변경
- Secret 접근
- Container 실행 권한
Security Monitoring과 연결합니다.
Kubernetes Zero Trust Architecture
Zero Trust 원칙:
“기본적으로 신뢰하지 않고 항상 검증”
Kubernetes 적용:
사용자 인증
↓
권한 확인
↓
Network 제한
↓
Container 보호
다중 보안 계층을 구성합니다.
Kubernetes Security 운영 전략
Production 환경:
RBAC 최소 권한 적용
↓
Secret 보호
↓
Pod Security 적용
↓
NetworkPolicy 적용
↓
Audit Logging 활성화
↓
정기 보안 점검
계층적인 보안 관리가 필요합니다.
Kubernetes Security 장점
| 장점 | 설명 |
|---|---|
| 접근 제어 | 권한 관리 |
| Container 보호 | 실행 제한 |
| Network 보호 | Traffic 제어 |
| 감사 가능 | 작업 추적 |
Security는 Kubernetes 운영의 핵심 기반입니다.
자주 묻는 질문
RBAC가 없으면 Kubernetes를 사용할 수 있나요?
가능하지만 Production 환경에서는 반드시 권한 관리가 필요합니다.
Secret은 완전히 암호화되어 있나요?
기본 설정에서는 추가 Encryption 설정이 필요할 수 있습니다.
NetworkPolicy와 RBAC 차이는 무엇인가요?
RBAC는 사용자 권한 관리, NetworkPolicy는 Pod Network 통제를 담당합니다.
마무리
Kubernetes Security는 인증, 권한 관리, Container 보호, Network 제어를 포함하는 다층 보안 구조입니다.
| 구성 요소 | 역할 |
|---|---|
| Authentication | 사용자 확인 |
| RBAC | 권한 제어 |
| Pod Security | Container 보호 |
| NetworkPolicy | Network 보호 |
| Audit Log | 감사 기록 |
Kubernetes Security 구조를 이해하면 Enterprise 환경에서 안전하고 안정적인 Cluster 운영 체계를 구축할 수 있습니다.
다음 글에서는 Kubernetes Container 보안 영역인 Kubernetes Image Security 완벽 가이드! Container Image 취약점 분석과 안전한 배포 구조 이해하기를 진행하겠습니다.