Konfigurace pravidel veřejné sítě IP
Registr kontejnerů Azure ve výchozím nastavení přijímá připojení přes internet z hostitelů v libovolné síti. Tento článek ukazuje, jak nakonfigurovat registr kontejneru tak, aby umožňoval přístup pouze z konkrétních veřejných IP adres nebo rozsahů adres. K dispozici jsou ekvivalentní kroky pomocí Azure CLI a webu Azure Portal.
Pravidla sítě IP se konfigurují na koncovém bodu veřejného registru. Pravidla sítě IP se nevztahují na privátní koncové body nakonfigurované službou Private Link.
Konfigurace pravidel přístupu IP adres je k dispozici ve vrstvě služby Registru kontejneru Premium . Informace o úrovních a omezeních služby registru najdete v tématu Úrovně služby Azure Container Registry.
Každý registr podporuje maximálně 100 pravidel přístupu IP.
Důležité
Některé funkce můžou být nedostupné nebo vyžadovat více konfigurace 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 veřejné sítě k registru zakázaný, přístup k registru určitých důvěryhodných služeb , včetně služby Azure Security Center, vyžaduje povolení síťového nastavení pro obcházení pravidel sítě.
- Jakmile je přístup k veřejné síti zakázaný, instance některých služeb Azure, včetně Azure DevOps Services, momentálně nemají přístup k registru kontejneru.
- Privátní koncové body se v současné době nepodporují u spravovaných agentů Azure DevOps. K privátnímu koncovému bodu budete muset použít místního agenta se síťovým dohledem.
- Pokud má registr schválený privátní koncový bod a přístup k veřejné síti je zakázaný, úložiště a značky se nedají vypisovat mimo virtuální síť pomocí webu 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, změňte nejprve výchozí akci tak, aby odepřela přístup. Nahraďte název registru v následujícím příkazu az acr update :
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.
- Zvolte 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. K povolení tohoto přístupu potřebujete veřejnou adresu IPv4 počítače. Tuto adresu najdete tak, že v internetovém prohlížeči vyhledáte "co je moje IP adresa". 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í přístupu k veřejné síti
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í služby Private Link.
Poznámka:
Pokud je registr nastavený ve virtuální síti s koncovým bodem služby, zakázání přístupu k veřejnému koncovému bodu registru také zakáže 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 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 k veřejné síti vyberte Zakázáno. Pak vyberte Uložit.
Obnovení přístupu k veřejné síti
Pokud chcete veřejný koncový bod znovu povolit, aktualizujte nastavení sítě tak, aby umožňovalo veřejný přístup. Povolení veřejného koncového bodu přepíše 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 k veřejné síti vyberte Všechny sítě. Pak vyberte Uložit.
Odstraňování potíží
Přístup za proxy serverem HTTPS
Pokud je nastavené 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 za proxy serverem HTTPS selže také v případě, že není nastavené pravidlo přístupu pro proxy server. Zobrazí se chybová zpráva podobná nebo Error response from daemon: login attempt failed with status: 403 Forbidden
Looks like you don't have access to registry
.
K těmto chybám může dojít také v případě, že používáte proxy https, které povoluje pravidlo síťového přístupu, ale proxy server není správně nakonfigurovaný v klientském prostředí. Zkontrolujte, že váš klient Dockeru i démon Dockeru jsou nakonfigurované pro chování proxy serveru. Podrobnosti najdete v dokumentaci k Dockeru v proxy serveru HTTP/HTTPS.
Přístup z Azure Pipelines
Pokud používáte Azure Pipelines s registrem kontejnerů Azure, který omezuje přístup na konkrétní IP adresy, nemusí mít kanál přístup k registru, protože odchozí IP adresa z kanálu není pevná. Ve výchozím nastavení kanál spouští úlohy pomocí agenta hostovaného Microsoftem ve fondu virtuálních počítačů se změněnou sadou IP adres.
Jedním z alternativních řešení je změna agenta používaného ke spuštění kanálu z hostovaného Microsoftu na místní. Pomocí místního agenta spuštěného 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 adresy registru.
Přístup z AKS
Pokud používáte Azure Kubernetes Service (AKS) s registrem kontejnerů 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řazena.
Pokud chcete clusteru AKS povolit přístup k registru, máte tyto možnosti:
- Pokud používáte Azure Basic Load Balancer, nastavte statickou IP adresu pro cluster AKS.
- Pokud používáte Azure Standard Load Balancer, přečtěte si pokyny k řízení odchozí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, přečtěte si téma Konfigurace služby Azure Private Link pro registr kontejnerů Azure.
- Pokud potřebujete nastavit pravidla přístupu 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.