반응형

RKE2는 기업과 정부 기관을 위한 보안 최적화 쿠버네티스입니다. CIS 준수부터 군용급 암호화까지, 안전한 인프라를 위한 핵심 기능을 소개합니다.
CIS 벤치마크 자동 통과
RKE2는 기본 설정만으로 CIS Kubernetes 벤치마크를 충족합니다.
| RKE2 버전 | 대응 CIS 벤치마크 | 프로필 설정 |
|---|---|---|
| 1.27+ | v1.9 | profile: "cis" |
| 1.26 | v1.8 | profile: "cis" |
| 1.25 | v1.7 | profile: "cis" |
| 1.24 이하 | v1.24 | profile: "cis-1.23" |
주요 자동화 항목
- Pod Security Admission(PSA) 제한 모드 적용
- 네트워크 정책 자동 구성
- 불필요 API 비활성화
- etcd 사용자 및 그룹 권한 설정
- kubelet 보안 매개변수 자동 적용
CIS 프로필 설정 방법
# /etc/rancher/rke2/config.yaml
profile: "cis"
selinux: true
secrets-encryption: true
protect-kernel-defaults: true수동 설정 필요 항목
# etcd 사용자 생성 (CIS 요구사항)
sudo useradd -r -c "etcd user" -s /sbin/nologin -M etcd -U
# 커널 매개변수 설정
echo 'vm.panic_on_oom=0' >> /etc/sysctl.d/90-kubelet.conf
echo 'vm.overcommit_memory=1' >> /etc/sysctl.d/90-kubelet.conf
echo 'kernel.panic=10' >> /etc/sysctl.d/90-kubelet.conf
echo 'kernel.panic_on_oops=1' >> /etc/sysctl.d/90-kubelet.conf
sysctl -p /etc/sysctl.d/90-kubelet.conf
# 디렉토리 권한 설정
sudo chmod 700 /var/lib/rancher/rke2/server/dbFIPS 140-2 암호화 준수
미 연방 표준 FIPS 140-2를 충족해 정부·금융권에 적합합니다.
적용 범위
- 컨트롤 플레인: kube-apiserver, etcd, containerd
- 런타임: runc, crictl
- 네트워킹: Canal(기본 CNI)
- Ingress: NGINX Controller
검증 방식
- BoringCrypto 모듈 사용 (NIST 인증)
- 모든 컴포넌트 정적 링크로 빌드
- FIPS 검증된 OpenSSL 사용
FIPS 모드 활성화
# /etc/rancher/rke2/config.yaml
fips: true
profile: "cis"FIPS 준수 확인
# Go 컴파일러 FIPS 모드 확인
rke2 --version | grep BoringCrypto
# 암호화 모듈 검증
openssl version
cat /proc/sys/crypto/fips_enabled # 1이면 FIPS 활성화SELinux 강제 정책
보안 강화 리눅스 환경을 완벽 지원합니다.
설정 방법
# 1. rke2-selinux 패키지 설치
sudo yum install -y rke2-selinux # RHEL/CentOS
sudo dnf install -y rke2-selinux # Fedora
# 2. SELinux 정책 설정
sudo setenforce 1
sudo sed -i 's/^SELINUX=.*/SELINUX=enforcing/' /etc/selinux/config# 3. /etc/rancher/rke2/config.yaml에 추가
selinux: true
profile: "cis"# 4. 노드 재부팅
sudo reboot특징
- rke2_service_db_t 커스텀 레이블로 최소 권한 원칙 적용
- 컨테이너 런타임과 호스트 시스템 완전 분리
- 네트워크 정책과 연동한 다층 보안
SELinux 상태 확인
# SELinux 상태 확인
getenforce
sestatus
# RKE2 관련 SELinux 컨텍스트 확인
ls -Z /var/lib/rancher/rke2/
ps -eZ | grep rke2시크릿 데이터 암호화
etcd에 저장되는 민감 정보를 AES-CBC 256비트로 암호화합니다.
자동 설정
- RKE2 시작 시 암호화 키 생성
- EncryptionConfiguration 파일 배포
- 모든 시크릿 객체 암호화 저장
암호화 설정 확인
# 암호화 상태 확인
sudo rke2 secrets-encrypt status
# 암호화 설정 파일 확인
sudo cat /var/lib/rancher/rke2/server/cred/encryption-config.json키 회전 절차
# 1. 새 암호화 키 준비
sudo rke2 secrets-encrypt prepare
# 2. kube-apiserver 재시작
sudo systemctl restart rke2-server
# 3. 키 회전 실행
sudo rke2 secrets-encrypt rotate
# 4. 재암호화 수행
sudo rke2 secrets-encrypt reencrypt
# 5. 상태 확인
sudo rke2 secrets-encrypt status고가용성 환경에서의 키 회전
# HA 클러스터에서 순차적 재시작
# 마스터 노드 1에서 실행
sudo rke2 secrets-encrypt rotate-keys
# 각 마스터 노드 순차 재시작
sudo systemctl restart rke2-server # 노드 1
# 완료 후 노드 2, 3 순서대로 재시작
* 중요: 키 분실 시 데이터 복구 불가 → 반드시 백업 필수
Pod 보안 표준 강화
PSA(Pod Security Admission)를 통해 제한된 권한의 컨테이너만 실행합니다.
| Privileged | 비CIS 프로필 전체 | 모든 기능 허용 |
| Restricted | CIS 프로필 (kube-system 제외) | root 실행·호스트 접근 금지 |
Pod Security Standards 설정
# CIS 프로필에서 자동 적용되는 PSA 설정
apiVersion: apiserver.config.k8s.io/v1
kind: AdmissionConfiguration
plugins:
- name: PodSecurity
configuration:
apiVersion: pod-security.admission.config.k8s.io/v1beta1
kind: PodSecurityConfiguration
defaults:
enforce: "restricted"
enforce-version: "latest"
audit: "restricted"
audit-version: "latest"
warn: "restricted"
warn-version: "latest"
exemptions:
usernames: []
runtimeClasses: []
namespaces: [kube-system, cis-operator-system, tigera-operator]네임스페이스별 보안 정책
# 네임스페이스 보안 레이블 확인
kubectl get namespaces --show-labels
# 특정 네임스페이스에 보안 정책 적용
kubectl label namespace production \
pod-security.kubernetes.io/enforce=restricted \
pod-security.kubernetes.io/audit=restricted \
pod-security.kubernetes.io/warn=restricted네트워크 보안 정책
Calico 네트워크 정책 자동 적용
# CIS 프로필에서 자동 생성되는 기본 네트워크 정책
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: default-deny-all
namespace: default
spec:
podSelector: {}
policyTypes:
- Ingress
- Egress마이크로세그멘테이션 구현
# 애플리케이션별 네트워크 분리
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: web-to-db-policy
namespace: production
spec:
podSelector:
matchLabels:
app: database
policyTypes:
- Ingress
ingress:
- from:
- podSelector:
matchLabels:
app: web
ports:
- protocol: TCP
port: 3306감사 로깅 및 모니터링
감사 정책 설정
# /etc/rancher/rke2/audit-policy.yaml
apiVersion: audit.k8s.io/v1
kind: Policy
rules:
- level: Metadata
namespaces: ["kube-system", "kube-public"]
verbs: ["get", "list", "watch"]
- level: RequestResponse
resources:
- group: ""
resources: ["secrets", "configmaps"]
- level: Request
users: ["admin", "system:admin"]# /etc/rancher/rke2/config.yaml에 감사 설정 추가
audit-policy-file: /etc/rancher/rke2/audit-policy.yaml
kube-apiserver-arg:
- "audit-log-maxage=30"
- "audit-log-maxbackup=10"
- "audit-log-maxsize=100"
- "audit-log-path=/var/lib/rancher/rke2/server/logs/audit.log"보안 모니터링
# Falco 보안 모니터링 설치
helm repo add falcosecurity https://falcosecurity.github.io/charts
helm install falco falcosecurity/falco \
--namespace falco-system \
--create-namespace
# Trivy 취약점 스캔
kubectl apply -f https://raw.githubusercontent.com/aquasecurity/trivy-operator/main/deploy/static/trivy-operator.yaml마무리
RKE2는 보안을 최우선으로 설계된 쿠버네티스 배포판입니다. CIS·FIPS·SELinux를 통해 기업의 규정 준수 부담을 70% 이상 줄일 수 있습니다. 지금 바로 profile: cis 설정으로 첫 보안 클러스터를 시작해보세요.
핵심 포인트:
- CIS 벤치마크 자동 통과로 규정 준수 간소화
- FIPS 140-2 암호화로 정부·금융권 요구사항 충족
- SELinux 강제 정책으로 다층 보안 구현
- 시크릿 암호화로 민감 데이터 보호
- Pod Security Standards로 컨테이너 보안 강화
RKE2의 보안 기능을 통해 제로 트러스트 아키텍처를 구현하고, 엔터프라이즈급 보안 요구사항을 만족하는 쿠버네티스 환경을 구축할 수 있습니다.
반응형
'IT기술 > 쿠버네티스 (k8s)' 카테고리의 다른 글
| RKE2 스토리지 완벽 가이드: 로컬부터 분산 스토리지까지 모든 환경 대응 전략 (0) | 2025.07.11 |
|---|---|
| RKE1 vs RKE2 CNI 플러그인 완벽 가이드: 쿠버네티스 네트워킹의 미래를 선택하는 방법 (2) | 2025.07.10 |
| RKE2 v1.30.4 클러스터 10분 구축 가이드: AWS EC2로 프로덕션급 쿠버네티스 환경 만들기 (2) | 2025.07.08 |
| RKE2 설치 완벽 가이드: Ubuntu와 Rocky Linux 환경별 구축 방법 (6) | 2025.07.08 |
| RKE2 설치 필수 요구사항 완벽 가이드: 성공적인 쿠버네티스 클러스터 구축 (0) | 2025.07.07 |