네트워크 보안 그룹

이 페이지에서는 Azure용 GKE에 필요한 Azure 네트워크 보안 그룹(NSG)을 설명하고 나열합니다.

관리형 NSG

Azure용 GKE는 각 가상 머신(VM) 인스턴스의 가상 네트워크 인터페이스 카드(NIC)에 연결된 NSG를 관리합니다. 네트워크 트래픽을 더 세부적으로 제어하려면 서브넷에 NSG를 추가합니다.

Azure용 GKE는 필요한 NSG 규칙을 자동으로 관리하며, 누락된 NSG 규칙을 추가하고 더 이상 필요하지 않은 규칙을 삭제합니다. 또한 Azure용 GKE는 Kubernetes 서비스 구성에 따라 규칙을 수정합니다. 예를 들어 LoadBalancer 유형의 Kubernetes 서비스를 추가하면 Azure용 GKE가 해당 NSG 규칙을 추가합니다.

규칙 우선순위

Azure NSG 규칙 우선순위의 범위는 100~4096입니다. 숫자가 작을수록 우선순위가 높아집니다.

기본적으로 Azure용 GKE는 우선순위가 500 이상인 NSG 규칙만 관리합니다. 따라서 특정 규칙을 구현하거나 추가 규칙을 만들어야 하는 경우 우선순위가 100~499인 NSG를 사용할 수 있습니다.

Azure는 가장 낮은 우선순위부터 순서대로 규칙을 처리합니다. 새 규칙을 만들 때는 항상 기존 Anthos NSG 규칙과 충돌하지 않도록 100~499 범위의 규칙 우선순위를 선택합니다.

애플리케이션 보안 그룹

Azure용 GKE는 제어 영역 및 워커 노드의 가상 NIC에 적용되는 두 개의 애플리케이션 보안 그룹(ASG)을 만듭니다. 클러스터에 새 노드 풀을 추가할 때 Azure용 GKE는 ASG를 자동으로 업데이트합니다. NSG 규칙을 만들 때 이러한 ASG를 사용할 수 있습니다.

NSG 및 제어 영역 ASG의 Azure Resource Manager(ARM) ID는 gcloud container azure clusters describe의 출력으로부터 얻을 수 있습니다.

예를 들어 제어 영역 VM에 대해 SSH 연결을 허용하려면 az network nsg rule create 명령어를 실행하여 제어 영역 ASG를 참조하는 NSG를 만듭니다.

NSG_NAME=$(basename $(gcloud container azure clusters describe \
  CLUSTER_NAME --location=GOOGLE_CLOUD_LOCATION \
  --format 'value(managedResources.networkSecurityGroupId)'))

ASG_CP_NAME=$(basename $(gcloud container azure clusters describe \
  CLUSTER_NAME --location=GOOGLE_CLOUD_LOCATION \
  --format 'value(managedResources.controlPlaneApplicationSecurityGroupId)'))

az network nsg rule create \
  --name AllowSshToControlPlane \
  --nsg-name "${NSG_NAME}" \
  --priority 100 \
  --resource-group "CLUSTER_RESOURCE_GROUP" \
  --access Allow \
  --protocol Tcp \
  --destination-port-ranges 22 \
  --destination-asgs "${ASG_CP_NAME}"

다음을 바꿉니다.

  • CLUSTER_NAME: 클러스터 이름입니다.
  • GOOGLE_CLOUD_LOCATION: 클러스터를 관리하는 Google Cloud 위치입니다.
  • CLUSTER_RESOURCE_GROUP: 클러스터가 포함된 Azure 리소스 그룹 이름입니다.

새 규칙 만들기에 대한 자세한 내용은 Azure NSG 규칙 만들기에 설명된 절차를 따르세요.

기본 NSG 규칙

Azure용 GKE를 설정하면 Azure 가상 네트워크에 다음 NSG 규칙이 생성됩니다.

우선순위 포트 프로토콜 소스 대상 작업 용도
1000 2380, 2381 TCP 제어 영역 NIC 제어 영역 NIC 허용 제어 영역 etcd 통신
1001 443, 8132 TCP 모두 제어 영역 NIC 허용 Kubernetes API 액세스 허용
1002 10250 TCP 제어 영역 NIC 노드 풀 NIC 허용 제어 영역-노드 간 통신
1003 10250, 10255 TCP 노드 풀 NIC 노드 풀 NIC 허용 노드 간 통신
1004 6081 UDP 노드 풀 NIC 노드 풀 NIC 허용 노드 간 CNI 통신
1005 모두 모두 Azure 부하 분산기 모두 허용 부하 분산기에 대한 인바운드 트래픽 허용
4096 모두 모두 모두 모두 거부 다른 규칙이 적용되지 않는 모든 인바운드 연결 거부