Dela via


Felsöka felkoden CustomPrivateDNSZoneMissingPermissionError

I den här artikeln beskrivs hur du identifierar och löser felkoden "CustomPrivateDNSZoneMissingPermissionError" som inträffar när du försöker skapa eller uppdatera ett AkS-kluster (Microsoft Azure Kubernetes Service).

Förutsättningar

  • Azure CLI, version 2.53.0 eller senare. Kör az --version för att hitta den installerade versionen.

Symptome

Det går inte att skapa eller uppdatera ett AKS-kluster och returnerar följande felmeddelande:

Kod: CustomPrivateDNSZoneMissingPermissionError
Meddelande: Tjänstens huvudnamn eller användartilldelade identitet måste ha behörighet att läsa och skriva till anpassad privat dns-zon <custom-private-dns-zone-resource-id>. Kontrollera att tillgången inte är tillåten för åtgärden Microsoft.Network/privateDnsZones/read.

Orsak

Innan AKS kör en klusterskapnings- eller uppdateringsåtgärd för ett privat kluster som använder en anpassad privat DNS-zon kontrollerar det om klustrets hanterade identitet eller tjänstens huvudnamn har de behörigheter som krävs för att styra den privata DNS-zonen. Om AKS inte hittar de behörigheter som krävs blockerar den åtgärden så att klustret inte hamnar i ett misslyckat tillstånd.

Lösning

Följ dessa steg för att skapa rolltilldelningen som saknas:

  1. Hämta resurs-ID:t för klustrets privata DNS-zon genom att köra kommandot az aks show och lagra det som variabeln 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)
    

    Anmärkning

    Eftersom resurs-ID:t för den anpassade privata DNS-zonen också visades i det ursprungliga felmeddelandet kan du också tilldela resurs-ID:t till variabeln i stället för att köra az aks show kommandot.

  2. Tilldela rollen Privat DNS-zondeltagare till klustrets hanterade identitet eller tjänstens huvudnamn genom att köra kommandot az role assignment create :

    az role assignment create --role "Private DNS Zone Contributor" \
        --scope $CUSTOM_PRIVATE_DNS_ZONE_ID \
        --assignee <control-plane-principal-id>
    

Anmärkning

Det kan ta upp till 60 minuter att slutföra beviljandet av behörigheter till klustrets hanterade identitet eller tjänstens huvud.

Kontakta oss för att få hjälp

Om du har frågor eller behöver hjälp, skapa en supportförfrågan, eller fråga Azures community-support. Du kan också lämna produktfeedback till Azure feedback-community.