설명
네임스페이스의 default ServiceAccount를 여러 워크로드가 사용하면 같은 API 권한 주체를 공유하게 됩니다. 기본 계정이 관리자 권한을 갖는 것은 아니지만, 추가로 부여한 권한은 이 계정을 사용하는 워크로드에도 적용됩니다.
같은 계정을 사용한다고 모든 파드가 동일한 토큰 값을 공유하는 것은 아닙니다. 실제 RBAC 권한과 각 파드의 토큰 자동 마운트 필요성을 검토하세요.
잠재적 영향
- 하나의 워크로드에서 노출된 토큰이 공유 계정에 부여된 권한의 악용으로 이어질 수 있습니다.
- 워크로드별 권한 분리와 감사가 어려워질 수 있습니다.
해결 방법
- API 접근이 필요한 워크로드에는 전용 ServiceAccount와 최소 RBAC 권한을 구성하세요. 토큰이 필요하지 않은 파드는
automount_service_account_token = false로 설정하세요. - default ServiceAccount의 불필요한 권한과 토큰 자동 마운트를 제거하고 파드 설정의 우선 적용 여부를 확인하세요. 변경 후 새로 생성한 파드에서 실제 설정을 확인하세요.
예시
이미 존재하는 default ServiceAccount를 Terraform으로 관리하려면 먼저 가져와야 합니다. 두 예제는 계정 수준의 자동 마운트만 비교하며 전용 계정 전환이나 권한 회수는 수행하지 않습니다. 파드 수준 설정은 계정 설정보다 우선합니다.
변경 전
hcl
resource "kubernetes_service_account" "example" {
metadata {
name = "default"
}
automount_service_account_token = true
}
변경 후
hcl
resource "kubernetes_service_account" "example" {
metadata {
name = "default"
}
automount_service_account_token = false
}
설명:
- 변경 전: default 계정 수준에서 토큰 자동 마운트를 허용합니다. 실제 파드 설정과 API 접근 필요성을 확인해야 합니다.
- 변경 후: 계정 수준의 자동 마운트를 끕니다. 기존 파드의 토큰이나 RBAC 권한을 회수하는 설정은 아닙니다.