Konfigurace pravidel sítě veřejných IP adres
Registr kontejneru Azure ve výchozím nastavení přijímá připojení přes internet z hostitelů v libovolné síti. Tento článek popisuje, jak nakonfigurovat registr kontejneru tak, aby umožňoval přístup jenom z konkrétních veřejných IP adres nebo rozsahů adres. K dispozici jsou ekvivalentní kroky s využitím Azure CLI a Azure Portal.
Pravidla sítě PROTOKOLU IP jsou nakonfigurovaná v koncovém bodu veřejného registru. Pravidla sítě PROTOKOLU IP se nevztahují na privátní koncové body nakonfigurované s Private Link
Konfigurace pravidel přístupu ip adres je k dispozici na úrovni služby registru kontejnerů Premium . Informace o úrovních a limitech služby registru najdete v tématu Azure Container Registry úrovně.
Každý registr podporuje maximálně 100 pravidel přístupu protokolu IP.
Důležité
Některé funkce můžou být nedostupné nebo můžou vyžadovat další konfiguraci v registru kontejneru, který omezuje přístup k privátním koncovým bodům, vybraným podsítím nebo IP adresám.
- Pokud je přístup z veřejné sítě k registru zakázaný, přístup k registru ze strany určitých důvěryhodných služeb včetně Azure Security Center vyžaduje povolení nastavení sítě, které obchází pravidla sítě.
- Jakmile je veřejný síťový přístup zakázaný, instance některých služeb Azure, včetně Azure DevOps Services, v současné době nemají přístup k registru kontejneru.
- Spravovaní agenti Azure DevOps v současné době nepodporují privátní koncové body. Budete muset použít agenta v místním prostředí s dohledem sítě privátního koncového bodu.
- Pokud má registr schválený privátní koncový bod a veřejný přístup k síti je zakázaný, úložiště a značky není možné uvést mimo virtuální síť pomocí Azure Portal, Azure CLI nebo jiných nástrojů.
Přístup z vybrané veřejné sítě – rozhraní příkazového řádku
Změna výchozího síťového přístupu k registru
Pokud chcete omezit přístup k vybrané veřejné síti, nejprve změňte výchozí akci na odepření přístupu. V následujícím příkazu az acr update nahraďte název vašeho registru:
az acr update --name myContainerRegistry --default-action Deny
Přidání pravidla sítě do registru
Pomocí příkazu az acr network-rule add přidejte do registru pravidlo sítě, které umožňuje přístup z veřejné IP adresy nebo rozsahu. Nahraďte například název registru kontejneru a veřejnou IP adresu virtuálního počítače ve virtuální síti.
az acr network-rule add \
--name mycontainerregistry \
--ip-address <public-IP-address>
Poznámka
Po přidání pravidla trvá několik minut, než se pravidlo projeví.
Přístup z vybrané veřejné sítě – portál
- Na portálu přejděte do registru kontejneru.
- V části Nastavení vyberte Sítě.
- Na kartě Veřejný přístup vyberte, pokud chcete povolit veřejný přístup z Vybraných sítí.
- V části Brána firewall zadejte veřejnou IP adresu, například veřejnou IP adresu virtuálního počítače ve virtuální síti. Nebo zadejte rozsah adres v zápisu CIDR, který obsahuje IP adresu virtuálního počítače.
- Vyberte Uložit.
Poznámka
Po přidání pravidla trvá několik minut, než se pravidlo projeví.
Tip
Volitelně můžete povolit přístup k registru z místního klientského počítače nebo rozsahu IP adres. Pokud chcete tento přístup povolit, potřebujete veřejnou IPv4 adresu počítače. Tuto adresu můžete najít vyhledáním "what is my IP address" (jaká je moje IP adresa) v internetovém prohlížeči. Aktuální adresa IPv4 klienta se také zobrazí automaticky při konfiguraci nastavení brány firewall na stránce Sítě na portálu.
Zakázání veřejného síťového přístupu
Volitelně můžete veřejný koncový bod v registru zakázat. Zakázání veřejného koncového bodu přepíše všechny konfigurace brány firewall. Můžete například chtít zakázat veřejný přístup k registru zabezpečenému ve virtuální síti pomocí Private Link.
Poznámka
Pokud je registr nastavený ve virtuální síti s koncovým bodem služby, zakázáním přístupu k veřejnému koncovému bodu registru se zakáže také přístup k registru v rámci virtuální sítě.
Zakázání veřejného přístupu – rozhraní příkazového řádku
Pokud chcete zakázat veřejný přístup pomocí Azure CLI, spusťte příkaz az acr update a nastavte --public-network-enabled
na false
. Argument public-network-enabled
vyžaduje Azure CLI 2.6.0 nebo novější.
az acr update --name myContainerRegistry --public-network-enabled false
Zakázání veřejného přístupu – portál
- Na portálu přejděte do registru kontejneru a vyberte Nastavení > Sítě.
- Na kartě Veřejný přístup v části Povolit přístup z veřejné sítě vyberte Zakázáno. Pak vyberte Uložit.
Obnovení veřejného síťového přístupu
Pokud chcete veřejný koncový bod znovu povolit, aktualizujte nastavení sítě tak, aby umožňoval veřejný přístup. Povolením veřejného koncového bodu přepíšete všechny konfigurace brány firewall.
Obnovení veřejného přístupu – rozhraní příkazového řádku
Spusťte příkaz az acr update a nastavte --public-network-enabled
na true
.
Poznámka
Argument public-network-enabled
vyžaduje Azure CLI 2.6.0 nebo novější.
az acr update --name myContainerRegistry --public-network-enabled true
Obnovení veřejného přístupu – portál
- Na portálu přejděte do registru kontejneru a vyberte Nastavení > Sítě.
- Na kartě Veřejný přístup v části Povolit přístup z veřejné sítě vyberte Všechny sítě. Pak vyberte Uložit.
Řešení potíží
Přístup za proxy serverem HTTPS
Pokud je nastaveno pravidlo veřejné sítě nebo je odepřen veřejný přístup k registru, pokusy o přihlášení k registru z nepovolené veřejné sítě selžou. Klientský přístup zpoza proxy serveru HTTPS také selže, pokud není nastavené pravidlo přístupu pro proxy server. Zobrazí se chybová zpráva podobná Error response from daemon: login attempt failed with status: 403 Forbidden
Looks like you don't have access to registry
nebo .
K těmto chybám může dojít také v případě, že používáte proxy server HTTPS, který je povolený pravidlem přístupu k síti, ale proxy server není v klientském prostředí správně nakonfigurovaný. Zkontrolujte, že váš klient Dockeru i démon Dockeru jsou nakonfigurované pro chování proxy serveru. Podrobnosti najdete v dokumentaci k Dockeru v části o proxy serveru HTTP/HTTPS .
Přístup z Azure Pipelines
Pokud používáte Azure Pipelines s registrem kontejneru Azure, který omezuje přístup na konkrétní IP adresy, může se stát, že kanál nebude mít přístup k registru, protože odchozí IP adresa z kanálu není opravená. Ve výchozím nastavení kanál spouští úlohy pomocí agenta hostovaného Microsoftem ve fondu virtuálních počítačů s měnící se sadou IP adres.
Jedním z alternativních řešení je změnit agenta, který se používá ke spuštění kanálu, z hostovaného Microsoftem na místního. S agentem v místním prostředí běžícím na počítači s Windows nebo Linuxem , který spravujete, řídíte odchozí IP adresu kanálu a tuto adresu můžete přidat do pravidla přístupu IP adres registru.
Přístup z AKS
Pokud používáte Azure Kubernetes Service (AKS) s registrem kontejneru Azure, který omezuje přístup na konkrétní IP adresy, nemůžete ve výchozím nastavení nakonfigurovat pevnou IP adresu AKS. Výchozí IP adresa z clusteru AKS je náhodně přiřazená.
Pokud chcete clusteru AKS povolit přístup k registru, máte tyto možnosti:
- Pokud používáte Load Balancer Azure Basic, nastavte statickou IP adresu pro cluster AKS.
- Pokud používáte azure Standard Load Balancer, projděte si doprovodné materiály k řízení výchozího provozu z clusteru.
Další kroky
- Pokud chcete omezit přístup k registru pomocí privátního koncového bodu ve virtuální síti, projděte si téma Konfigurace Azure Private Link pro registr kontejneru Azure.
- Pokud potřebujete nastavit pravidla přístupu k registru za bránou firewall klienta, přečtěte si téma Konfigurace pravidel pro přístup k registru kontejneru Azure za bránou firewall.
- Další pokyny k řešení potíží najdete v tématu Řešení potíží se sítí s registrem.