Konfigurieren von Netzwerkregeln für öffentliche IP-Adressen

Eine Azure-Containerregistrierung akzeptiert standardmäßig Verbindungen über das Internet von Hosts in beliebigen Netzwerken. In diesem Artikel wird gezeigt, wie Sie Ihre Containerregistrierung für den Zugriff von nur bestimmten öffentlichen IP-Adressen oder -Adressbereichen aus konfigurieren. Die Schritte werden jeweils bei Verwendung der Azure-Befehlszeilenschnittstelle (CLI) bzw. des Azure-Portals erläutert.

IP-Netzwerkregeln werden auf dem öffentlichen Registrierungsendpunkt konfiguriert. IP-Netzwerkregeln gelten nicht für private Endpunkte, die mit Private Link konfiguriert sind.

Das Konfigurieren von IP-Zugriffsregeln steht im Tarif Premium der Containerregistrierung zur Verfügung. Weitere Informationen zu den Tarifen des Registrierungsdiensts und zu den Einschränkungen finden Sie unter Azure Container Registry-Tarife.

Pro Registrierung werden maximal 100 IP-Zugriffsregeln unterstützt.

Wichtig

In einer Containerregistrierung, die den Zugriff auf private Endpunkte, ausgewählte Subnetze oder IP-Adressen einschränkt, sind einige Funktionen möglicherweise nicht verfügbar oder erfordern eine umfangreichere Konfiguration.

  • Wenn der öffentliche Netzwerkzugriff auf eine Registrierung deaktiviert ist, erfordert der Zugriff auf die Registrierung durch bestimmte vertrauenswürdige Dienste einschließlich Azure Security Center die Aktivierung einer Netzwerkeinstellung, um die Netzwerkregeln zu umgehen.
  • Nach dem Deaktivieren des öffentlichen Netzwerkzugriffs können Instanzen bestimmter Azure-Dienste – darunter Azure DevOps Services – derzeit nicht auf die Containerregistrierung zugreifen.
  • Private Endpunkte werden derzeit nicht mit verwalteten Azure DevOps-Agents unterstützt. Sie müssen einen selbstgehosteten Agent mit Netzwerksichtverbindung zum privaten Endpunkt verwenden.
  • Wenn die Registrierung einen genehmigten privaten Endpunkt hat und der öffentliche Netzwerkzugriff deaktiviert ist, können Repositorys und Tags außerhalb des virtuellen Netzwerks nicht über das Azure-Portal, die Azure CLI oder andere Tools aufgelistet werden.

Zugriff aus einem ausgewählten öffentlichen Netzwerk – CLI

Ändern des Standardnetzwerkzugriffs auf die Registrierung

Um den Zugriff auf ein ausgewähltes öffentliches Netzwerk zu beschränken, ändern Sie zunächst die Standardaktion so, dass der Zugriff verweigert wird. Ersetzen Sie im folgenden Befehl az acr update den Wert durch den Namen Ihrer Registrierung:

az acr update --name myContainerRegistry --default-action Deny

Hinzufügen einer Netzwerkregel zur Registrierung

Fügen Sie mit dem Befehl az acr network-rule add Ihrer Registrierung eine Netzwerkregel hinzu, die den Zugriff von einer öffentlichen IP-Adresse oder einem öffentlichen IP-Adressbereich erlaubt. Ersetzen Sie beispielsweise den Namen der Containerregistrierung und die öffentliche IP-Adresse eines virtuellen Computers in einem virtuellen Netzwerk.

az acr network-rule add \
  --name mycontainerregistry \
  --ip-address <public-IP-address>

Hinweis

Nach dem Hinzufügen einer Regel dauert es einige Minuten, bis die Regel wirksam wird.

Zugriff aus einem ausgewählten öffentlichen Netzwerk – Portal

  1. Navigieren Sie im Azure-Portal zu Ihrer Containerregistrierung.
  2. Wählen Sie unter Einstellungen die Option Netzwerk aus.
  3. Treffen Sie auf der Registerkarte Öffentlicher Zugriff eine Auswahl, um öffentlichen Zugriff von Ausgewählten Netzwerken zuzulassen.
  4. Geben Sie unter Firewall eine öffentliche IP-Adresse ein, z. B. die öffentliche IP-Adresse einer VM in einem virtuellen Netzwerk. Oder geben Sie einen Adressbereich in CIDR-Notation ein, der die IP-Adresse des virtuellen Computers enthält.
  5. Wählen Sie Speichern aus.

Konfigurieren einer Firewallregel für die Containerregistrierung

Hinweis

Nach dem Hinzufügen einer Regel dauert es einige Minuten, bis die Regel wirksam wird.

Tipp

Aktivieren Sie optional den Registrierungszugriff von einem lokalen Clientcomputer oder einem IP-Adressbereich aus. Um diesen Zugriff zuzulassen, benötigen Sie die öffentliche IPv4-Adresse des Computers. Sie finden diese Adresse, indem Sie in einem Internetbrowser nach „Wie lautet meine IP-Adresse“ suchen. Die aktuelle IPv4-Adresse des Clients wird auch automatisch angezeigt, wenn Sie Firewalleinstellungen auf der Seite Netzwerk im Portal konfigurieren.

Deaktivieren des Zugriffs auf das öffentliche Netzwerk

