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

  1. Na portálu přejděte do registru kontejneru.
  2. V části Nastavení vyberte Sítě.
  3. Na kartě Veřejný přístup vyberte, pokud chcete povolit veřejný přístup z vybraných sítí.
  4. 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.
  5. Zvolte Uložit.

Konfigurace pravidla brány firewall pro registr kontejnerů

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

  1. Na portálu přejděte do registru kontejneru a vyberte Nastavení > sítě.
  2. Na kartě Veřejný přístup v části Povolit přístup k veřejné síti vyberte Zakázáno. Pak vyberte Uložit.

Zakázání veřejného přístupu

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

  1. Na portálu přejděte do registru kontejneru a vyberte Nastavení > sítě.
  2. 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.

Veřejný přístup ze všech sítí

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