Freigeben über

Unable to pull image using Managed identity system-environment for registry - Private VNet setup - Azure Container Registry & Azure Container App

Turic, Mario 0 Zuverlässigkeitspunkte
2026-02-26T09:44:27.6933333+00:00

Hello dear Microsoft engineers,

we have an azure container app inside of our azure container environment, that can not pull an image from our azure container registry also in our same resource group and same private virtual network.

We checked that the image exists in the Azure container registry.

Currently we are getting the following issue when we try to create a new Azure Container App using that image from our Azure container registry:

Azure Container Apps
Azure Container Apps

Ein Azure-Dienst, der eine universelle, serverlose Containerplattform bereitstellt.

{count} Stimmen

1 Antwort

Sortieren nach: Am hilfreichsten
  1. Siddhesh Desai 3,935 Zuverlässigkeitspunkte Externe Microsoft-Mitarbeiter Moderator
    2026-02-26T18:47:25.15+00:00

    Hi @Turic, Mario

    Vielen Dank für Ihre Anfrage an Microsoft Q&A.

    In Azure Container Apps kann das Abrufen eines Images aus der Azure Container Registry (ACR) mithilfe einer verwalteten Identität in einer privaten virtuellen Netzwerkumgebung fehlschlagen, selbst wenn sich beide Ressourcen in derselben Ressourcengruppe und demselben virtuellen Netzwerk befinden. Dies liegt daran, dass das Abrufen von Images von der Azure Container Apps-Plattform (Steuerungsebene) und nicht innerhalb des laufenden Containers selbst durchgeführt wird. Daher muss die Plattform sich mithilfe der verwalteten Identität bei ACR authentifizieren, den ACR-Endpunkt über privates DNS auflösen und die Registry über das Netzwerk erreichen können. Wenn eine dieser Voraussetzungen nicht erfüllt ist – beispielsweise die ARM-Authentifizierung in ACR deaktiviert ist, die verwaltete Identität nicht explizit der Registry zugeordnet ist, die Verknüpfung der privaten DNS-Zone fehlt oder der ausgehende Netzwerkzugriff eingeschränkt ist –, schlägt der Image-Abruf fehl. Dies führt in der Regel zu ImagePullFailure- oder UNAUTHORIZED-Fehlern, obwohl das Image vorhanden ist und die Berechtigungen korrekt erscheinen.

    Beachten Sie die folgenden Punkte, um dieses Problem zu beheben oder als Workaround zu verwenden:

    Aktivieren Sie die ARM-Zielgruppenauthentifizierung in Azure Container Registry.

    Azure Container Apps benötigen, dass ACR Azure Resource Manager (ARM)-Token akzeptiert, wenn verwaltete Identitäten verwendet werden. Wenn diese Einstellung deaktiviert ist, schlagen Image-Abrufe mit verwalteten Identitäten immer fehl.

    az acr config authentication-as-arm show -r <acr-name>
    

    Falls der Status deaktiviert ist, aktivieren Sie ihn mit folgendem Befehl:

    az acr config authentication-as-arm update -r <acr-name> --status enabled
    

    Weisen Sie eine verwaltete Identität zu und konfigurieren Sie diese explizit für ACR-Image-Abrufe.

    Die alleinige Zuweisung der Rolle „AcrPull“ ist nicht ausreichend. Die verwaltete Identität muss:

    der Container-App zugewiesen und

    explizit als die für den Abruf von Images aus ACR verwendete Identität konfiguriert sein.

    Systemseitig zugewiesene Identität zuweisen:

    az containerapp identity assign -n <Name der Container-App> -g <Ressourcengruppe>
    

    Konfigurieren Sie die Container-App so, dass sie diese Identität für ACR verwendet:

    az containerapp registry set \
      -n <container-app-name> \
      -g <resource-group> \
      --server <acr-name>.azurecr.io \
      --identity system
    

    Stellen Sie sicher, dass die verwaltete Identität die Rolle AcrPull im ACR-Ressourcenbereich besitzt. Die verwaltete Identität muss die Rolle AcrPull auf ACR-Ressourcenebene zugewiesen bekommen, nicht nur auf Abonnement- oder Ressourcengruppenebene.

    az role assignment create \
      --assignee <managed-identity-principal-id> \
      --role AcrPull \
      --scope /subscriptions/<sub-id>/resourceGroups/<rg>/providers/Microsoft.ContainerRegistry/registries/<acr-name>
    

    Konfigurieren Sie den privaten Endpunkt-DNS korrekt für Azure Container Registry

    Wenn ACR mit einem privaten Endpunkt konfiguriert ist, muss die Container Apps-Umgebung <acr-name>.azurecr.io in eine private IP-Adresse auflösen können. Dies erfordert:

    Eine private DNS-Zone mit dem Namen privatelink.azurecr.io

    Die DNS-Zone, die mit dem von der Container Apps-Umgebung verwendeten virtuellen Netzwerk (VNet) verknüpft ist

    Einen A-Eintrag für die Registry, der automatisch vom privaten Endpunkt erstellt wird

    Sie können die DNS-Auflösung wie folgt überprüfen:

    nslookup <acr-name>.azurecr.io
    

    Konfigurieren Sie den privaten Endpunkt-DNS korrekt für Azure Container Registry

    Wenn ACR mit einem privaten Endpunkt konfiguriert ist, muss die Container Apps-Umgebung <acr-name>.azurecr.io in eine private IP-Adresse auflösen können. Dies erfordert:

    Eine private DNS-Zone mit dem Namen privatelink.azurecr.io

    Die DNS-Zone, die mit dem von der Container Apps-Umgebung verwendeten virtuellen Netzwerk (VNet) verknüpft ist

    Einen A-Eintrag für die Registry, der automatisch vom privaten Endpunkt erstellt wird

    Sie können die DNS-Auflösung wie folgt überprüfen:

    Eine Person fand diese Antwort hilfreich.
    0 Kommentare Keine Kommentare

Ihre Antwort

Antworten können von Fragestellenden als „Angenommen“ und von Moderierenden als „Empfohlen“ gekennzeichnet werden, wodurch Benutzende wissen, dass diese Antwort das Problem des Fragestellenden gelöst hat.