쿠버네티스 RBAC 보안 (Kubernetes RBAC Security)
쉽게 풀면
쿠버네티스는 여러 컨테이너를 대규모로 운영하고 관리해주는 시스템인데, 이를 다루는 사람마다 할 수 있는 일을 다르게 정해줄 필요가 있습니다. RBAC은 회사에서 직급이나 부서에 따라 결재 권한이나 출입 권한을 다르게 부여하는 것과 비슷합니다. 신입사원에게는 서류 열람만 허용하고, 팀장에게는 승인 권한까지 주는 식으로 역할에 따라 할 수 있는 일을 나눠 놓으면, 실수나 악용으로 인한 피해 범위를 줄일 수 있습니다.
왜 중요한가
클라우드 및 가상화 보안 연구에서는 쿠버네티스 클러스터가 여러 팀과 서비스가 공유하는 대규모 인프라이기 때문에, 접근 권한 관리가 허술하면 한 컴포넌트의 침해가 클러스터 전체로 확산될 위험이 크다고 봅니다. RBAC 설정을 올바르게 구성하고 검증하는 것은 컨테이너 오케스트레이션 보안의 핵심 과제로 다뤄집니다.
논문에서는 이렇게 쓰입니다
운영 환경에서의 RBAC 설정 실태를 조사한 연구를 설명하는 예문입니다.
권한 오남용 가능성을 자동으로 찾아내는 기법을 설명하는 예문입니다.
조금 더 깊게 보면
쿠버네티스 RBAC은 역할(Role, ClusterRole)과 이를 사용자나 서비스 계정에 연결하는 바인딩(RoleBinding, ClusterRoleBinding)으로 구성됩니다. 특정 네임스페이스에만 적용되는 역할과 클러스터 전체에 적용되는 역할을 구분해 관리할 수 있으며, 서비스 계정에 과도한 권한이 부여되면 해당 계정을 탈취당했을 때 피해가 커질 수 있습니다. 최소 권한 원칙에 따라 필요한 리소스와 동작만 허용하는 것이 권장됩니다.
주의할 점
기본 설정이나 예제 설정을 그대로 운영 환경에 사용하면 의도보다 넓은 권한이 부여되어 있을 수 있어 별도의 검토가 필요합니다. 역할과 바인딩의 관계가 복잡해질수록 전체 권한 구조를 파악하기 어려워질 수 있습니다.