설명
GKE의 레거시 클라이언트 인증서는 기본 OAuth 인증 외의 접근 경로를 제공합니다. 인증서와 개인 키의 배포·관리 부담이 커지고, 유출되면 해당 인증 주체의 권한 범위에서 접근을 허용할 수 있습니다. 이는 API 서버의 TLS 인증서 검증과는 별개입니다.
잠재적 영향
- 오래된 인증 수단이 남아 추적과 폐기 관리가 어려워질 수 있습니다.
- 클라이언트 인증서와 개인 키가 유출되면 허가되지 않은 주체가 인증할 수 있습니다.
해결 방법
issue_client_certificate = false로 불필요한 레거시 인증서 발급을 끄고 기본 OAuth 기반 인증을 사용하세요. IAM과 Kubernetes RBAC 권한도 최소화하세요.- 기존 인증서를 사용하는 운영 절차를 전환하고 관련 권한을 지원되는 절차로 제거하세요. 발급 설정 변경만으로 이미 발급된 인증서가 폐기되었다고 가정하지 마세요.
예시
클라이언트 인증서 발급 설정을 비교합니다. 서버 TLS 검증을 비활성화하는 설정이 아니며 기존 인증서의 권한 회수는 별도 작업입니다.
변경 전
hcl
resource "google_container_cluster" "example" {
name = "marcellus-wallace"
location = "us-central1-a"
initial_node_count = 3
master_auth {
client_certificate_config {
issue_client_certificate = true
}
}
}
변경 후
hcl
resource "google_container_cluster" "example" {
name = "marcellus-wallace"
location = "us-central1-a"
initial_node_count = 3
master_auth {
client_certificate_config {
issue_client_certificate = false
}
}
}
설명:
- 변경 전: 레거시 클라이언트 인증서 발급을 요청합니다.
- 변경 후: 레거시 인증서 발급을 끕니다. 기존 인증서의 접근 가능 여부는 별도로 확인해야 합니다.