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 Premium-containerregister . 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 kanske inte är tillgängliga eller kräver 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åtkomst 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ätverkssikte till den privata slutpunkten.
  • Om registret har en godkänd privat slutpunkt och åtkomst till offentligt nätverk är inaktiverat 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 intervall. Ersätt till exempel 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>

Anteckning

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

  1. Gå till containerregistret i portalen.
  2. Under Inställningar väljer du Nätverk.
  3. På fliken Offentlig åtkomst väljer du för att tillåta offentlig åtkomst från Valda nätverk.
  4. 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.
  5. Välj Spara.

Konfigurera brandväggsregel för containerregister

Anteckning

När du har lagt till en regel tar det några minuter innan regeln börjar gälla.

Tips

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 hjälp av Private Link.

Anteckning

Om registret har konfigurerats i ett virtuellt nätverk med en tjänstslutpunkt inaktiverar inaktivering av åtkomst till registrets offentliga slutpunkt även åtkomst 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

  1. Gå till containerregistret i portalen och välj Inställningar > Nätverk.
  2. På fliken Offentlig åtkomst går du till Tillåt åtkomst till offentligt nätverk och väljer Inaktiverad. Välj sedan Spara.

Inaktivera offentlig åtkomst

Å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 ställ in --public-network-enabledtrue.

Anteckning

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

  1. Gå till containerregistret i portalen och välj Inställningar > Nätverk.
  2. 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.

Offentlig åtkomst från alla nätverk

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 ser 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 är fast. 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:

Nästa steg