Felsöka nätverksproblem med registret
Den här artikeln hjälper dig att felsöka problem som kan uppstå vid åtkomst till ett Azure-containerregister i ett virtuellt nätverk eller bakom en brandvägg eller proxyserver.
Symtom
Kan innehålla ett eller flera av följande:
- Det går inte att skicka eller hämta bilder och du får ett felmeddelande
dial tcp: lookup myregistry.azurecr.io
- Det går inte att skicka eller hämta bilder och du får ett felmeddelande
Client.Timeout exceeded while awaiting headers
- Det går inte att skicka eller hämta avbildningar och du får Azure CLI-fel
Could not connect to the registry login server
- Det går inte att hämta avbildningar från registret till Azure Kubernetes Service eller någon annan Azure-tjänst
- Det går inte att komma åt ett register bakom en HTTPS-proxy och du får fel
Error response from daemon: login attempt failed with status: 403 Forbidden
ellerError response from daemon: Get <registry>: proxyconnect tcp: EOF Login failed
- Det går inte att konfigurera inställningar för virtuellt nätverk och du får ett felmeddelande
Failed to save firewall and virtual network settings for container registry
- Det går inte att komma åt eller visa registerinställningar i Azure Portal eller hantera registret med hjälp av Azure CLI
- Det går inte att lägga till eller ändra inställningar för virtuellt nätverk eller regler för offentlig åtkomst
- ACR-uppgifter kan inte skicka eller hämta bilder
- Microsoft Defender för molnet kan inte skanna avbildningar i registret eller så visas inte genomsökningsresultat i Microsoft Defender för molnet
- Du får ett felmeddelande
host is not reachable
när du försöker komma åt ett register som konfigurerats med en privat slutpunkt.
Orsaker
- En klientbrandvägg eller proxy förhindrar åtkomst – lösning
- Regler för åtkomst till offentliga nätverk i registret förhindrar åtkomst – lösning
- Konfiguration av virtuellt nätverk eller privat slutpunkt förhindrar åtkomst – lösning
- Du försöker integrera Microsoft Defender för molnet eller vissa andra Azure-tjänster med ett register som har en privat slutpunkt, tjänstslutpunkt eller offentliga IP-åtkomstregler – lösning
Ytterligare diagnos
Kör kommandot az acr check-health för att få mer information om hälsotillståndet för registermiljön och eventuellt åtkomst till ett målregister. Du kan till exempel diagnostisera vissa problem med nätverksanslutning eller konfiguration.
Se Kontrollera hälsotillståndet för ett Azure-containerregister för kommandoexempel. Om fel rapporteras läser du felreferensen och följande avsnitt för rekommenderade lösningar.
Om du har problem med att använda en Azure Kubernetes-tjänst med ett integrerat register kör du kommandot az aks check-acr för att verifiera att AKS-klustret kan nå registret.
Kommentar
Vissa nätverksanslutningssymptom kan också uppstå när det finns problem med registerautentisering eller auktorisering. Se Felsöka registerinloggning.
Potentiella lösningar
Konfigurera åtkomst till klientens brandvägg
Om du vill komma åt ett register bakom en klientbrandvägg eller proxyserver konfigurerar du brandväggsregler för åtkomst till registrets offentliga REST- och dataslutpunkter. Om dedikerade dataslutpunkter är aktiverade behöver du regler för åtkomst:
- REST-slutpunkt:
<registryname>.azurecr.io
- Dataslutpunkter:
<registry-name>.<region>.data.azurecr.io
För ett geo-replikerat register konfigurerar du åtkomst till dataslutpunkten för varje regional replik.
Se till att både Docker-klienten och Docker-daemon har konfigurerats för proxybeteende bakom en HTTPS-proxy. Om du ändrar proxyinställningarna för Docker-daemonen måste du starta om daemonen.
Registerresursloggar i tabellen ContainerRegistryLoginEvents kan hjälpa dig att diagnostisera ett försök till anslutning som blockeras.
Relaterade länkar:
- Konfigurera regler för åtkomst till ett Azure-containerregister bakom en brandvägg
- HTTP/HTTPS-proxykonfiguration
- Geo-replikering i Azure Container Registry
- Övervaka Azure Container Registry
Konfigurera offentlig åtkomst till registret
Om du har åtkomst till ett register via Internet bekräftar du att registret tillåter åtkomst till det offentliga nätverket från klienten. Som standard tillåter ett Azure-containerregister åtkomst till de offentliga registerslutpunkterna från alla nätverk. Ett register kan begränsa åtkomsten till valda nätverk eller valda IP-adresser.
Om registret har konfigurerats för ett virtuellt nätverk med en tjänstslutpunkt inaktiverar inaktivering av åtkomst till offentligt nätverk även åtkomst via tjänstslutpunkten. Om registret har konfigurerats för ett virtuellt nätverk med Private Link gäller inte IP-nätverksreglerna för registrets privata slutpunkter.
Relaterade länkar:
- Konfigurera regler för offentligt IP-nätverk
- Ansluta privat till ett Azure-containerregister med Hjälp av Azure Private Link
- Begränsa åtkomsten till ett containerregister med hjälp av en tjänstslutpunkt i ett virtuellt Azure-nätverk
Konfigurera VNet-åtkomst
Bekräfta att det virtuella nätverket har konfigurerats med antingen en privat slutpunkt för Private Link eller en tjänstslutpunkt (förhandsversion). För närvarande stöds inte en Azure Bastion-slutpunkt.
Om en privat slutpunkt har konfigurerats kontrollerar du att DNS löser registrets offentliga fullständiga domännamn, till exempel myregistry.azurecr.io till registrets privata IP-adress.
- Kör kommandot az acr check-health med parametern
--vnet
för att bekräfta DNS-routningen till den privata slutpunkten i det virtuella nätverket. - Använd ett nätverksverktyg som
dig
ellernslookup
för DNS-sökning. - Kontrollera att DNS-poster har konfigurerats för registrets FQDN och för var och en av dataslutpunkts-FQDN:erna.
Granska NSG-regler och tjänsttaggar som används för att begränsa trafik från andra resurser i nätverket till registret.
Om en tjänstslutpunkt till registret har konfigurerats kontrollerar du att en nätverksregel har lagts till i registret som tillåter åtkomst från nätverkets undernät. Tjänstslutpunkten stöder endast åtkomst från virtuella datorer och AKS-kluster i nätverket.
Om du vill begränsa registeråtkomsten med hjälp av ett virtuellt nätverk i en annan Azure-prenumeration kontrollerar du att du registrerar resursprovidern i den prenumerationen Microsoft.ContainerRegistry
. Registrera resursprovidern för Azure Container Registry med hjälp av Azure Portal, Azure CLI eller andra Azure-verktyg.
Om Azure Firewall eller en liknande lösning har konfigurerats i nätverket kontrollerar du att utgående trafik från andra resurser, till exempel ett AKS-kluster, har aktiverats för att nå registerslutpunkterna.
Relaterade länkar:
- Ansluta privat till ett Azure-containerregister med Hjälp av Azure Private Link
- Felsök anslutningsproblem för privata slutpunkter i Azure
- Begränsa åtkomsten till ett containerregister med hjälp av en tjänstslutpunkt i ett virtuellt Azure-nätverk
- Obligatoriska regler för utgående nätverk och fullständiga domännamn för AKS-kluster
- Kubernetes: Felsöka DNS-matchning
- Tjänsttaggar för virtuellt nätverk
Konfigurera tjänståtkomst
För närvarande tillåts inte åtkomst till ett containerregister med nätverksbegränsningar från flera Azure-tjänster:
- Microsoft Defender för molnet kan inte utföra avbildningssårbarhetsgenomsökning i ett register som begränsar åtkomsten till privata slutpunkter, valda undernät eller IP-adresser.
- Resurser i vissa Azure-tjänster kan inte komma åt ett containerregister med nätverksbegränsningar, inklusive Azure App Service och Azure Container Instances.
Om åtkomst eller integrering av dessa Azure-tjänster med ditt containerregister krävs tar du bort nätverksbegränsningen. Ta till exempel bort registrets privata slutpunkter eller ta bort eller ändra registrets regler för offentlig åtkomst.
Från och med januari 2021 kan du konfigurera ett nätverksbegränsat register för att tillåta åtkomst från utvalda betrodda tjänster.
Relaterade länkar:
- Azure Container Registry-avbildningsgenomsökning av Microsoft Defender efter containerregister
- Lämna feedback
- Tillåt betrodda tjänster att på ett säkert sätt komma åt ett nätverksbegränsat containerregister
Avancerad felsökning
Om insamling av resursloggar är aktiverad i registret läser du loggen ContainterRegistryLoginEvents. Den här loggen lagrar autentiseringshändelser och status, inklusive inkommande identitet och IP-adress. Fråga loggen efter fel vid registerautentisering.
Relaterade länkar:
- Loggar för diagnostisk utvärdering och granskning
- Vanliga frågor och svar om containerregister
- Azure-säkerhetsbaslinje för Azure Container Registry
- Metodtips för Azure Container Registry
Nästa steg
Om du inte löser problemet här kan du läsa följande alternativ.
- Andra avsnitt om registerfelsökning är:
- Community-supportalternativ
- Microsoft Q&A
- Öppna en supportbegäran