Deaktivieren Sie optional den öffentlichen Endpunkt in der Registrierung. Durch das Deaktivieren des öffentlichen Endpunkts werden alle Firewallkonfigurationen außer Kraft gesetzt. Beispielsweise können Sie den öffentlichen Zugriff auf eine in einem virtuellen Netzwerk mithilfe von Private Link gesicherte Registrierung deaktivieren.

Hinweis

Wenn die Registrierung in einem virtuellen Netzwerk mit einem Dienstendpunkt eingerichtet ist, wird durch das Deaktivieren des Zugriffs auf den öffentlichen Endpunkt der Registrierung auch der Zugriff auf die Registrierung im virtuellen Netzwerk deaktiviert.

Deaktivieren des öffentlichen Zugriffs – CLI

Um den öffentlichen Zugriff mithilfe der Azure CLI zu deaktivieren, führen Sie az acr update aus, und legen Sie --public-network-enabled auf false fest. Das Argument public-network-enabled erfordert Azure CLI 2.6.0 oder höher.

az acr update --name myContainerRegistry --public-network-enabled false

Deaktivieren des öffentlichen Zugriffs – Portal

  1. Navigieren Sie im Portal zu Ihrer Containerregistrierung, und wählen Sie Einstellungen > Netzwerk aus.
  2. Wählen Sie auf der Registerkarte Öffentlicher Zugriff in Öffentlichen Netzwerkzugriff zulassen die Option Deaktiviert aus. Klicken Sie dann auf Speichern.

Deaktivieren des öffentlichen Zugriffs

Wiederherstellen des öffentlichen Netzwerkzugriffs

Um den öffentlichen Endpunkt neu zu aktivieren, aktualisieren Sie die Netzwerkeinstellungen, um den öffentlichen Zugriff zuzulassen. Durch das Aktivieren des öffentlichen Endpunkts werden alle Firewallkonfigurationen außer Kraft gesetzt.

Wiederherstellen des öffentlichen Zugriffs – CLI

Führen Sie az acr update aus, und legen Sie --public-network-enabled auf true fest.

Hinweis

Das Argument public-network-enabled erfordert Azure CLI 2.6.0 oder höher.

az acr update --name myContainerRegistry --public-network-enabled true

Wiederherstellen des öffentlichen Zugriffs – Portal

  1. Navigieren Sie im Portal zu Ihrer Containerregistrierung, und wählen Sie Einstellungen > Netzwerk aus.
  2. Wählen Sie auf der Registerkarte Öffentlicher Zugriff in Öffentlichen Netzwerkzugriff zulassen die Option Alle Netzwerke aus. Klicken Sie dann auf Speichern.

Öffentlicher Zugriff aus allen Netzwerken

Problembehandlung

Zugriff hinter HTTPS-Proxy

Wenn eine Regel für das öffentliche Netzwerk festgelegt ist oder der öffentliche Zugriff auf die Registrierung verweigert wird, tritt beim Versuch, sich aus dem nicht zulässigen öffentlichen Netzwerk bei der Registrierung anzumelden, ein Fehler auf. Der Clientzugriff aus einer Umgebung hinter einem HTTPS-Proxy ist ebenfalls nicht möglich, wenn keine Zugriffsregel für den Proxy festgelegt ist. Es wird eine Fehlermeldung ähnlich der folgenden angezeigt: Error response from daemon: login attempt failed with status: 403 Forbidden oder Looks like you don't have access to registry.

Diese Fehler können auch dann auftreten, wenn Sie einen HTTPS-Proxy verwenden, der durch eine Netzwerkzugriffsregel zugelassen ist, aber in der Clientumgebung nicht ordnungsgemäß konfiguriert wurde. Überprüfen Sie, ob sowohl Ihr Docker-Client als auch Ihr Docker-Daemon für das Proxyverhalten konfiguriert sind. Details finden Sie unter HTTP/HTTPS-Proxy in der Docker-Dokumentation.

Zugriff aus Azure Pipelines

Wenn Sie Azure Pipelines mit einer Azure-Containerregistrierung verwenden, die den Zugriff auf bestimmte IP-Adressen beschränkt, kann die Pipeline möglicherweise nicht auf die Registrierung zugreifen, da die ausgehende IP-Adresse von der Pipeline nicht festgelegt ist. Standardmäßig wendet die Pipeline Aufträge mit einem von Microsoft gehosteten Agent auf einen VM-Pool mit einem sich ändernden Satz von IP-Adressen an.

Eine Abhilfemaßnahme ist, den für die Ausführung der Pipeline verwendeten Agent von „Von Microsoft gehostet“ in „Selbstgehostet“ zu ändern. Mit einem selbstgehosteten Agent, der auf einem von Ihnen verwalteten Windows- oder Linux-Computer läuft, kontrollieren Sie die ausgehende IP-Adresse der Pipeline und können diese Adresse einer IP-Zugriffsregel in der Registrierung hinzufügen.

Zugriff aus AKS

Wenn Sie Azure Kubernetes Service (AKS) mit einer Azure-Containerregistrierung verwenden, die den Zugriff auf bestimmte IP-Adressen beschränkt, können Sie standardmäßig keine feste IP-Adresse für AKS konfigurieren. Die ausgehende IP-Adresse aus dem AKS-Cluster wird nach dem Zufallsprinzip zugewiesen.

Um dem AKS-Cluster den Zugriff auf die Registrierung zu ermöglichen, haben Sie die folgenden Optionen:

Nächste Schritte