Kubernetes Security 완벽 가이드! RBAC·Pod Security·Network 보안 구조 이해하기

Kubernetes는 여러 Application과 사용자가 하나의 Cluster를 공유하는 구조입니다.

따라서 단순히 Application을 실행하는 것뿐만 아니라 누가 어떤 권한을 가지고 있고, 어떤 Resource에 접근할 수 있는지 관리하는 보안 체계가 필요합니다.

예:

개발자 접근

API Server 요청

권한 확인

Resource 접근 허용 또는 차단

Kubernetes Security는 Authentication, Authorization, Admission Control, Network Security, Container Security 등 여러 계층으로 구성됩니다.

보안 영역역할
Authentication사용자 확인
Authorization권한 관리
RBACResource 접근 제어
Pod SecurityContainer 보호
NetworkPolicyTraffic 제한
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 권한
ClusterRoleBindingCluster 권한 연결

사용자별 권한을 세밀하게 관리할 수 있습니다.

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 SecurityContainer 보호
NetworkPolicyNetwork 보호
Audit Log감사 기록

Kubernetes Security 구조를 이해하면 Enterprise 환경에서 안전하고 안정적인 Cluster 운영 체계를 구축할 수 있습니다.

다음 글에서는 Kubernetes Container 보안 영역인 Kubernetes Image Security 완벽 가이드! Container Image 취약점 분석과 안전한 배포 구조 이해하기를 진행하겠습니다.

댓글 남기기