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 som använder Azure CLI och Azure Portal tillhandahålls.

IP-nätverksregler konfigureras på slutpunkten för det offentliga registret. IP-nätverksregler gäller inte för privata slutpunkter som konfigurerats med Private Link

Konfiguration av IP-åtkomstregler är tillgängligt Premium containerregistrets tjänstnivå. Information om registertjänstnivåer och begränsningar finns i Azure Container Registry nivåer.

Varje register stöder högst 100 nätverkså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 offentlig nätverksåtkomst till ett register är inaktiverat måste registeråtkomsten för vissa betrodda tjänster, inklusive Azure Security Center, aktivera en nätverksinställning för att kringgå nätverksregler.
  • Instanser av vissa Azure-tjänster, inklusive Azure DevOps Services och Azure Container Instances, kan för närvarande inte komma åt containerregistret.
  • Om registret har en godkänd privat slutpunkt och offentlig nätverksåtkomst är inaktiverad kan lagringsplatsen och taggarna 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 till neka åtkomst. Ersätt namnet på registret med 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. 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>

Anteckning

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

Åtkomst från valt offentligt nätverk – portalen

  1. Navigera 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 för regeln att 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 "what is my IP address" (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 ställts in i ett virtuellt nätverk med en tjänstslutpunkt inaktiverarinaktivering 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 till --public-network-enabled 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. I portalen navigerar du till containerregistret och väljer Inställningar > Nätverk.
  2. På fliken Offentlig åtkomst i Tillåt offentlig nätverksåtkomst väljer du 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 ange till --public-network-enabled true .

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. I portalen navigerar du till containerregistret och väljer Inställningar > Nätverk.
  2. På fliken Offentlig åtkomst i Tillåt offentlig nätverksåtkomst väljer du 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 i 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 .

De här felen kan också inträffa om du använder en HTTPS-proxy som tillåts av en regel för nätverksåtkomst, men proxyn inte är korrekt konfigurerad i klientmiljön. Kontrollera att både Docker-klienten och Docker-daemonen 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ärdbaserade agent i en virtuell datorpool med en föränderlig uppsättning IP-adresser.

En lösning är att ändra agenten som används för att köra pipelinen från Microsoft till en egen värd. Med en lokala agent som körs på en Windows- eller Linux-dator som du hanterar kan du styra 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. Den utgående IP-adressen från AKS-klustret tilldelas slumpmässigt.

Om du vill ge AKS-klustret åtkomst till registret har du följande alternativ:

  • Om du använder Azure Basic Load Balancer du en statisk IP-adress för AKS-klustret.
  • Om du använder Azure Standard Load Balancer finns det vägledning för att kontrollera utgående trafik från klustret.

Nästa steg