AKS API 서버의 비공개 접근 설정 점검

관리 경로를 먼저 마련하고 API 서버의 접근 범위를 필요한 운영자로 제한하세요.

설명

AKS 제어 플레인은 클러스터 전체를 제어하는 핵심 관리 인터페이스입니다. 퍼블릭 API 엔드포인트의 접근 범위가 넓으면 외부의 연결 시도가 늘어날 수 있습니다. 퍼블릭 엔드포인트가 인증 없는 접근을 뜻하지는 않으며, 프라이빗 클러스터도 인증과 최소 권한 설정이 필요합니다.

잠재적 영향

  • 클러스터 API가 외부 스캔과 공격 시도의 대상이 될 수 있습니다.
  • 접근 제한을 잘못 변경하면 관리 도구와 배포 작업이 중단될 수 있습니다.

해결 방법

  • 내부 접근만 필요한 클러스터는 private_cluster_enabled = true를 검토하고 관리 네트워크의 라우팅과 DNS를 먼저 구성하세요. VPN이나 ExpressRoute 등 필요한 연결을 시험하세요.
  • 퍼블릭 API가 필요하면 승인된 IP 범위로 제한하고 인증·RBAC를 유지하세요. Terraform 계획에서 클러스터 교체 여부를 확인하고 기존 워크로드와 관리 경로의 전환을 준비하세요.

예시

API 노출 설정만 비교하는 발췌입니다. 노드 풀과 ID 등 나머지 필수 구성은 생략했습니다. 비공개 경로와 DNS를 준비하기 전에 기존 클러스터에 적용하지 마세요.

변경 전

hcl
resource "azurerm_kubernetes_cluster" "example" {
  name                = "example-aks1"
  location            = azurerm_resource_group.example.location
  resource_group_name = azurerm_resource_group.example.name
  dns_prefix          = "exampleaks1"

  private_cluster_enabled = false
}

변경 후

hcl
resource "azurerm_kubernetes_cluster" "example" {
  name                = "example-aks1"
  location            = azurerm_resource_group.example.location
  resource_group_name = azurerm_resource_group.example.name
  dns_prefix          = "exampleaks1"

  private_cluster_enabled = true
}

설명:

  • 변경 전: 프라이빗 클러스터를 사용하지 않습니다. 실제 퍼블릭 API 접근 제한과 인증은 별도로 확인해야 합니다.
  • 변경 후: API 서버의 비공개 접근을 사용합니다. 이 설정이 애플리케이션의 LoadBalancer나 Ingress까지 비공개로 만드는 것은 아닙니다.

참조