1.12 EKS 서비스 어카운트 관리
취약점 설명
서비스 어카운트 = 파드에 K8S RBAC 역할을 할당할 수 있는 특수한 유형의 개체
Cluster 내의 각 네임스페이스에 기본 서비스 어카운트가 자동으로 생성됨
쉽게 설명하면
01. "서비스 어카운트(SA)" 를 Pod 에 부여하여 "RBAC(역할 기반 접근 제어)" 를 수행한다.
02. 서비스어카운트에는 RBAC 정책과, 인증에 사용할 Token이 존재한다.
03. 별도의 서비스어카운트를 지정하지 않을경우 default 서비스 어카운트가 할당되며, Token은 특정 경로에 자동으로 마운트된다.
04. 토큰은 K8S API를 호출할때 인증에 쓰이며, 해당 어플리케이션이 K8S API를 호출할 일이 없을경우 Token을 쓸 일이 없다.
05. "automountServiceAccountToken" 속성을 false로 설정할 경우 불필요하게 SA 토큰을 자동으로 마운트하는 것을 방지할 수 있다.
딴소리
K8S 구조를 파악하는게 중요하다.
서비스, 파드, 클러스터, 시크릿, 인그레스 등 k8s에서 쓰이는 단어들의 쓰임을 확실히 알고 어떤 식으로 흘러가는지 공부해보면 감이 온다.
진단 방법
01. 사용자가 SA를 지정하지 않고 default SA를 쓸 경우에 automount를 방지하는 것이기 때문에 default SA의 설정 값을 확인한다.
kubectl get serviceaccount default -o yaml
* "automountServiceAccountToken" 옵션이 true로 활성화되어있는것을 확인 (취약)
양호 취약 기준
automountServiceAccountToken 옵션이 false로 비활성화 되어 있을 경우 -> 양호
automountServiceAccountToken 옵션이 true로 활성화되어 있을 경우 -> 취약
automountServiceAccountToken 옵션이 존재하지 않을 경우 (기본 값 : 활성화) -> 취약
참고

No comments to display
No comments to display