컨테이너/K8s 진단 - K8s RBAC 과도 권한
점검 결과
| Role/ServiceAccount | 바인딩 대상 | 권한 | 평가 |
|---|
| developer-role | Group: developers | cluster-admin | 위험! |
| app-deploy | SA: app-namespace | * | 위험! |
| readonly-user | User: viewer | read | 안전 |
과도한 RBAC 정책
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: developer-admin
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: Group
name: developers
apiGroup: rbac.authorization.k8s.io
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: app-deploy
rules:
- apiGroups: ["*"]
resources: ["*"]
verbs: ["*"]
[문제점]
1. cluster-admin 역할 사용
-> 모든 리소스에 모든 권한
-> 클러스터 삭제/수정 가능
2. apiGroups/resources/verbs: "*"
-> 모든 작업 가능
-> 임시 관리자와 동일
[공격 영향]
1. 개발자 자격증명 탈취시 클러스터 전체 제어
2. 상승된 권한으로 데이터 수정/삭제
3. 다른 Pod/네임스페이스 접근
4. Kubernetes API 서버 제어
조치 가이드
- cluster-admin 제거: 최고 권한 역할 사용 금지
- 최소 권한 원칙: 필요한 리소스와 작업만
- 네임스페이스 격리: 롤 사용, 클러스터롤 사용 최소화
- 정기 감시: kubectl auth can-i 로 권한 검증