이 문서에서는 AKS(Microsoft Azure Kubernetes Service) 클러스터를 만들거나 업데이트하려고 할 때 발생하는 "CustomPrivateDNSZoneMissingPermissionError" 오류 코드를 식별하고 해결하는 방법을 설명합니다.
필수 조건
-
Azure CLI 버전 2.53.0 이상 설치된 버전을 확인하려면
az --version
을 실행합니다.
증상
AKS 클러스터 만들기 또는 업데이트 작업이 실패하고 다음 오류 메시지를 반환합니다.
코드: CustomPrivateDNSZoneMissingPermissionError
메시지: 서비스 주체 또는 사용자 할당 ID에 사용자 지정 프라이빗 dns 영역 <custom-private-dns-zone-resource-id>를 읽고 쓸 수 있는 권한이 부여되어야 합니다. Microsoft.Network/privateDnsZones/read 작업에 대한 액세스 결과가 허용되지 않음을 확인하십시오.
원인
AKS는 사용자 지정 프라이빗 DNS 영역을 사용하는 프라이빗 클러스터에 대한 클러스터 만들기 또는 업데이트 작업을 실행하기 전에 클러스터의 관리 ID 또는 서비스 주체에 프라이빗 DNS 영역을 제어하는 데 필요한 권한이 있는지 확인합니다. AKS에서 필요한 권한을 찾지 못하면 클러스터가 실패한 상태로 들어가지 않도록 작업을 차단합니다.
해결 방법
누락된 역할 할당을 만들려면 다음 단계를 수행합니다.
az aks show 명령을 실행하여 클러스터의 프라이빗 DNS 영역의 리소스 ID를 가져오고 변수로
CUSTOM_PRIVATE_DNS_ZONE_ID
저장합니다.CUSTOM_PRIVATE_DNS_ZONE_ID=$(az aks show \ --resource-group <aks-resource-group> \ --name <aks-cluster-name> \ --query apiServerAccessProfile.privateDnsZone \ --output tsv)
비고
사용자 지정 프라이빗 DNS 영역의 리소스 ID도 원래 오류 메시지에 표시되었으므로 명령을 실행하는
az aks show
대신 해당 리소스 ID를 변수에 할당할 수도 있습니다.az role assignment create 명령을 실행하여 프라이빗 DNS 영역 기여자 역할을 클러스터의 관리 ID 또는 서비스 주체에 할당합니다.
az role assignment create --role "Private DNS Zone Contributor" \ --scope $CUSTOM_PRIVATE_DNS_ZONE_ID \ --assignee <control-plane-principal-id>
비고
클러스터의 관리 ID 또는 서비스 주체에 대한 권한 부여를 완료하는 데 최대 60분이 걸릴 수 있습니다.
도움을 요청하십시오.
질문이 있거나 도움이 필요한 경우 지원 요청을 생성하거나Azure 커뮤니티 지원에 문의하세요. Azure 피드백 커뮤니티에 제품 피드백을 제출할 수도 있습니다.