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

  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. Vyberte Uložit.

Konfigurace pravidla brány firewall pro registr kontejneru

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

  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 z veřejné sítě vyberte Zakázáno. Pak vyberte Uložit.

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

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

  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 z veřejné sítě vyberte Všechny sítě. Pak vyberte Uložit.

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

Ř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 ForbiddenLooks like you don't have access to registrynebo .

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:

Další kroky