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.
- Instanzen bestimmter Azure-Dienste, darunter Azure DevOps Services und Azure Container Instances, können 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
- Navigieren Sie im Azure-Portal zu Ihrer Containerregistrierung.
- Wählen Sie unter Einstellungen die Option Netzwerk aus.
- Treffen Sie auf der Registerkarte Öffentlicher Zugriff eine Auswahl, um öffentlichen Zugriff von Ausgewählten Netzwerken zuzulassen.
- 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.
- Wählen Sie Speichern aus.
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
- Navigieren Sie im Portal zu Ihrer Containerregistrierung, und wählen Sie Einstellungen > Netzwerk aus.
- Wählen Sie auf der Registerkarte Öffentlicher Zugriff in Öffentlichen Netzwerkzugriff zulassen die Option Deaktiviert aus. Klicken Sie dann auf Speichern.
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
- Navigieren Sie im Portal zu Ihrer Containerregistrierung, und wählen Sie Einstellungen > Netzwerk aus.
- Wählen Sie auf der Registerkarte Öffentlicher Zugriff in Öffentlichen Netzwerkzugriff zulassen die Option Alle Netzwerke aus. Klicken Sie dann auf Speichern.
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:
- Wenn Sie den Azure Load Balancer Basic verwenden, richten Sie eine statische IP-Adresse für den AKS-Cluster ein.
- Wenn Sie den Azure Load Balancer Standard verwenden, konsultieren Sie den Leitfaden zum Steuern des ausgehenden Datenverkehrs aus dem Cluster.
Nächste Schritte
- Informationen zum Einschränken des Zugriffs auf eine Registrierung mithilfe eines privaten Endpunkts in einem virtuellen Netzwerk finden Sie unter Konfigurieren von Azure Private Link für eine Azure-Container Containerregistrierung.
- Wenn Sie Zugriffsregeln für die Registrierung hinter einer Clientfirewall einrichten müssen, finden Sie Informationen hierzu unter Konfigurieren von Regeln für den Zugriff auf eine Azure-Containerregistrierung hinter einer Firewall.
- Weitere Anleitungen zur Problembehandlung finden Sie unter Beheben von Netzwerkproblemen mit der Registrierung.