기본 ServiceAccount 권한과 토큰 자동 마운트 점검

워크로드별 권한을 분리하고 필요하지 않은 API 토큰은 자동 마운트하지 마세요.

설명

네임스페이스의 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 권한을 회수하는 설정은 아닙니다.

참조