Konfigurera regler för offentligt IP-nätverk
Ett Azure-containerregister accepterar som standard anslutningar via Internet från värdar i alla nätverk. Den här artikeln visar hur du konfigurerar containerregistret så att det endast tillåter åtkomst från specifika offentliga IP-adresser eller adressintervall. Motsvarande steg med hjälp av Azure CLI och Azure Portal tillhandahålls.
IP-nätverksregler konfigureras på den offentliga registerslutpunkten. IP-nätverksregler gäller inte för privata slutpunkter som konfigurerats med Private Link
Konfiguration av IP-åtkomstregler är tillgängligt på tjänstnivån premiumcontainerregister . Information om registertjänstnivåer och gränser finns i Azure Container Registry-nivåer.
Varje register stöder högst 100 IP-åtkomstregler.
Viktigt!
Vissa funktioner kan vara otillgängliga eller kräva mer konfiguration i ett containerregister som begränsar åtkomsten till privata slutpunkter, valda undernät eller IP-adresser.
- När åtkomsten till ett offentligt nätverk till ett register är inaktiverad måste registeråtkomsten för vissa betrodda tjänster , inklusive Azure Security Center, aktivera en nätverksinställning för att kringgå nätverksreglerna.
- När den offentliga nätverksåtkomsten har inaktiverats kan instanser av vissa Azure-tjänster, inklusive Azure DevOps Services, för närvarande inte komma åt containerregistret.
- Privata slutpunkter stöds för närvarande inte med Azure DevOps-hanterade agenter. Du måste använda en lokalt installerad agent med nätverkslinje för den privata slutpunkten.
- Om registret har en godkänd privat slutpunkt och åtkomsten till det offentliga nätverket är inaktiverad kan lagringsplatser och taggar inte visas utanför det virtuella nätverket med hjälp av Azure Portal, Azure CLI eller andra verktyg.
Åtkomst från valt offentligt nätverk – CLI
Ändra standardnätverksåtkomst till registret
Om du vill begränsa åtkomsten till ett valt offentligt nätverk ändrar du först standardåtgärden för att neka åtkomst. Ersätt namnet på registret i följande az acr update-kommando :
az acr update --name myContainerRegistry --default-action Deny
Lägga till nätverksregel i registret
Använd kommandot az acr network-rule add för att lägga till en nätverksregel i registret som tillåter åtkomst från en offentlig IP-adress eller ett offentligt IP-intervall. Du kan till exempel ersätta containerregistrets namn och den offentliga IP-adressen för en virtuell dator i ett virtuellt nätverk.
az acr network-rule add \
--name mycontainerregistry \
--ip-address <public-IP-address>
Kommentar
När du har lagt till en regel tar det några minuter innan regeln börjar gälla.
Åtkomst från valt offentligt nätverk – portalen
- Gå till containerregistret i portalen.
- Under Inställningar väljer du Nätverk.
- På fliken Offentlig åtkomst väljer du för att tillåta offentlig åtkomst från valda nätverk.
- Under Brandvägg anger du en offentlig IP-adress, till exempel den offentliga IP-adressen för en virtuell dator i ett virtuellt nätverk. Eller ange ett adressintervall i CIDR-notation som innehåller den virtuella datorns IP-adress.
- Välj Spara.
Kommentar
När du har lagt till en regel tar det några minuter innan regeln börjar gälla.
Dricks
Du kan också aktivera registeråtkomst från en lokal klientdator eller IP-adressintervall. För att tillåta den här åtkomsten behöver du datorns offentliga IPv4-adress. Du hittar den här adressen genom att söka efter "vad är min IP-adress" i en webbläsare. Den aktuella klientens IPv4-adress visas också automatiskt när du konfigurerar brandväggsinställningar på sidan Nätverk i portalen.
Inaktivera åtkomst till offentligt nätverk
Du kan också inaktivera den offentliga slutpunkten i registret. Om du inaktiverar den offentliga slutpunkten åsidosätts alla brandväggskonfigurationer. Du kanske till exempel vill inaktivera offentlig åtkomst till ett register som skyddas i ett virtuellt nätverk med private link.
Kommentar
Om registret har konfigurerats i ett virtuellt nätverk med en tjänstslutpunkt inaktiverar inaktivering av åtkomst till registrets offentliga slutpunkt också åtkomsten till registret i det virtuella nätverket.
Inaktivera offentlig åtkomst – CLI
Om du vill inaktivera offentlig åtkomst med hjälp av Azure CLI kör du az acr update och anger --public-network-enabled
till false
. Argumentet public-network-enabled
kräver Azure CLI 2.6.0 eller senare.
az acr update --name myContainerRegistry --public-network-enabled false
Inaktivera offentlig åtkomst – portalen
- I portalen går du till containerregistret och väljer Inställningar > Nätverk.
- På fliken Offentlig åtkomst går du till Tillåt åtkomst till offentligt nätverk och väljer Inaktiverad. Välj sedan Spara.
Återställa åtkomst till offentligt nätverk
Om du vill återaktivera den offentliga slutpunkten uppdaterar du nätverksinställningarna för att tillåta offentlig åtkomst. Om du aktiverar den offentliga slutpunkten åsidosätts alla brandväggskonfigurationer.
Återställa offentlig åtkomst – CLI
Kör az acr update och ange --public-network-enabled
till true
.
Kommentar
Argumentet public-network-enabled
kräver Azure CLI 2.6.0 eller senare.
az acr update --name myContainerRegistry --public-network-enabled true
Återställa offentlig åtkomst – portalen
- I portalen går du till containerregistret och väljer Inställningar > Nätverk.
- På fliken Offentlig åtkomst går du till Tillåt åtkomst till offentligt nätverk och väljer Alla nätverk. Välj sedan Spara.
Felsöka
Åtkomst bakom HTTPS-proxy
Om en regel för offentligt nätverk har angetts, eller om offentlig åtkomst till registret nekas, misslyckas försök att logga in på registret från ett otillåtet offentligt nätverk. Klientåtkomst bakom en HTTPS-proxy misslyckas också om en åtkomstregel för proxyn inte har angetts. Du får ett felmeddelande som liknar Error response from daemon: login attempt failed with status: 403 Forbidden
eller Looks like you don't have access to registry
.
Dessa fel kan också inträffa om du använder en HTTPS-proxy som tillåts av en nätverksåtkomstregel, men proxyn inte är korrekt konfigurerad i klientmiljön. Kontrollera att både Docker-klienten och Docker-daemon har konfigurerats för proxybeteende. Mer information finns i HTTP/HTTPS-proxy i Docker-dokumentationen.
Åtkomst från Azure Pipelines
Om du använder Azure Pipelines med ett Azure-containerregister som begränsar åtkomsten till specifika IP-adresser kanske pipelinen inte kan komma åt registret eftersom den utgående IP-adressen från pipelinen inte har åtgärdats. Som standard kör pipelinen jobb med hjälp av en Microsoft-värdbaserad agent i en virtuell datorpool med en ändrad uppsättning IP-adresser.
En lösning är att ändra agenten som används för att köra pipelinen från Microsoft-värdbaserad till lokalt installerad. Med en lokalt installerad agent som körs på en Windows - eller Linux-dator som du hanterar kontrollerar du pipelinens utgående IP-adress och du kan lägga till den här adressen i en ip-åtkomstregel för registret.
Åtkomst från AKS
Om du använder Azure Kubernetes Service (AKS) med ett Azure-containerregister som begränsar åtkomsten till specifika IP-adresser kan du inte konfigurera en fast AKS IP-adress som standard. Utgående IP-adress från AKS-klustret tilldelas slumpmässigt.
Om du vill tillåta AKS-klustret att komma åt registret har du följande alternativ:
- Om du använder Azure Basic Load Balancer konfigurerar du en statisk IP-adress för AKS-klustret.
- Om du använder Azure Standard Load Balancer kan du läsa vägledningen för att styra utgående trafik från klustret.
Nästa steg
- Information om hur du begränsar åtkomsten till ett register med hjälp av en privat slutpunkt i ett virtuellt nätverk finns i Konfigurera Azure Private Link för ett Azure-containerregister.
- Om du behöver konfigurera regler för registeråtkomst bakom en klientbrandvägg kan du läsa Konfigurera regler för åtkomst till ett Azure-containerregister bakom en brandvägg.
- Mer felsökningsvägledning finns i Felsöka nätverksproblem med registret.